centos

SQL Server在CentOS中的数据恢复方法是什么

小樊
32
2025-10-03 03:35:12
栏目: 云计算

一、准备工作 在进行数据恢复前,需完成以下关键步骤:

  1. 确认备份文件完整性:确保拥有最新的有效备份文件(.bak或.trn格式),无损坏或丢失;
  2. 停止SQL Server服务:避免恢复过程中数据冲突,执行命令:sudo systemctl stop mssql-server
  3. 复制备份文件:将备份文件复制到SQL Server实例可访问的目录(如/var/opt/mssql/backup/)。

二、使用SQL Server Management Studio (SSMS) 恢复

  1. 连接实例:通过SSMS连接到目标SQL Server实例(需确保网络可达);
  2. 启动恢复向导:展开“数据库”文件夹,右键点击需恢复的数据库→选择“任务”→“还原”→“数据库”;
  3. 配置恢复参数
    • 选择“设备”→“浏览”,添加备份文件;
    • 在“选项”页签,勾选“覆盖现有数据库(WITH REPLACE)”,并根据需求选择“恢复状态”(如“WITH RECOVERY”恢复数据库至可用状态,或“WITH NORECOVERY”保留日志用于后续增量恢复);
  4. 执行恢复:点击“确定”,等待恢复完成。

三、使用T-SQL命令恢复

  1. 以单用户模式启动SQL Server(可选,适用于特殊场景):执行命令:sudo /opt/mssql/bin/sqlservr -m
  2. 连接实例:使用sqlcmd工具连接,命令示例:sqlcmd -S localhost -U sa -P your_password
  3. 执行恢复命令:输入以下命令(替换实际参数):
    RESTORE DATABASE [数据库名称] 
    FROM DISK '/备份文件路径/备份文件名.bak' 
    WITH REPLACE, RECOVERY;
    
    • 若需恢复事务日志,可追加命令:RESTORE LOG [数据库名称] FROM DISK '/备份文件路径/日志文件名.trn' WITH RECOVERY;
  4. 退出并重启服务:输入QUIT退出sqlcmd,启动SQL Server服务:sudo systemctl start mssql-server

四、使用mssql-tools恢复(命令行工具)

  1. 安装mssql-tools:通过YUM包管理器安装,命令:sudo yum install -y mssql-tools
  2. 连接实例并执行恢复:使用sqlcmd连接后,直接运行T-SQL恢复命令(同第三步),或通过脚本自动化恢复流程。

五、事务日志恢复(精确恢复点) 若需恢复至特定时间点(如误删除数据前),需结合完整备份+事务日志备份

  1. 恢复完整备份:使用WITH NORECOVERY选项,保留日志链;
  2. 恢复事务日志:依次恢复增量备份和事务日志,最后使用WITH RECOVERY使数据库可用。
    示例命令:
-- 恢复完整备份
RESTORE DATABASE [数据库名称] 
FROM DISK '/备份路径/完整备份.bak' 
WITH NORECOVERY;

-- 恢复事务日志(至指定时间点)
RESTORE LOG [数据库名称] 
FROM DISK '/备份路径/日志备份.trn' 
WITH STOPAT = '2025-10-01 12:00:00', RECOVERY;

六、灾难恢复与数据库镜像

  1. 数据库镜像:提前配置镜像伙伴,主数据库故障时,手动触发故障转移:ALTER DATABASE [数据库名称] SET PARTNER FAILOVER;,快速恢复服务;
  2. 第三方工具:若无备份,可尝试使用SysTools SQL Recovery等工具扫描数据库文件,恢复受损数据(成功率取决于文件损坏程度)。

七、恢复后验证与修复

  1. 检查完整性:执行DBCC CHECKDB [数据库名称]命令,检测数据库逻辑和物理一致性;
  2. 重建索引:对碎片化严重的表重建索引,提升查询性能;
  3. 功能测试:验证应用程序与数据库的兼容性,确保数据访问正常。

0
看了该问题的人还看了