CentOS上SQL Server的数据库恢复方法是什么
导读:CentOS上SQL Server数据库恢复方法 一、准备工作 确认备份文件:确保拥有最新的完整数据库备份文件(.bak格式,可选事务日志备份.trn文件),且备份文件未损坏。 安装mssql-tools(可选但推荐):用于命令行恢复,执...
CentOS上SQL Server数据库恢复方法
一、准备工作
- 确认备份文件:确保拥有最新的完整数据库备份文件(.bak格式,可选事务日志备份.trn文件),且备份文件未损坏。
- 安装mssql-tools(可选但推荐):用于命令行恢复,执行
sudo yum install -y mssql-tools安装,安装后可通过sqlcmd工具连接实例。 - 停止SQL Server服务(可选):若需避免恢复过程中数据冲突,可执行
sudo systemctl stop mssql-server停止服务;恢复完成后用sudo systemctl start mssql-server启动。
二、常用恢复方法
1. 使用SQL Server Management Studio(SSMS)图形界面恢复
- 连接到SQL Server实例:打开SSMS,输入CentOS服务器的IP地址、端口(默认1433)、用户名(如sa)和密码,点击“连接”。
- 启动恢复流程:右键点击“数据库”文件夹,选择“任务”→“还原”→“数据库”。
- 配置恢复选项:
- 选择“设备”→“浏览”,添加备份文件(.bak);
- 在“常规”页面,设置目标数据库名称(可新建或覆盖现有数据库);
- 切换至“选项”页面,勾选“覆盖现有数据库(WITH REPLACE)”,并根据需求选择“恢复状态”(如“WITH RECOVERY”表示恢复后数据库可用,“WITH NORECOVERY”表示保留数据库在恢复状态,用于后续日志恢复)。
- 执行恢复:点击“确定”,等待恢复完成。
2. 使用T-SQL命令恢复
- 连接到实例:使用
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。
3. 使用mssql-tools命令行恢复
- 直接通过
sqlcmd执行T-SQL恢复命令(步骤同“使用T-SQL命令恢复”),无需手动输入,适合自动化脚本。
三、高级恢复场景
1. 事务日志恢复(精确恢复到某时间点)
- 前提:数据库恢复模式需设置为“完整”(FULL),且已备份事务日志。
- 步骤:先恢复完整备份(
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; -- 最后一个日志备份 ```。
2. 数据库镜像故障恢复
- 若配置了数据库镜像,可通过手动切换至镜像数据库恢复服务,命令:
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 [表名];更新统计信息,提升查询性能。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上SQL Server的数据库恢复方法是什么
本文地址: https://pptw.com/jishu/741930.html
