SQL Server在CentOS上的数据库恢复方法
导读:SQL Server在CentOS上的数据库恢复方法 一、恢复前的准备工作 确认备份文件:确保拥有最新的完整数据库备份(.bak格式)或事务日志备份(.trn格式),且备份文件未损坏。 停止SQL Server服务:为避免恢复过程中数据冲...
SQL Server在CentOS上的数据库恢复方法
一、恢复前的准备工作
- 确认备份文件:确保拥有最新的完整数据库备份(.bak格式)或事务日志备份(.trn格式),且备份文件未损坏。
- 停止SQL Server服务:为避免恢复过程中数据冲突,需先停止SQL Server服务。执行命令:
sudo systemctl stop mssql-server。 - 复制备份文件:将备份文件复制到SQL Server实例可访问的目录(如
/var/opt/mssql/backup/)。
二、常用恢复方法
1. 使用SQL Server Management Studio (SSMS) 图形化恢复
- 启动SSMS并连接实例:通过Windows电脑登录SSMS,输入CentOS服务器的IP地址、端口(默认1433)、身份验证方式(SQL Server身份验证)及sa账户密码,连接到目标SQL Server实例。
- 执行还原操作:
- 展开“数据库”文件夹,右键点击“数据库”,选择“任务”→“还原”→“数据库”;
- 在“常规”页面,选择“设备”,点击“浏览”添加备份文件(.bak);
- 切换至“选项”页面,勾选“覆盖现有数据库(WITH REPLACE)”,并选择“恢复数据库(WITH RECOVERY)”(若需应用后续事务日志,则选“WITH NORECOVERY”);
- 点击“确定”开始恢复。
2. 使用T-SQL命令行恢复
- 进入单用户模式:停止SQL Server服务后,通过命令行以单用户模式启动(避免其他连接干扰):
sudo /opt/mssql/bin/sqlservr -m。 - 连接实例并执行恢复命令:
- 打开新终端,使用
sqlcmd工具连接(替换your_password为sa账户密码):sqlcmd -S localhost -U sa -P your_password; - 输入恢复命令(替换
数据库名称、备份文件路径):RESTORE DATABASE [数据库名称] FROM DISK '/备份文件路径/备份文件名.bak' WITH REPLACE, RECOVERY;; - 输入
GO执行命令,完成后输入QUIT退出sqlcmd。
- 打开新终端,使用
3. 使用mssql-tools工具恢复
- 安装mssql-tools:通过yum包管理器安装(需提前启用Microsoft仓库):
sudo yum install -y mssql-tools。 - 连接实例并执行恢复:
- 使用
sqlcmd连接:sqlcmd -S localhost -U sa -P your_password; - 执行恢复命令(同T-SQL方法)。
- 使用
三、高级恢复场景
1. 事务日志恢复(实现精确恢复点)
若已执行完整备份并有多个事务日志备份,可通过事务日志恢复到特定时间点。命令示例:
RESTORE LOG [数据库名称] FROM DISK '/备份文件路径/日志文件名.trn' WITH RECOVERY, STOPAT='2025-10-20 14:30:00';
(替换数据库名称、日志文件路径及目标时间点)。
2. 数据库镜像恢复(高可用场景)
若配置了数据库镜像,可通过手动切换至镜像数据库恢复服务。命令示例:
ALTER DATABASE [数据库名称] SET PARTNER FAILOVER;
(切换后,镜像数据库成为主数据库)。
四、恢复后检查与修复
- 验证数据库状态:通过SSMS或
sqlcmd执行SELECT name, state_desc FROM sys.databases WHERE name = '数据库名称';,确认数据库状态为“ONLINE”。 - 检查数据完整性:执行
DBCC CHECKDB([数据库名称]) WITH NO_INFOMSGS, ALL_ERRORMSGS;,检测数据库是否有损坏。 - 修复数据问题:若
DBCC CHECKDB报错,可使用REPAIR_ALLOW_DATA_LOSS选项修复(谨慎使用,可能导致数据丢失):DBCC CHECKDB([数据库名称], REPAIR_ALLOW_DATA_LOSS);。 - 重建索引与更新统计信息:执行
ALTER INDEX ALL ON [表名] REBUILD;重建索引,执行UPDATE STATISTICS [表名];更新统计信息,提升查询性能。
注意事项
- 恢复前务必备份当前数据库,防止误操作导致数据进一步丢失;
- 若备份文件来自其他服务器,需确保SQL Server版本兼容;
- 事务日志恢复需按顺序应用所有日志文件,否则可能导致数据不一致;
- 若恢复失败,可查看SQL Server错误日志(
/var/opt/mssql/log/errorlog)定位问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SQL Server在CentOS上的数据库恢复方法
本文地址: https://pptw.com/jishu/734824.html
