CentOS环境下SQL Server数据库恢复方法
在进行数据库恢复前,需完成以下关键步骤:
sudo systemctl stop mssql-server。/var/opt/mssql/data/)或其他可访问目录。SQL Server Management Studio(SSMS)是微软提供的图形化管理工具,适用于习惯可视化操作的场景:
YourDatabaseName);T-SQL是SQL Server的原生命令行工具,适用于自动化恢复或复杂场景:
sudo systemctl stop mssql-server。sudo /opt/mssql/bin/sqlservr -m(该命令会阻塞其他连接,恢复完成后需手动停止并重启服务)。sqlcmd工具连接SQL Server(默认SA账户),执行以下命令:RESTORE DATABASE [YourDatabaseName]
FROM DISK '/var/opt/mssql/data/YourDatabaseName.bak'
WITH REPLACE, RECOVERY;
[YourDatabaseName]:目标数据库名称;/var/opt/mssql/data/YourDatabaseName.bak:备份文件路径;WITH REPLACE:覆盖现有数据库;WITH RECOVERY:恢复后数据库可用(若需应用后续日志,可改为WITH NORECOVERY)。sudo systemctl start mssql-server重启服务。mssql-tools是微软提供的轻量级命令行工具,适用于脚本化恢复:
sudo yum install -y mssql-tools。sqlcmd连接SQL Server,执行与T-SQL相同的恢复命令(见上文),或通过脚本自动化执行。若需将数据库恢复到某一特定时间点(如误删除数据前的时刻),需结合完整备份+事务日志备份进行:
RESTORE DATABASE命令恢复最新的完整备份,添加WITH NORECOVERY(不恢复数据库,保留日志链)。WITH NORECOVERY,直到目标时间点前的最后一个日志备份。WITH RECOVERY, STOPAT='YYYY-MM-DD HH:MI:SS'(指定目标时间点),完成恢复。恢复完成后,需进行以下操作确保数据完整性:
sqlcmd执行SELECT name, state_desc FROM sys.databases WHERE name = 'YourDatabaseName';,确认状态为“ONLINE”。DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;,检查数据库是否有损坏。