CentOS下SQL Server数据库恢复方法
.bak格式,事务日志备份为.trn格式),且备份文件未被损坏。sudo systemctl stop mssql-server。/var/opt/mssql/data/)或其他可访问目录。sudo systemctl start mssql-server。sqlcmd连接到SQL Server实例,命令:sqlcmd -S localhost -U sa -P your_password。RESTORE DATABASE [数据库名称] FROM DISK '/备份文件路径/备份文件名.bak' WITH REPLACE, RECOVERY;(REPLACE用于覆盖现有数据库,RECOVERY恢复至可用状态)。RESTORE DATABASE [数据库名称] FROM DISK '/备份文件路径/差异备份文件名.bak' WITH NORECOVERY;(NORECOVERY保留数据库为恢复状态,等待事务日志)。RESTORE LOG [数据库名称] FROM DISK '/备份文件路径/事务日志文件名.trn' WITH RECOVERY;(RECOVERY完成恢复流程)。QUIT退出sqlcmd。sudo yum install -y mssql-tools。sqlcmd执行T-SQL恢复命令(步骤同“使用T-SQL命令恢复”),例如:RESTORE DATABASE [YourDB] FROM DISK '/backups/YourDB.bak' WITH REPLACE, RECOVERY;。sqlcmd执行SELECT name, state_desc FROM sys.databases WHERE name = '数据库名称';,确认state_desc为“ONLINE”。DBCC CHECKDB([数据库名称]) WITH NO_INFOMSGS, ALL_ERRORMSGS;,修复错误(若有):DBCC CHECKDB([数据库名称], REPAIR_ALLOW_DATA_LOSS);(谨慎使用,可能导致数据丢失)。EXEC sp_MSforeachtable @command1="ALTER INDEX ALL ON ? REBUILD";(重建所有表索引),UPDATE STATISTICS [数据库名称].[架构名].[表名];(更新指定表统计信息)。