Ubuntu下SQL Server的数据库恢复方法有哪些
导读:Ubuntu下SQL Server数据库恢复方法 一、准备工作 在恢复前需完成以下基础配置:  安装SQL Server客户端工具:确保系统已安装msodbcsql17(用于sqlcmd工具连接),可通过sudo apt-get updat...
    
Ubuntu下SQL Server数据库恢复方法
一、准备工作
在恢复前需完成以下基础配置:
- 安装SQL Server客户端工具:确保系统已安装msodbcsql17(用于sqlcmd工具连接),可通过sudo apt-get update & & sudo apt-get install msodbcsql17命令安装。
- 确认备份文件位置:恢复需使用之前创建的.bak备份文件(如完整备份、差异备份、事务日志备份),确保文件存储在Ubuntu服务器可访问的路径(如/var/opt/mssql/backup/)。
- 设置恢复模式:若需进行时间点恢复(如恢复到某一时刻),需将数据库恢复模式设置为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)进行恢复:
- 连接SQL Server实例:打开SSMS,输入Ubuntu服务器IP、端口(默认1433)、身份验证方式(如SQL Server身份验证)及SA账户密码,连接实例。
- 启动恢复向导:右键点击“数据库”节点,选择“任务”→“恢复”→“数据库”。
- 选择备份源:在“常规”页,选择“设备”→“浏览”,添加.bak备份文件(如完整备份、差异备份、事务日志备份)。
- 配置恢复选项:
- 若恢复完整备份,勾选“覆盖现有数据库”;
- 若需恢复差异或事务日志备份,需在“还原计划”中添加多个备份文件,并设置“恢复状态”(如“WITH RECOVERY”或“WITH NORECOVERY”)。
 
- 执行恢复:点击“确定”,等待恢复完成。
3. 使用第三方工具恢复(特殊场景)
若备份文件损坏或需从日志文件中恢复误删除数据,可使用第三方工具(如SysTools SQL Recovery、Recovery for SQL Server):
- 适用场景:无备份、备份不完整、误删除表/数据等;
- 操作步骤:
- 下载并安装工具(如SysTools SQL Recovery);
- 选择备份文件(.bak)或日志文件(.ldf);
- 扫描文件并预览可恢复的数据;
- 导出恢复的数据到新数据库或现有数据库。
 
三、恢复后验证
恢复完成后,需验证数据库完整性和可用性:
- 检查数据库完整性:使用DBCC CHECKDB命令检测数据库是否有损坏:sqlcmd -S localhost -U SA -P 'YourPassword' -Q "DBCC CHECKDB([YourDatabaseName]) WITH NO_INFOMSGS, ALL_ERRORMSGS"
- 测试数据访问:通过SSMS或应用程序连接数据库,查询关键表数据,确认数据恢复正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu下SQL Server的数据库恢复方法有哪些
本文地址: https://pptw.com/jishu/739960.html
