CentOS下SQL Server的数据库恢复方法
导读:CentOS下SQL Server数据库恢复方法 一、准备工作 确认备份文件:确保拥有最新的数据库备份文件(通常为.bak格式,事务日志备份为.trn格式),且备份文件未被损坏。 停止SQL Server服务:恢复前需停止服务以避免文件占...
CentOS下SQL Server数据库恢复方法
一、准备工作
- 确认备份文件:确保拥有最新的数据库备份文件(通常为
.bak
格式,事务日志备份为.trn
格式),且备份文件未被损坏。 - 停止SQL Server服务:恢复前需停止服务以避免文件占用,执行命令:
sudo systemctl stop mssql-server
。 - 复制备份文件:将备份文件复制到SQL Server实例的数据目录(默认路径为
/var/opt/mssql/data/
)或其他可访问目录。 - 启动SQL Server服务:恢复完成后启动服务,命令:
sudo systemctl start mssql-server
。
二、使用SQL Server Management Studio (SSMS) 恢复
- 连接实例:打开SSMS,输入CentOS服务器的IP地址、端口(默认1433)及SA账户密码,连接到SQL Server实例。
- 启动恢复向导:在对象资源管理器中展开“数据库”节点,右键点击“数据库”,选择“任务”→“还原”→“数据库”。
- 配置恢复选项:
- 选择“设备”,点击“浏览”定位备份文件;
- 在“常规”页面确认数据库名称,选择“覆盖现有数据库”;
- 切换至“选项”页面,勾选“WITH RECOVERY”(默认)以恢复数据库至可用状态,若需后续应用事务日志则选“WITH NORECOVERY”。
- 执行恢复:点击“确定”开始恢复,完成后刷新数据库列表验证状态。
三、使用T-SQL命令恢复
- 进入命令行工具:使用
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
。
四、使用mssql-tools恢复
- 安装mssql-tools:通过yum安装命令行工具,命令:
sudo yum install -y mssql-tools
。 - 连接实例并恢复:使用
sqlcmd
执行T-SQL恢复命令(步骤同“使用T-SQL命令恢复”),例如:RESTORE DATABASE [YourDB] FROM DISK '/backups/YourDB.bak' WITH REPLACE, RECOVERY;
。
五、恢复后检查与修复
- 验证数据库状态:通过SSMS或
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 [数据库名称].[架构名].[表名];
(更新指定表统计信息)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下SQL Server的数据库恢复方法
本文地址: https://pptw.com/jishu/715535.html