这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
ischool:campusng:pos:backup:mssql [2020/02/28 00:39] – 刘声强 | ischool:campusng:pos:backup:mssql [2020/07/15 16:51] (当前版本) – [功能日常维护要求] Nashira | ||
---|---|---|---|
行 8: | 行 8: | ||
- | ## 注意事项 | + | ## 注意事项: |
以下为注意事项汇总,教程中会再次提及,此处汇总方便查阅。 | 以下为注意事项汇总,教程中会再次提及,此处汇总方便查阅。 | ||
行 20: | 行 20: | ||
** 请不用勾选:强制实施密码策略 ** | ** 请不用勾选:强制实施密码策略 ** | ||
+ | ** 需要在SQL Server所在的机器上手工创建文件夹`c: | ||
+ | |||
+ | ## 功能日常维护要求 | ||
+ | |||
+ | ** 部署了此服务器的每所学校,每半年至少要做一次备份的解密恢复测试。 ** | ||
+ | |||
+ | > NOTE: 脚本源代码在`remote`项目下。 | ||
---- | ---- | ||
行 197: | 行 204: | ||
---- | ---- | ||
- | # 相关说明 | + | # 监控及检测功能 |
- | ## 监控功能 | + | ## 1、监控功能 |
### 平台监控 | ### 平台监控 | ||
行 205: | 行 212: | ||
后台监控报警,开发中 | 后台监控报警,开发中 | ||
- | ## 诊断备份功能 | + | ## 2、检测备份功能 |
- | `202002p25`之后的版本`zx-diagnose`实现了自动诊断备份是否正常执行。 | + | ** 以下检测功能要求系统版本高于:`202002p25` ** |
- | ### 1、使用cdnservertool工具内诊断功能进行检测 | + | ### 2.1、使用cdnservertool检测 |
+ | |||
+ | 使用cdnservertool工具内诊断功能进行检测 | ||
+ | |||
+ | ** MSSQL 在 诊断功能里 ID:200** | ||
+ | |||
+ | ** 诊断MSSQL状态有3种:1、正常;2、错误;3、未配置; 如果没有MSSQL上传会显示未配置,如下图所示 ** | ||
+ | |||
+ | ** 以下为 未配置MSSQL的诊断 ** | ||
{{ : | {{ : | ||
- | 诊断功能里 ID:200 | + | ** 以下为正常诊断 |
- | ### 2、使用命令进行诊断检测 | + | {{ : |
- | {{ : | + | ### 2.2、使用ssh命令进行检测 |
+ | 使用此命令进行检测:`zx-diagnose` | ||
+ | {{ : | ||
- | ## 定期备份恢复测试 | ||
- | ** 部署了此服务器的每所学校,每半年至少要做一次备份的解密恢复测试。 ** | + | ---- |
# 还原备份教程 | # 还原备份教程 | ||
- | ** 以下操作要求:致学工作人员进行操作 ** | + | ## 注意事项: |
- | ** 以下内容为内部教学,非工作人员可略过下面内容。** | + | ** 友情提示:以下操作过于复杂,建议非工作人员略过下面内容。 ** |
- | ** 为何不让大家操作以下内容? 以下操作过于复杂,如操作错误,可能导致数据丢失。所以建议不要私自操作 ** | + | ** 建议由致学工作人员进行操作 ** |
- | ### 获取加密备份,解密密码 | + | ** 为何不让大家操作以下内容? 如操作错误,可能导致数据丢失。 ** |
- | 1. 在指定运行一卡通消费服务的CDN服务器上,进入到备份文件夹:`/ | + | ---- |
- | 2. 找到需要恢复的备份文件,将文件名发给致学研发人员,文件名类似: | + | |
- | 3. 致学研发人员在平台端执行脚本,获取备份文件解密命令 | + | |
- | ```sh | ||
- | $ / | ||
- | $ openssl enc -d -aes-128-cbc -nopad -in mssql-20200225013332-bb24e10cb2ed491cac4001333bfdccc4-129f68fd7a028d2de29a1c2d77a780885491c421ae66fc2ae974ce0df7e9d5dbc81857209fd666088c8b36690e8646bb510e7668496de0e6790f0619ecb7f345 -K 8fb1225b62bf63dd04df89134b330bae -iv 67aa049bed3248bc53cfc4f1263002e2 | + | ## 恢复操作简介 |
- | ``` | + | |
- | ### 解密备份文件 | + | 1、获取加密备份文件的文件名 |
- | 1. 在备份文件夹执行致学研发人员给出的`openssl`解密指令,在解密指令后添加`-out / | + | 2、将想要恢复的加密备份文件的文件名发送给开发人员(一并发送该学校的学校代码) |
- | 2. 如果执行成功,`/ | + | |
- | sudo openssl enc -d -aes-128-cbc -in mssql-20200225182958-0aaf04403f004460928ecc6608ff632b-8b6285aadb0a56ec350a3ac660b9e4bb6c235332fdb07e339167b9529050783b1b2071cea00ca917dd6ac39c93ea090e642c4d24aa684070249ee5082b3bda0a -K 0106c23489ec19c022906e315b335c2d -iv e897672c83ded6ae8834e9b996676873 -out mssql.bak -nopad | + | 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所在的服务器 | ||
行 261: | 行 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 | ||
+ | |||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ |