SQL Server在Debian上的数据库恢复步骤是什么
导读:1. 准备工作  确认环境:确保Debian系统上已安装SQL Server(官方支持版本如SQL Server 2019+),并通过systemctl status mssql-server验证服务处于运行状态。 获取备份文件:确保拥有完...
    
1. 准备工作
- 确认环境:确保Debian系统上已安装SQL Server(官方支持版本如SQL Server 2019+),并通过systemctl status mssql-server验证服务处于运行状态。
- 获取备份文件:确保拥有完整的数据库备份文件(.bak格式),若需时间点恢复还需准备事务日志备份(.trn格式)。备份文件可存储在本地目录(如/var/opt/mssql/backup)或网络共享路径(需SQL Server实例有访问权限)。
- 安装工具:安装sqlcmd命令行工具(SQL Server自带,可通过apt-get install mssql-tools获取),用于执行T-SQL恢复命令。
2. 使用sqlcmd命令行恢复(推荐)
- 
基本语法:通过 RESTORE DATABASE命令指定备份文件路径、数据库名称及文件移动选项(避免路径冲突)。RESTORE DATABASE [目标数据库名] FROM DISK = '/path/to/backupfile.bak' WITH REPLACE, RECOVERY, MOVE '逻辑数据文件名' TO '/var/opt/mssql/data/目标数据库名.mdf', MOVE '逻辑日志文件名' TO '/var/opt/mssql/data/目标数据库名.ldf';- 参数说明:
- REPLACE:覆盖现有同名数据库(若目标数据库已存在)。
- RECOVERY:将数据库恢复至可用状态(若需应用后续日志备份,可先用- NORECOVERY)。
- MOVE:将备份中的逻辑文件(如- YourDB_Data、- YourDB_Log)映射到Debian系统的物理路径(需提前创建- /var/opt/mssql/data目录并赋予权限:- chown -R mssql:mssql /var/opt/mssql/data)。
 
 
- 参数说明:
- 
示例(带事务日志恢复):若备份包含完整备份+事务日志,需按顺序恢复以实现时间点恢复: -- 1. 恢复完整备份(不恢复至可用状态) RESTORE DATABASE [SalesDB] FROM DISK = '/var/opt/mssql/backup/SalesDB_Full.bak' WITH NORECOVERY, MOVE 'SalesDB_Data' TO '/var/opt/mssql/data/SalesDB.mdf', MOVE 'SalesDB_Log' TO '/var/opt/mssql/data/SalesDB.ldf'; -- 2. 恢复事务日志备份(恢复至指定时间点,如2025-10-30 15:00:00) RESTORE LOG [SalesDB] FROM DISK = '/var/opt/mssql/backup/SalesDB_Log.trn' WITH STOPAT = '2025-10-30 15:00:00', RECOVERY;
3. 使用SQL Server Management Studio (SSMS)恢复(图形界面)
- 连接实例:打开SSMS,输入Debian系统的SQL Server实例地址(如localhost)、身份验证方式(建议使用SA账户,密码需提前配置),点击“连接”。
- 启动恢复向导:右键点击“数据库”节点,选择“还原数据库”。
- 配置恢复选项:
- 来源选择:在“常规”页签,选择“设备”→点击“添加”,浏览至备份文件(.bak)。
- 数据库设置:输入目标数据库名称(如SalesDB),勾选“覆盖现有数据库”。
- 文件映射:在“文件”页签,检查“将数据库文件还原为”列表,确保逻辑文件名映射到Debian系统的有效路径(如/var/opt/mssql/data/目标数据库名.mdf)。
 
- 执行恢复:点击“确定”,等待恢复过程完成(进度条显示100%即成功)。
4. 故障排查
- 权限问题:若出现“访问被拒绝”错误,需确认备份文件路径对mssql用户可读(chmod 644 /path/to/backupfile.bak),且数据目录权限正确(chown -R mssql:mssql /var/opt/mssql/data)。
- 路径冲突:若备份文件中的逻辑路径(如C:\Data\YourDB.mdf)在Debian上不存在,必须通过MOVE选项映射到有效路径,否则恢复失败。
- 恢复模式检查:若需时间点恢复,需确保数据库处于“完整恢复模式”(通过ALTER DATABASE [数据库名] SET RECOVERY FULL;设置),否则无法应用事务日志备份。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SQL Server在Debian上的数据库恢复步骤是什么
本文地址: https://pptw.com/jishu/740360.html
