这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
ischool:campusng:pos:backup:mssql [2020/02/26 10:20] – 刘声强 | ischool:campusng:pos:backup:mssql [2020/07/15 16:51] (当前版本) – [功能日常维护要求] Nashira | ||
---|---|---|---|
行 8: | 行 8: | ||
- | ## 注意事项 | + | ## 注意事项: |
以下为注意事项汇总,教程中会再次提及,此处汇总方便查阅。 | 以下为注意事项汇总,教程中会再次提及,此处汇总方便查阅。 | ||
- | ** 如备份数据库失败,请检查数据库icbackup账户设置是否正确。 ** | + | ** 如备份数据库失败,请检查数据库icbackup账户设置是否正确 |
- | ** 如备份数据库成功,上传至CDN服务器失败,请检查HOSTS设置或DNS设置是否正确。 | + | ** 如备份数据库成功,上传至CDN服务器失败,请检查HOSTS设置或DNS设置是否正确。 ** |
+ | ** 教程为方便演示使用的简单密码,方便演示。实际使用中,请使用更强的密码。** | ||
+ | ** 请不用勾选:强制实施密码策略 ** | ||
+ | |||
+ | ** 需要在SQL Server所在的机器上手工创建文件夹`c: | ||
+ | |||
+ | ## 功能日常维护要求 | ||
+ | |||
+ | ** 部署了此服务器的每所学校,每半年至少要做一次备份的解密恢复测试。 ** | ||
+ | |||
+ | > NOTE: 脚本源代码在`remote`项目下。 | ||
+ | |||
+ | ---- | ||
## 获取备份工具 | ## 获取备份工具 | ||
行 30: | 行 42: | ||
---- | ---- | ||
- | # 配置教程 | + | # 备份配置教程 |
行 47: | 行 59: | ||
## 2、配置SQL Server备份账号 | ## 2、配置SQL Server备份账号 | ||
- | 照下图操作即可 | + | 2.1、打开sql server management studio程序 |
- | ** 注意:请不用勾选:强制实施密码策略 | + | {{ : |
+ | |||
+ | ---- | ||
+ | |||
+ | 2.2、登录sql server management studio | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | 2.3、新建登录名 | ||
{{ : | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | 2.4、新建项-常规配置 | ||
** 注意:请不用勾选:强制实施密码策略 | ** 注意:请不用勾选:强制实施密码策略 | ||
+ | |||
+ | ** 注意:请使用强力密码,此教程是为方便演示使用,输入了简单密码,为了方便演示。 ** | ||
{{ : | {{ : | ||
** 注意:请不用勾选:强制实施密码策略 | ** 注意:请不用勾选:强制实施密码策略 | ||
+ | |||
+ | ** 注意:请使用强力密码,此教程是为方便演示使用,输入了简单密码,为了方便演示。 ** | ||
+ | |||
+ | ---- | ||
+ | |||
+ | 2.5、新建项-用户映射配置 | ||
{{ : | {{ : | ||
行 134: | 行 168: | ||
- | ### 配置计划任务 | + | ## 4、配置计划任务 |
- | 每天至少在凌晨执行一次,根据需求也可以执行多次。 | + | |
+ | ** 每天至少在凌晨执行一次,根据需求也可以执行多次。 | ||
以下拟建的计划任务为每天凌晨1点进行一次备份,如有需要请根据实际情况修改。 | 以下拟建的计划任务为每天凌晨1点进行一次备份,如有需要请根据实际情况修改。 | ||
+ | |||
+ | 配置计划任务,照图操作即可。 | ||
{{ : | {{ : | ||
行 159: | 行 196: | ||
{{ : | {{ : | ||
+ | ** 配置教程结束 ** | ||
+ | ** 配置教程结束 ** | ||
+ | ** 配置教程结束 ** | ||
+ | ---- | ||
+ | # 监控及检测功能 | ||
+ | |||
+ | ## 1、监控功能 | ||
+ | |||
+ | ### 平台监控 | ||
- | ## 监控 | ||
- | ### 监控平台 | ||
后台监控报警,开发中 | 后台监控报警,开发中 | ||
- | ### zx-diagnose | + | ## 2、检测备份功能 |
- | `202002p25`之后的版本`zx-diagnose`实现了自动诊断备份是否正常执行。 | + | |
- | ### 定期备份恢复测试 | + | ** 以下检测功能要求系统版本高于:`202002p25` ** |
- | 每所学校每半年至少要做一次备份的回复测试。 | + | |
+ | ### 2.1、使用cdnservertool检测 | ||
- | ## 还原 | + | 使用cdnservertool工具内诊断功能进行检测 |
- | ### 获取备份密码 | + | |
- | 1. 在指定运行一卡通消费服务的CDN服务器上,进入到备份文件夹:`/ | + | ** MSSQL 在 诊断功能里 ID:200** |
- | 2. 找到需要恢复的备份文件,将文件名发给致学研发人员,文件名类似: | + | |
- | 3. 致学研发人员在平台端执行脚本,获取备份文件解密命令 | + | |
- | ```sh | + | ** 诊断MSSQL状态有3种:1、正常;2、错误;3、未配置; 如果没有MSSQL上传会显示未配置,如下图所示 ** |
- | $ / | + | |
- | $ openssl enc -d -aes-128-cbc -nopad -in mssql-20200225013332-bb24e10cb2ed491cac4001333bfdccc4-129f68fd7a028d2de29a1c2d77a780885491c421ae66fc2ae974ce0df7e9d5dbc81857209fd666088c8b36690e8646bb510e7668496de0e6790f0619ecb7f345 -K 8fb1225b62bf63dd04df89134b330bae -iv 67aa049bed3248bc53cfc4f1263002e2 | + | ** 以下为 未配置MSSQL的诊断 ** |
- | ``` | + | |
- | ### 解密备份文件 | + | {{ : |
- | 1. 在备份文件夹执行致学研发人员给出的`openssl`解密指令,在解密指令后添加`-out / | + | ** 以下为正常诊断 ** |
- | 2. 如果执行成功,`/ | + | |
- | ### 还原数据库 | + | {{ : |
+ | |||
+ | ### 2.2、使用ssh命令进行检测 | ||
+ | |||
+ | 使用此命令进行检测:`zx-diagnose` | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | # 还原备份教程 | ||
+ | |||
+ | ## 注意事项: | ||
+ | |||
+ | ** 友情提示:以下操作过于复杂,建议非工作人员略过下面内容。 ** | ||
+ | |||
+ | ** 建议由致学工作人员进行操作 ** | ||
+ | |||
+ | ** 为何不让大家操作以下内容? 如操作错误,可能导致数据丢失。 ** | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ## 恢复操作简介 | ||
+ | |||
+ | 1、获取加密备份文件的文件名 | ||
+ | |||
+ | 2、将想要恢复的加密备份文件的文件名发送给开发人员(一并发送该学校的学校代码) | ||
+ | |||
+ | 3、从开发人员处获取到解密命令后进行解密操作 | ||
+ | |||
+ | 4、将成功解密的备份文件拷贝到消费机主机 | ||
+ | |||
+ | 5、恢复MSSQL数据库 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 1、如何获取加密的备份文件? | ||
+ | |||
+ | ssh远程登录MSSQL备份的CDN服务器,备份文件路径:`/ | ||
+ | |||
+ | `mssql-`开头的,以及非`.md5`结尾的就是加密的MSSQL数据库的备份文件了。 | ||
+ | |||
+ | ** 需要发送给开发的是非`.md5`的文件名 ** | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 2、如何获取解密命令? | ||
+ | |||
+ | 例举:如需要解密此备份文件: | ||
+ | |||
+ | `mssql-20200225182958-0aaf04403f004460928ecc6608ff632b-8b6285aadb0a56ec350a3ac660b9e4bb6c235332fdb07e339167b9529050783b1b2071cea00ca917dd6ac39c93ea090e642c4d24aa684070249ee5082b3bda0a` | ||
+ | |||
+ | ** 将此文件名+学校代码 一并发送给开发,让其返回解密命令。 ** | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 3、如何解密备份文件? | ||
+ | |||
+ | 以下是开发返回的解密命令: | ||
+ | |||
+ | `openssl enc -d -aes-128-cbc -in mssql-20200225182958-0aaf04403f004460928ecc6608ff632b-8b6285aadb0a56ec350a3ac660b9e4bb6c235332fdb07e339167b9529050783b1b2071cea00ca917dd6ac39c93ea090e642c4d24aa684070249ee5082b3bda0a -K 0106c23489ec19c022906e315b335c2d -iv e897672c83ded6ae8834e9b996676873 -nopad` | ||
+ | |||
+ | |||
+ | ** 获得的解密命令后面需要加上 `-out / | ||
+ | |||
+ | 也可以保持到其他路径,在文件名前加上完整的路径即可,这里我是保存到同一文件夹内的命令参考式: | ||
+ | |||
+ | `sudo openssl enc -d -aes-128-cbc -in mssql-20200225182958-0aaf04403f004460928ecc6608ff632b-8b6285aadb0a56ec350a3ac660b9e4bb6c235332fdb07e339167b9529050783b1b2071cea00ca917dd6ac39c93ea090e642c4d24aa684070249ee5082b3bda0a -K 0106c23489ec19c022906e315b335c2d -iv e897672c83ded6ae8834e9b996676873 -nopad -out mssql.bak ` | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 图内红色框出来的就是解密出来的文件了 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 4、如何获取可恢复的备份? | ||
+ | |||
+ | 通过SFTP进入到解密的文件夹内,拷贝到主机上。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 5、如何数据库恢复操作? | ||
1. 将解密后的备份文件复制到SQL Server所在的服务器 | 1. 将解密后的备份文件复制到SQL Server所在的服务器 | ||
行 201: | 行 326: | ||
{{ : | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | # 恢复非本机数据库可能遇到的问题 | ||
+ | |||
+ | ## 问题1:无法正常打开ICSF.exe | ||
+ | |||
+ | 如果恢复非本机的数据库,可能无法正常打开ICSF.exe | ||
+ | |||
+ | 遇到此问题,照下图修改权限即可。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 问题2:修改MSSQL权限出错 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 此问题貌似是MSSQL2008的BUG,按下面步骤操作即可。 | ||
+ | |||
+ | 1、修改sunlightZ 账户的名,我这里改的是sunlightZ1 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 2、修改正确的权限,注意,这里的用户名已经更改了。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 3、权限修改成功,在改回sunlightZ用户名 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 问题3:无法初始化数据库 | ||
+ | |||
+ | 问题如图 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 此问题是由于MSSQL的运行账户的问题,以下为解决办法: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | # 致学研发人员,获取解密命令 | ||
+ | |||
+ | ** 致学研发人员在平台端执行脚本,获取备份文件解密命令 ** | ||
+ | |||
+ | |||
+ | ```sh | ||
+ | $ / | ||
+ | |||
+ | $ openssl enc -d -aes-128-cbc -nopad -in mssql-20200302110648-9f97c2e6b2ff4a3dbbddf8ca35fa387c-2008cb6dfe5644bfb7ef652e6c23fdfadb561ab8239fdc8e24db0596e694ae12f1b50e74d79e6fb48b964e6084fadfe90ccdad2c9a57b0862717e58afc513369 -K 1303ee0d277b183cd88624976177b0c3 -iv b2a5b79ce729dca5dbb31d1a18aa5829 | ||
+ | |||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ |