使用 SQL Server Management Studio 还原 .bak 备份文件的完整指南

文章目录

    • [⭐ 适用版本](#⭐ 适用版本)
  • 一、准备工作
  • [二、通过 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 文件

在弹出的窗口中:

  1. 点击 Add(添加)
  2. 找到你的 .bak 文件路径
  3. 添加后点击 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

相关推荐
亮子AI18 小时前
注册成功的提示信息怎么写?
数据库·python
ybb_ymm18 小时前
如何通过跳板机链接mysql数据库
数据库·mysql
繁依Fanyi18 小时前
从初识到实战 | OpenTeleDB 安装迁移使用指南
开发语言·数据库·python
朱峥嵘(朱髯)18 小时前
数据库如何根据估计 NDV,以及通过分区 NDV 推导全局 NDV
数据库·算法
7ioik18 小时前
RC和RR隔离级别下MVCC的差异?
数据库·sql·mysql
高溪流18 小时前
2.Mysql相关概念 及 数据库操作
数据库·mysql
Summer_Uncle18 小时前
【QT学习】qt项目使用MySQL数据库
数据库·qt·学习
施嘉伟18 小时前
Oracle 10046 Trace 硬核指南:SQL 慢在哪,从底层拉出来
数据库·sql·oracle
_ziva_19 小时前
MAC-SQL 多智能体协作框架解析
数据库·oracle