CentOS上SQL Server数据库恢复方法
sudo yum install -y mssql-tools安装,安装后可通过sqlcmd工具连接实例。sudo systemctl stop mssql-server停止服务;恢复完成后用sudo systemctl start mssql-server启动。sqlcmd工具连接,命令示例:sqlcmd -S localhost -U sa -P your_password。RESTORE DATABASE [数据库名称] FROM DISK '/备份文件路径/备份文件名.bak' WITH REPLACE, RECOVERY;(将“数据库名称”替换为目标数据库名,“/备份文件路径/备份文件名.bak”替换为实际路径)。WITH NORECOVERY),再依次恢复日志备份(最后一个日志备份用WITH RECOVERY),示例:RESTORE DATABASE [数据库名称] FROM DISK '/backups/AdventureWorks2019.bak' WITH NORECOVERY;
RESTORE LOG [数据库名称] FROM DISK '/backups/AdventureWorks2019_Log.bak' WITH RECOVERY;
```。
sqlcmd:输入QUIT。sqlcmd执行T-SQL恢复命令(步骤同“使用T-SQL命令恢复”),无需手动输入,适合自动化脚本。WITH NORECOVERY),再按顺序恢复所有事务日志备份(除最后一个外均用WITH NORECOVERY),最后一个日志备份用WITH RECOVERY,示例:RESTORE DATABASE [数据库名称] FROM DISK '/backups/full_backup.bak' WITH NORECOVERY;
RESTORE LOG [数据库名称] FROM DISK '/backups/log1.trn' WITH NORECOVERY;
RESTORE LOG [数据库名称] FROM DISK '/backups/log2.trn' WITH RECOVERY; -- 最后一个日志备份
```。
ALTER DATABASE [数据库名称] SET PARTNER FAILOVER;。DBCC CHECKDB([数据库名称]) WITH NO_INFOMSGS, ALL_ERRORMSGS;,验证数据页和索引是否损坏。DBCC CHECKDB报错,可使用DBCC CHECKDB([数据库名称], REPAIR_ALLOW_DATA_LOSS);修复(注意:此操作可能导致少量数据丢失,需提前备份)。ALTER INDEX ALL ON [表名] REBUILD;重建索引,执行UPDATE STATISTICS [表名];更新统计信息,提升查询性能。