在CentOS上恢复SQL Server数据的步骤
.bak
或.trn
)。若备份文件损坏或丢失,需先尝试修复(如使用RESTORE VERIFYONLY
命令验证备份完整性)或获取新的备份。mssql-tools
(包含sqlcmd
工具),执行命令:sudo yum install -y mssql-tools
。sudo systemctl stop mssql-server
。your_database.bak
)复制到SQL Server实例的目标目录(如/var/opt/mssql/backup/
)。localhost
)、身份验证方式(建议使用sa
账户及密码)并连接。sudo systemctl start mssql-server
。sudo /opt/mssql/bin/sqlservr -m
。sqlcmd -S localhost -U sa -P your_password
(替换your_password
为sa
账户密码)。数据库名称
、备份文件路径
):RESTORE DATABASE [数据库名称] FROM DISK '/备份文件路径/备份文件名.bak' WITH REPLACE, RECOVERY;
若需恢复事务日志(如增量备份),需追加日志文件路径:RESTORE LOG [数据库名称] FROM DISK '/备份文件路径/日志文件名.trn' WITH RECOVERY;
输入GO
执行命令。QUIT
退出sqlcmd
,然后启动SQL Server服务:sudo systemctl start mssql-server
。sqlcmd -S MSSQLSERVER -d your_database -E
(-E
表示Windows身份验证,若使用sa
账户则用-U sa -P your_password
)。GO
执行。SELECT name, state_desc FROM sys.databases WHERE name = '数据库名称'
,确认数据库状态为ONLINE
。DBCC CHECKDB
命令检查数据库一致性,示例:USE [数据库名称]; DBCC CHECKDB WITH NO_INFOMSGS;
若存在错误,可使用DBCC CHECKDB (数据库名称, REPAIR_ALLOW_DATA_LOSS)
修复(谨慎使用,可能导致数据丢失)。USE [数据库名称]; EXEC sp_MSforeachtable @command1="ALTER INDEX ALL ON ? REBUILD"; ```。
USE [数据库名称]; EXEC sp_updatestats; ```。