首页主机资讯Ubuntu SQL Server如何进行数据恢复

Ubuntu SQL Server如何进行数据恢复

时间2025-10-01 19:21:03发布访客分类主机资讯浏览732
导读:Ubuntu环境下SQL Server数据恢复的常见方法及操作步骤 一、使用sqlcmd命令行工具恢复(推荐:无需图形界面,灵活高效) sqlcmd是SQL Server自带的命令行工具,适用于Ubuntu服务器环境,支持通过T-SQL命令...

Ubuntu环境下SQL Server数据恢复的常见方法及操作步骤

一、使用sqlcmd命令行工具恢复(推荐:无需图形界面,灵活高效)

sqlcmd是SQL Server自带的命令行工具,适用于Ubuntu服务器环境,支持通过T-SQL命令完成数据库恢复。

1. 准备工作

  • 确保SQL Server已安装并运行(可通过systemctl status mssql-server验证);
  • 安装sqlcmd工具(若未安装,执行sudo apt-get update & & sudo apt-get install mssql-tools);
  • 将备份文件(.bak格式)上传至Ubuntu服务器(如/var/opt/mssql/backups/目录),并确认目录权限正确(sudo chown mssql:mssql /var/opt/mssql/backups/)。

2. 完整备份恢复(无增量/日志时)

sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backups/YourDatabaseName_full.bak' WITH REPLACE, RECOVERY"
  • REPLACE:覆盖现有同名数据库;
  • RECOVERY:将数据库恢复至可用状态(若需应用后续增量/日志,改为NORECOVERY)。

3. 增量备份恢复(配合完整备份使用)

需先恢复最近的完整备份,再依次恢复增量备份:

# 恢复完整备份(NORECOVERY表示未完成恢复)
sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backups/YourDatabaseName_full.bak' WITH NORECOVERY"

# 恢复增量备份(如2025-09-23的增量备份)
sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backups/YourDatabaseName_diff_20250923.bak' WITH RECOVERY"

4. 事务日志恢复(完整恢复模式下,实现精确到某时间点的恢复)

需先恢复完整备份和所有增量备份,最后恢复事务日志:

# 恢复完整备份(NORECOVERY)
sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "RESTORE DATABASE [YourDatabaseName] FROM DISK='/var/opt/mssql/backups/YourDatabaseName_full.bak' WITH NORECOVERY"

# 恢复事务日志(如2025-09-23的日志备份)
sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "RESTORE LOG [YourDatabaseName] FROM DISK='/var/opt/mssql/backups/YourDatabaseName_log_20250923.bak' WITH STOPAT='2025-09-23 18:00:00', RECOVERY"
  • STOPAT:指定恢复到的具体时间点(如误删除数据的时间),需开启SQL Server的完整恢复模式(ALTER DATABASE [YourDatabaseName] SET RECOVERY FULL)。

5. 验证恢复结果

恢复完成后,检查数据库完整性并测试数据:

# 检查数据库物理结构完整性
sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "DBCC CHECKDB([YourDatabaseName]) WITH NO_INFOMSGS"

# 查询表数据(示例:查询dbo.Users表的前10条记录)
sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "USE [YourDatabaseName];
     SELECT TOP 10 * FROM dbo.Users;
    "

二、使用SQL Server Management Studio (SSMS)恢复(图形界面,适合新手)

若习惯图形操作,可通过SSMS连接Ubuntu上的SQL Server实例进行恢复:

1. 安装SSMS

在Windows电脑上下载并安装SSMS(Microsoft官方提供),通过SSH隧道或直接连接Ubuntu服务器的SQL Server实例(默认端口1433)。

2. 恢复步骤

  1. 打开SSMS,输入连接信息(服务器地址:localhost或Ubuntu服务器IP;身份验证:SQL Server身份验证;用户名:sa;密码:设置的密码),点击“连接”;
  2. 右键点击“数据库”节点,选择“还原数据库”;
  3. 在“源”选项卡中,选择“设备”,点击“浏览”添加备份文件(.bak);
  4. 切换至“常规”选项卡,在“目标数据库”输入框中输入恢复后的数据库名称;
  5. 在“选项”页签中,勾选“覆盖现有数据库(WITH REPLACE)”,并根据需要选择“恢复状态”(如“还原后保持数据库不可用”或“还原后使数据库可用”);
  6. 点击“确定”,等待恢复完成。

三、使用第三方工具恢复(无备份时的补救措施)

若未备份或备份损坏,可尝试使用第三方数据恢复工具(如SysTools SQL Recovery、Recovery for SQL Server),但恢复效果取决于数据覆盖情况。

1. SysTools SQL Recovery操作步骤

  1. 下载并安装工具(需购买正版);
  2. 启动工具,选择“Recover Database from SQL Server Backup”模式;
  3. 添加备份文件(.bak)路径;
  4. 选择要恢复的数据库对象(表、视图、存储过程等);
  5. 点击“Recover”开始恢复,保存恢复后的文件(如.csv、.sql);
  6. 将恢复的文件导入SQL Server(可通过SSMS的“导入数据”功能)。

2. 注意事项

  • 第三方工具无法保证100%恢复数据,尤其是备份文件已损坏或被覆盖的情况;
  • 恢复前尽量停止SQL Server服务,避免新数据覆盖旧数据;
  • 若数据极其重要,建议联系专业数据恢复服务商。

四、恢复前的准备工作与注意事项

  1. 备份优先:恢复操作前,务必对现有数据库进行完整备份(BACKUP DATABASE [YourDatabaseName] TO DISK='/var/opt/mssql/backups/YourDatabaseName_current.bak' WITH INIT),防止恢复过程中出现意外;
  2. 恢复模式:确保数据库处于正确的恢复模式(完整恢复模式支持事务日志恢复,简单恢复模式不支持);
  3. 权限检查:执行恢复操作的用户需具备sysadmindbcreator角色权限;
  4. 测试环境:正式恢复前,建议在测试环境中验证备份文件的可用性和恢复流程的正确性;
  5. 停机时间:恢复操作可能影响数据库可用性,建议在业务低峰时段进行。

通过以上方法,可根据数据丢失场景选择合适的恢复方式。若恢复失败,建议检查备份文件的完整性(如使用RESTORE VERIFYONLY命令),或联系Microsoft技术支持获取帮助。

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


若转载请注明出处: Ubuntu SQL Server如何进行数据恢复
本文地址: https://pptw.com/jishu/716125.html
Ubuntu SQL Server如何进行日志管理 Ubuntu SQL Server如何进行版本升级

游客 回复需填写必要信息