在Ubuntu上配置和测试SQL Server的备份恢复涉及多个步骤。以下是一个详细的指南,帮助你完成这一过程。
安装和配置SQL Server
- 安装SQL Server:
- 导入公共存储库GPG密钥:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
- 注册SQL Server Ubuntu存储库:
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2022 main"
- 更新包列表并安装SQL Server:
sudo apt-get update sudo apt-get install -y mssql-server
- 运行
mssql-conf setup
按照提示选择数据库版本及设置SA密码。
- 配置SQL Server:
- 启用SQL Server代理:
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true sudo systemctl restart mssql-server
- 更改默认数据或日志目录位置:
sudo mkdir /home/d/mssql/data sudo chown mssql:mssql /home/d/mssql/data
备份SQL Server数据库
- 使用
sqlcmd
进行备份:
- 完全备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATABASE [XXDatabase] TO DISK N'/var/opt/mssql/data/backup/XXDatabase_full.bak' WITH INIT, SKIP, NAME 'XXDatabase-full'"
- 差异备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATABASE [XXDatabase] TO DISK N'/var/opt/mssql/data/backup/GDQXCENT_diff.bak' WITH DIFFERENTIAL,INIT,SKIP, NAME 'XXDatabase-diff'"
- 日志备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP LOG [XXDatabase] TO DISK N'/var/opt/mssql/data/backup/GDQXCENT_log.bak' WITH INIT,SKIP"
恢复SQL Server数据库
- 使用
sqlcmd
进行恢复:
- 完全恢复:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "RESTORE DATABASE [XXDatabase] FROM DISK N'/var/opt/mssql/data/backup/XXDatabase_full.bak' WITH NORECOVERY"
- 差异恢复:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "RESTORE DATABASE [XXDatabase] FROM DISK N'/var/opt/mssql/data/backup/GDQXCENT_diff.bak' WITH NORECOVERY"
- 自动备份和定期执行:
- 使用
crontab
自动备份:
sudo crontab -e # 添加以下行以每天凌晨1点自动创建完全备份 0 1 * * * sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATABASE [XXDatabase] TO DISK N'/var/opt/mssql/data/backup/XXDatabase_full.bak' WITH INIT, SKIP, NAME 'XXDatabase-full'"
通过以上步骤,你可以在Ubuntu上成功配置SQL Server,并完成数据库的备份和恢复测试。请根据你的实际需求调整备份和恢复策略,并定期检查备份文件的完整性。