MSSQL数据库备份是一项增值服务 ,必须按本文档规定操作,致学不对未按文档规定操作造成的备份失败负责。
以下为注意事项汇总,教程中会再次提及,此处汇总方便查阅。
如备份数据库失败,请检查数据库icbackup账户设置是否正确
如备份数据库成功,上传至CDN服务器失败,请检查HOSTS设置或DNS设置是否正确。
教程为方便演示使用的简单密码,方便演示。实际使用中,请使用更强的密码。
请不用勾选:强制实施密码策略
部署了此服务器的每所学校,每半年至少要做一次备份的解密恢复测试。
在消费机主机上打开:hosts一键修改工具,在程序内输入CDN服务器的IP地址后,回车即可。
如输入错误的IP地址或CDN服务器IP地址变更,重新运行HOSTS一键修改工具重新输入新IP地址即可。
注意:SQL备份成功,上传失败,则是此步骤的问题。
2.1、打开sql server management studio程序
2.2、登录sql server management studio
2.3、新建登录名
2.4、新建项-常规配置
注意:请不用勾选:强制实施密码策略
注意:请使用强力密码,此教程是为方便演示使用,输入了简单密码,为了方便演示。
注意:请不用勾选:强制实施密码策略
注意:请使用强力密码,此教程是为方便演示使用,输入了简单密码,为了方便演示。
2.5、新建项-用户映射配置
备份脚本有两个必选参数:
-p
: icbackup用户的密码-d
: 一卡通消费系统所使用的数据库名称3.1、打开开始菜单,选择运行。(如没有运行按钮,可以使用windows图标键 加上 R键 调出运行窗口)
3.2、运行内输入CMD,然后安确定。
3.3、在命令行内找到MSSQL备份程序路径
命令行进入MSSQL备份程序所在的文件夹
我是放在C盘下的,所以我进入C盘
命令行基础操作命令如下:
cd
= 打开文件夹
cd..
= 返回上一级
dir
= 显示文件夹
C:
= 切换到C盘
D:
= 切换到D盘
测试运行原图 (注意:cmd命令行必须打开至程序目录)
3.4、测试使用命令运行MSSQL备份工具
MSSQL_BACKUP.exe -d ICSF -p 123qwe
命令解释:
MSSQL_BACKUP.exe
= 为MSSQL备份工具文件名
-d
= 后面是要备份数据库的名称(晨风系统默认是ICSF,其他厂家咨询技术部获取名称)
-p
= 教程中新建的icbackup用户的密码
注意:教程为方便演示使用的简单密码,方便演示。实际使用中,请使用更强的密码。
3.5、运行结果解说图
后台监控报警,开发中
以下检测功能要求系统版本高于:202002p25
使用cdnservertool工具内诊断功能进行检测
MSSQL 在 诊断功能里 ID:200
诊断MSSQL状态有3种:1、正常;2、错误;3、未配置; 如果没有MSSQL上传会显示未配置,如下图所示
以下为 未配置MSSQL的诊断
以下为正常诊断
友情提示:以下操作过于复杂,建议非工作人员略过下面内容。
建议由致学工作人员进行操作
为何不让大家操作以下内容? 如操作错误,可能导致数据丢失。
1、获取加密备份文件的文件名
2、将想要恢复的加密备份文件的文件名发送给开发人员(一并发送该学校的学校代码)
3、从开发人员处获取到解密命令后进行解密操作
4、将成功解密的备份文件拷贝到消费机主机
5、恢复MSSQL数据库
ssh远程登录MSSQL备份的CDN服务器,备份文件路径:/zxedu/data/imageng/backup/pos
mssql-
开头的,以及非.md5
结尾的就是加密的MSSQL数据库的备份文件了。
需要发送给开发的是非.md5
的文件名
例举:如需要解密此备份文件:
mssql-20200225182958-0aaf04403f004460928ecc6608ff632b-8b6285aadb0a56ec350a3ac660b9e4bb6c235332fdb07e339167b9529050783b1b2071cea00ca917dd6ac39c93ea090e642c4d24aa684070249ee5082b3bda0a
将此文件名+学校代码 一并发送给开发,让其返回解密命令。
以下是开发返回的解密命令:
openssl enc -d -aes-128-cbc -in mssql-20200225182958-0aaf04403f004460928ecc6608ff632b-8b6285aadb0a56ec350a3ac660b9e4bb6c235332fdb07e339167b9529050783b1b2071cea00ca917dd6ac39c93ea090e642c4d24aa684070249ee5082b3bda0a -K 0106c23489ec19c022906e315b335c2d -iv e897672c83ded6ae8834e9b996676873 -nopad
获得的解密命令后面需要加上 -out /路径/文件名.bak
解密后的文件名。
也可以保持到其他路径,在文件名前加上完整的路径即可,这里我是保存到同一文件夹内的命令参考式:
sudo openssl enc -d -aes-128-cbc -in mssql-20200225182958-0aaf04403f004460928ecc6608ff632b-8b6285aadb0a56ec350a3ac660b9e4bb6c235332fdb07e339167b9529050783b1b2071cea00ca917dd6ac39c93ea090e642c4d24aa684070249ee5082b3bda0a -K 0106c23489ec19c022906e315b335c2d -iv e897672c83ded6ae8834e9b996676873 -nopad -out mssql.bak
图内红色框出来的就是解密出来的文件了
此问题貌似是MSSQL2008的BUG,按下面步骤操作即可。
1、修改sunlightZ 账户的名,我这里改的是sunlightZ1
2、修改正确的权限,注意,这里的用户名已经更改了。
3、权限修改成功,在改回sunlightZ用户名
致学研发人员在平台端执行脚本,获取备份文件解密命令
$ /opt/zxedu/bin/platform-yaf-ischool-dev-201901 campusng script decryptBackupKey sid=1115333 filename=mssql-20200302110648-9f97c2e6b2ff4a3dbbddf8ca35fa387c-2008cb6dfe5644bfb7ef652e6c23fdfadb561ab8239fdc8e24db0596e694ae12f1b50e74d79e6fb48b964e6084fadfe90ccdad2c9a57b0862717e58afc513369 $ openssl enc -d -aes-128-cbc -nopad -in mssql-20200302110648-9f97c2e6b2ff4a3dbbddf8ca35fa387c-2008cb6dfe5644bfb7ef652e6c23fdfadb561ab8239fdc8e24db0596e694ae12f1b50e74d79e6fb48b964e6084fadfe90ccdad2c9a57b0862717e58afc513369 -K 1303ee0d277b183cd88624976177b0c3 -iv b2a5b79ce729dca5dbb31d1a18aa5829