centos

SQL Server在CentOS上的备份恢复流程

小樊
52
2025-10-13 12:28:18
栏目: 云计算

SQL Server在CentOS上的备份恢复流程

一、备份流程

1. 准备工作

2. 执行备份(两种方式)

(1)使用T-SQL命令(推荐自动化)

通过sqlcmd连接SQL Server,执行BACKUP DATABASE命令。以下脚本实现完整备份(可扩展为差异/日志备份):

#!/bin/bash
BACKUP_DIR="/var/opt/mssql/backups"
DB_NAME="your_database_name"
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_${DATE}.bak"

# 执行备份(覆盖已有备份文件)
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "your_sa_password" -Q \
"BACKUP DATABASE [$DB_NAME] TO DISK = N'$BACKUP_FILE' WITH FORMAT, INIT, STATS = 10;"

(2)使用SQL Server Management Studio(SSMS,图形化操作)

3. 自动化备份(可选)

通过crontab设置定时任务,例如每天凌晨2点执行备份脚本

sudo crontab -e

添加以下内容(替换脚本路径):

0 2 * * * /path/to/backup_script.sh >> /var/opt/mssql/backups/backup.log 2>&1

保存后,cron会自动执行备份任务。

二、恢复流程

1. 准备工作

2. 执行恢复(两种方式)

(1)使用T-SQL命令(推荐)

通过sqlcmd连接SQL Server,执行RESTORE DATABASE命令。以下为完整恢复流程:

# 以单用户模式启动SQL Server(确保无其他连接干扰)
sudo /opt/mssql/bin/sqlservr -m &

# 连接到SQL Server
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "your_sa_password" <<EOF
RESTORE DATABASE [your_database_name] 
FROM DISK = N'/var/opt/mssql/backups/your_db.bak' 
WITH REPLACE, RECOVERY;  -- REPLACE覆盖现有数据库,RECOVERY恢复正常模式
GO
EOF

# 停止单用户模式,重启SQL Server服务
sudo systemctl stop mssql-server
sudo systemctl start mssql-server

(2)使用SQL Server Management Studio(SSMS,图形化操作)

3. 验证恢复结果

三、注意事项

0
看了该问题的人还看了