首页主机资讯Ubuntu下SQL Server的数据库恢复方法有哪些

Ubuntu下SQL Server的数据库恢复方法有哪些

时间2025-10-31 14:53:04发布访客分类主机资讯浏览1225
导读:Ubuntu下SQL Server数据库恢复方法 一、准备工作 在恢复前需完成以下基础配置: 安装SQL Server客户端工具:确保系统已安装msodbcsql17(用于sqlcmd工具连接),可通过sudo apt-get updat...

Ubuntu下SQL Server数据库恢复方法

一、准备工作

在恢复前需完成以下基础配置:

  1. 安装SQL Server客户端工具:确保系统已安装msodbcsql17(用于sqlcmd工具连接),可通过sudo apt-get update & & sudo apt-get install msodbcsql17命令安装。
  2. 确认备份文件位置:恢复需使用之前创建的.bak备份文件(如完整备份、差异备份、事务日志备份),确保文件存储在Ubuntu服务器可访问的路径(如/var/opt/mssql/backup/)。
  3. 设置恢复模式:若需进行时间点恢复(如恢复到某一时刻),需将数据库恢复模式设置为FULL(完整恢复模式),可通过ALTER DATABASE [数据库名] SET RECOVERY FULL; 命令设置。

二、常用恢复方法

1. 使用sqlcmd命令行工具恢复(基础场景)

sqlcmd是Ubuntu下最常用的SQL Server命令行工具,适用于手动或脚本化恢复。

  • 恢复完整备份
    执行以下命令还原最近一次完整备份,WITH REPLACE参数用于覆盖现有数据库,WITH RECOVERY表示恢复后可立即使用:
    sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backup/YourDatabaseName_full.bak' WITH REPLACE, RECOVERY, STATS=10"
    
    STATS=10表示每完成10%显示一次进度。
  • 恢复差异备份(需先恢复完整备份)
    若存在差异备份,需先恢复完整备份(WITH NORECOVERY表示不恢复数据库,等待后续差异备份),再恢复差异备份(WITH RECOVERY):
    # 恢复完整备份(不恢复)
    sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backup/YourDatabaseName_full.bak' WITH REPLACE, NORECOVERY, STATS=10"
    # 恢复差异备份(恢复)
    sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backup/YourDatabaseName_diff.bak' WITH RECOVERY, STATS=10"
    
  • 恢复事务日志备份(需先恢复完整+差异备份)
    若数据库处于完整恢复模式且有事务日志备份,可通过事务日志实现时间点恢复(如恢复到某一时刻):
    # 恢复完整备份(不恢复)
    sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backup/YourDatabaseName_full.bak' WITH REPLACE, NORECOVERY, STATS=10"
    # 恢复差异备份(不恢复,若有)
    sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backup/YourDatabaseName_diff.bak' WITH NORECOVERY, STATS=10"
    # 恢复事务日志备份(恢复到指定时间,如2025-10-30 10:00:00)
    sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE LOG [YourDatabaseName] FROM DISK='/var/opt/mssql/backup/YourDatabaseName_log.bak' WITH STOPAT='2025-10-30 10:00:00', RECOVERY, STATS=10"
    
    STOPAT参数指定恢复到的具体时间点。

2. 使用SQL Server Management Studio (SSMS)恢复(图形化操作)

若习惯图形界面,可通过SSMS(SQL Server Management Studio)进行恢复:

  1. 连接SQL Server实例:打开SSMS,输入Ubuntu服务器IP、端口(默认1433)、身份验证方式(如SQL Server身份验证)及SA账户密码,连接实例。
  2. 启动恢复向导:右键点击“数据库”节点,选择“任务”→“恢复”→“数据库”。
  3. 选择备份源:在“常规”页,选择“设备”→“浏览”,添加.bak备份文件(如完整备份、差异备份、事务日志备份)。
  4. 配置恢复选项
    • 若恢复完整备份,勾选“覆盖现有数据库”;
    • 若需恢复差异或事务日志备份,需在“还原计划”中添加多个备份文件,并设置“恢复状态”(如“WITH RECOVERY”或“WITH NORECOVERY”)。
  5. 执行恢复:点击“确定”,等待恢复完成。

3. 使用第三方工具恢复(特殊场景)

若备份文件损坏或需从日志文件中恢复误删除数据,可使用第三方工具(如SysTools SQL Recovery、Recovery for SQL Server):

  • 适用场景:无备份、备份不完整、误删除表/数据等;
  • 操作步骤
    1. 下载并安装工具(如SysTools SQL Recovery);
    2. 选择备份文件(.bak)或日志文件(.ldf);
    3. 扫描文件并预览可恢复的数据;
    4. 导出恢复的数据到新数据库或现有数据库。

三、恢复后验证

恢复完成后,需验证数据库完整性和可用性:

  1. 检查数据库完整性:使用DBCC CHECKDB命令检测数据库是否有损坏:
    sqlcmd -S localhost -U SA -P 'YourPassword' -Q "DBCC CHECKDB([YourDatabaseName]) WITH NO_INFOMSGS, ALL_ERRORMSGS"
    
    若输出无错误,则数据库完整。
  2. 测试数据访问:通过SSMS或应用程序连接数据库,查询关键表数据,确认数据恢复正确。

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


若转载请注明出处: Ubuntu下SQL Server的数据库恢复方法有哪些
本文地址: https://pptw.com/jishu/739960.html
ubuntu进程启动慢的原因 SQL Server在Ubuntu上的兼容性测试怎么做

游客 回复需填写必要信息