文章目录
-
- [⭐ 适用版本](#⭐ 适用版本)
- 一、准备工作
- [二、通过 SSMS 还原 .bak 文件(核心步骤)](#二、通过 SSMS 还原 .bak 文件(核心步骤))
-
- [步骤 1:打开 SSMS 并连接数据库](#步骤 1:打开 SSMS 并连接数据库)
- [步骤 2:右键 Databases → Restore Database...](#步骤 2:右键 Databases → Restore Database…)
- [步骤 3:选择备份来源(Source)](#步骤 3:选择备份来源(Source))
- [步骤 4:添加 .bak 文件](#步骤 4:添加 .bak 文件)
- [步骤 5:选择还原目标数据库(Destination)](#步骤 5:选择还原目标数据库(Destination))
- [步骤 6:进入 Options(重要设置)](#步骤 6:进入 Options(重要设置))
-
- [✔ Overwrite the existing database (WITH REPLACE)](#✔ Overwrite the existing database (WITH REPLACE))
- [✔ Close existing connections](#✔ Close existing connections)
- [✔ Restore As(文件路径修正)](#✔ Restore As(文件路径修正))
- [步骤 7:点击 OK 开始恢复](#步骤 7:点击 OK 开始恢复)
- 三、还原数据库常见错误与解决办法
-
- [❗ 1. 无法访问备份文件(错误 3201)](#❗ 1. 无法访问备份文件(错误 3201))
- [❗ 2. 数据库正在使用,无法覆盖](#❗ 2. 数据库正在使用,无法覆盖)
- [❗ 3. 逻辑路径不一致导致报错(常见于不同机器迁移)](#❗ 3. 逻辑路径不一致导致报错(常见于不同机器迁移))
- [四、T-SQL 命令行还原(可选)](#四、T-SQL 命令行还原(可选))
- 五、总结
在日常运维或开发过程中,我们经常需要将 SQL Server 数据库的 .bak 备份文件 恢复到新的环境或本地测试环境。无论你是数据库管理员、后端开发工程师,还是刚开始接触 SQL Server,本篇文章都将教你如何通过 SQL Server Management Studio(SSMS) 进行 .bak 文件的完整还原。
下面将以最常见的 SSMS 图形界面操作为例,详细说明整个恢复流程,以及常见问题的解决办法。
⭐ 适用版本
- SQL Server 2008 / 2012 / 2014 / 2016 / 2017 / 2019 / 2022
- SSMS 各版本(18.x / 19.x)
一、准备工作
在开始操作之前,你需要:
- 一个 SQL Server 数据库实例(本地或远程)
- 已安装的 SQL Server Management Studio(SSMS)
- 一份
.bak备份文件
提示:
如果你的 .bak 文件来自其他服务器,它内部记录的物理文件路径(MDF/LDF)可能与本机不一致,这点在后文会讲到。
二、通过 SSMS 还原 .bak 文件(核心步骤)
以下为图形化界面操作步骤,简单易上手。
步骤 1:打开 SSMS 并连接数据库
启动 SSMS,输入你的 SQL Server 地址与账号密码,连接到目标实例。
步骤 2:右键 Databases → Restore Database...
在左侧对象资源管理器中:
Databases(数据库) → 右键 → Restore Database...(还原数据库)
进入还原界面。
步骤 3:选择备份来源(Source)
在 Source 中选择:
✔ Device(设备)
然后点击右侧的 [...] 按钮。
步骤 4:添加 .bak 文件
在弹出的窗口中:
- 点击 Add(添加)
- 找到你的
.bak文件路径 - 添加后点击 OK
你会看到备份集被列在下方表格里。
步骤 5:选择还原目标数据库(Destination)
在 "Destination" 部分:
- 如果你是恢复一个新数据库,可以输入一个新的数据库名称;
- 如果你要覆盖已有数据库,保持名称一致即可。
步骤 6:进入 Options(重要设置)
左侧选择 Options,几个常用且重要的选项如下:
✔ Overwrite the existing database (WITH REPLACE)
如果你要覆盖现有数据库,一定要勾选。
✔ Close existing connections
如果某个数据库正在被占用(常见于生产库或多人环境),必须勾选此项才能关闭连接。
✔ Restore As(文件路径修正)
如果恢复时报错 ...cannot open the physical file...,这里可以修改 MDF/LDF 的路径到你本地存在的目录。
步骤 7:点击 OK 开始恢复
等待数秒到数分钟即可看到:
Database restored successfully
至此,你已经成功通过 SSMS 完整恢复了一个 .bak 数据库!
三、还原数据库常见错误与解决办法
以下是经常遇到的问题及解决方法。
❗ 1. 无法访问备份文件(错误 3201)
原因是 SQL Server 服务账号没有权限访问你放 .bak 文件的目录。
解决方法:
把 .bak 文件移动到 SQL Server 默认的 Backup 目录,例如:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\
❗ 2. 数据库正在使用,无法覆盖
报错提示:
The tail of the log for the database has not been backed up...
解决方法:
✔ 勾选
- Close existing connections
- Overwrite (WITH REPLACE)
❗ 3. 逻辑路径不一致导致报错(常见于不同机器迁移)
报错类似:
Cannot open the physical file "D:\DBDATA\xxx.mdf"
原因:备份文件内部的 MDF/LDF 物理路径与你本机不一致。
解决方案:
在 Options → Relocate all files 修改路径为本机存在的路径,例如:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\
四、T-SQL 命令行还原(可选)
如果你喜欢用脚本,也可以用命令行方式还原:
sql
RESTORE DATABASE MyDB
FROM DISK = 'D:\backup\mydb.bak'
WITH REPLACE,
MOVE 'MyDB' TO 'C:\SQLDATA\MyDB.mdf',
MOVE 'MyDB_log' TO 'C:\SQLDATA\MyDB_log.ldf';
适用于自动化脚本或批量操作。
五、总结
通过 SQL Server Management Studio 还原 .bak 文件的过程其实很简单,只需几分钟即可完成。关键步骤在于:
- 选择 Device 添加 .bak 文件
- 配置目标数据库
- Options 中处理文件路径与覆盖数据库问题
- 解决权限和路径不一致的常见错误
无论你是在本地开发环境恢复数据,还是在服务器迁移数据库,相同的流程都非常适用。
提示:更多内容可以访问Clang's Blog:https://www.clang.asia