目录

返回

一卡通消费MSSQL数据库备份

MSSQL数据库备份是一项增值服务 ,必须按本文档规定操作,致学不对未按文档规定操作造成的备份失败负责。

增值服务说明

注意事项:

以下为注意事项汇总,教程中会再次提及,此处汇总方便查阅。

如备份数据库失败,请检查数据库icbackup账户设置是否正确

如备份数据库成功,上传至CDN服务器失败,请检查HOSTS设置或DNS设置是否正确。

教程为方便演示使用的简单密码,方便演示。实际使用中,请使用更强的密码。

请不用勾选:强制实施密码策略

需要在SQL Server所在的机器上手工创建文件夹c:\mssql

功能日常维护要求

部署了此服务器的每所学校,每半年至少要做一次备份的解密恢复测试。

NOTE: 脚本源代码在`remote`项目下。

—-

获取备份工具

MSSQL备份工具 下载

点击下载

hosts修改一键工具 下载

hosts一键修改脚本.zip


备份配置教程

1、消费机主机hosts指向CDN服务器

在消费机主机上打开:hosts一键修改工具,在程序内输入CDN服务器的IP地址后,回车即可。

如输入错误的IP地址或CDN服务器IP地址变更,重新运行HOSTS一键修改工具重新输入新IP地址即可。

注意:SQL备份成功,上传失败,则是此步骤的问题。


2、配置SQL Server备份账号

2.1、打开sql server management studio程序


2.2、登录sql server management studio


2.3、新建登录名


2.4、新建项-常规配置

注意:请不用勾选:强制实施密码策略

注意:请使用强力密码,此教程是为方便演示使用,输入了简单密码,为了方便演示。

注意:请不用勾选:强制实施密码策略

注意:请使用强力密码,此教程是为方便演示使用,输入了简单密码,为了方便演示。


2.5、新建项-用户映射配置


3、手动运行测试

备份脚本有两个必选参数:

  1. -p: icbackup用户的密码
  2. -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、运行结果解说图


4、配置计划任务

每天至少在凌晨执行一次,根据需求也可以执行多次。

以下拟建的计划任务为每天凌晨1点进行一次备份,如有需要请根据实际情况修改。

配置计划任务,照图操作即可。

配置教程结束

配置教程结束

配置教程结束


监控及检测功能

1、监控功能

平台监控

后台监控报警,开发中

2、检测备份功能

以下检测功能要求系统版本高于:202002p25

2.1、使用cdnservertool检测

使用cdnservertool工具内诊断功能进行检测

MSSQL 在 诊断功能里 ID:200

诊断MSSQL状态有3种:1、正常;2、错误;3、未配置; 如果没有MSSQL上传会显示未配置,如下图所示

以下为 未配置MSSQL的诊断

以下为正常诊断

2.2、使用ssh命令进行检测

使用此命令进行检测:zx-diagnose


还原备份教程

注意事项:

友情提示:以下操作过于复杂,建议非工作人员略过下面内容。

建议由致学工作人员进行操作

为何不让大家操作以下内容? 如操作错误,可能导致数据丢失。


恢复操作简介

1、获取加密备份文件的文件名

2、将想要恢复的加密备份文件的文件名发送给开发人员(一并发送该学校的学校代码)

3、从开发人员处获取到解密命令后进行解密操作

4、将成功解密的备份文件拷贝到消费机主机

5、恢复MSSQL数据库


1、如何获取加密的备份文件?

ssh远程登录MSSQL备份的CDN服务器,备份文件路径:/zxedu/data/imageng/backup/pos

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 /路径/文件名.bak 解密后的文件名。

也可以保持到其他路径,在文件名前加上完整的路径即可,这里我是保存到同一文件夹内的命令参考式:

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所在的服务器
  2. 打开SQL Server管理工具
  3. 数据库上点鼠标右键,选在还原数据库
  4. 在弹出的对话框中选择源设备,并找到解密后的备份文件


恢复非本机数据库可能遇到的问题

问题1:无法正常打开ICSF.exe

如果恢复非本机的数据库,可能无法正常打开ICSF.exe
遇到此问题,照下图修改权限即可。


问题2:修改MSSQL权限出错

此问题貌似是MSSQL2008的BUG,按下面步骤操作即可。

1、修改sunlightZ 账户的名,我这里改的是sunlightZ1

2、修改正确的权限,注意,这里的用户名已经更改了。

3、权限修改成功,在改回sunlightZ用户名


问题3:无法初始化数据库

问题如图

此问题是由于MSSQL的运行账户的问题,以下为解决办法:


致学研发人员,获取解密命令

致学研发人员在平台端执行脚本,获取备份文件解密命令

snippet.sh
$ /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