首页主机资讯CentOS上SQL Server的数据库恢复方法是什么

CentOS上SQL Server的数据库恢复方法是什么

时间2025-11-04 15:04:03发布访客分类主机资讯浏览576
导读:CentOS上SQL Server数据库恢复方法 一、准备工作 确认备份文件:确保拥有最新的完整数据库备份文件(.bak格式,可选事务日志备份.trn文件),且备份文件未损坏。 安装mssql-tools(可选但推荐):用于命令行恢复,执...

CentOS上SQL Server数据库恢复方法

一、准备工作

  1. 确认备份文件:确保拥有最新的完整数据库备份文件(.bak格式,可选事务日志备份.trn文件),且备份文件未损坏。
  2. 安装mssql-tools(可选但推荐):用于命令行恢复,执行sudo yum install -y mssql-tools安装,安装后可通过sqlcmd工具连接实例。
  3. 停止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;

四、恢复后验证与修复

  1. 检查数据库完整性:执行DBCC CHECKDB([数据库名称]) WITH NO_INFOMSGS, ALL_ERRORMSGS; ,验证数据页和索引是否损坏。
  2. 修复数据库(若有损坏):若DBCC CHECKDB报错,可使用DBCC CHECKDB([数据库名称], REPAIR_ALLOW_DATA_LOSS); 修复(注意:此操作可能导致少量数据丢失,需提前备份)。
  3. 重建索引与更新统计信息:执行ALTER INDEX ALL ON [表名] REBUILD; 重建索引,执行UPDATE STATISTICS [表名]; 更新统计信息,提升查询性能。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS上SQL Server的数据库恢复方法是什么
本文地址: https://pptw.com/jishu/741930.html
如何在CentOS上部署SQL Server的高可用性方案 SQL Server在CentOS上的权限管理如何操作

游客 回复需填写必要信息