DBA | 如何将 .bak 的数据库备份文件导入到SQL Server 数据库中?

知识是人生的灯塔,只有不断学习,才能照亮前行的道路

原文链接:DBA | 如何将 .bak 的数据库备份文件导入到SQL Server 数据库中?


如何将(.bak)的SQL Server 数据库备份文件导入到当前数据库中?

Step 1.登录到 Sql Server 服务器中,打开 SQL Server Management Studio,查看当前数据库版本信息。

go 复制代码
> select @@version;
  -- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   
  -- Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)

Step 2.将要导入的数据库文件上传到SQL Server服务器,例如,此处 SQL Server Database Backup File (.bak) 格式的czbm201401221113.bak文件为例; 选中数据库右键新建数据库


weiyigeek.top-新建一个数据库图

Step 3.输入新建的数据库名称czbm,请根据实际情况进行调整数据库文件,选项,以及文件组中的相关参数,最后点击"确定"按钮。


weiyigeek.top-创建czbm数据库图

Step 4.选择创建的数据库,右键点击"任务"->"还原数据库",选择备份文件,点击确定即可。


weiyigeek.top-还原数据库选项图

Step 5.在还原数据库中,选择源设备,在磁盘选择要还原的数据库bak文件,点击确定即可,点击【选项】,勾选覆盖现有数据库(WITH REPLACE),其他选项请根据需要进行选择,最后点击确认。


weiyigeek.top-选择还原的bak备份文件图

Step 6.还原成功后,将会在界面弹出【对数据库czbm的还原已成功完成】,此时回到 SQL Server Management Studio中,将会看到还原的的数据库表。

除此之外,我们还可以采用SQL语句导入数据库文件,选中某个数据库文件,右键点击【新建查询】,再代码界面输入如下代码,点击F5键或者点击运行按钮即可。

go 复制代码
-- 创建数据库
CREATE DATABASE [WEIYIGEEK_2023]
ON
PRIMARY
(
  NAME = N'WEIYIGEEK_2023',
  FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\WEIYIGEEK_2023.mdf',
  SIZE = 3072KB,
  MAXSIZE = UNLIMITED,
  FILEGROWTH = 1MB
)
LOG ON
(
  NAME = N'WEIYIGEEK_2023_log',
  FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\WEIYIGEEK_2023_log.ldf',
  SIZE = 1024KB,
  MAXSIZE = UNLIMITED,
  FILEGROWTH = 10MB
)
GO

ALTER DATABASE [WEIYIGEEK_2023] COLLATE Chinese_PRC_CI_AS
GO

ALTER DATABASE [WEIYIGEEK_2023] SET RECOVERY FULL
GO
EXEC [WEIYIGEEK_2023].dbo.sp_changedbowner N'Sa'


-- 备份操作
BACKUP DATABASE [WEIYIGEEK_2023]
TO
  DISK = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\WEIYIGEEK_2023-Backup.bak'
WITH
  NAME = N'WEIYIGEEK_2023-Backup',
  NOFORMAT, INIT, SKIP,
  STATS = 5

-- 还原操作
RESTORE DATABASE [WEIYIGEEK_2023] 
FROM
  DISK = N'D:\BACKUP\WEIYIGEEK_2023-Backup.bak'
WITH
  FILE = 1,
  MOVE N'TEST' TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\WEIYIGEEK_2023.mdf', 
  MOVE N'TEST_log' TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\WEIYIGEEK_2023.ldf', 

-- 还原操作(覆盖现有数据库)
RESTORE DATABASE [WEIYIGEEK_2023] 
FROM
  DISK = N'D:\BACKUP\WEIYIGEEK_2023-Backup.bak'
WITH
  REPLACE,
  MOVE N'TEST' TO 'D:\BACKUP\DATA\WEIYIGEEK_2023.mdf', 
  MOVE N'TEST_log' TO 'D:\BACKUP\DATA\WEIYIGEEK_2023.ldf';
  
-- 执行结果 
-- > 已为数据库 'WEIYIGEEK_2023',文件 'TEST' (位于文件 1 上)处理了 80304 页。
-- > 已为数据库 'WEIYIGEEK_2023',文件 'TEST_log' (位于文件 1 上)处理了 1 页。
-- > RESTORE DATABASE 成功处理了 80305 页,花费 106.886 秒(5.869 MB/秒)。
-- > Affected rows: 0Affected rows: 0Affected rows: 0
-- > 时间: 131.389s

支持原文:DBA | 如何将 .bak 的数据库备份文件导入到SQL Server 数据库中?

若文章写得不错,不要吝惜手中转发,点赞、在看,若有疑问的小伙伴,可在评论区留言你想法哟💬!

温馨提示:作者最近10年的工作学习笔记(涉及网络、安全、运维、开发),需要学习实践笔记的看友,可添加作者账号[WeiyiGeeker],当前价格¥199,除了获得从业笔记的同时还可进行问题答疑以及每月远程技术支持,希望大家多多支持,收获定大于付出!


如果此篇文章对你有帮助,请你将它转发给更多的人!

学习推荐 往期文章

相关推荐
zxrhhm2 分钟前
Oracle 19c RAC 默认表空间类型的管理及总结
数据库·oracle
Irene19915 分钟前
Oracle 聚合函数 vs 窗口函数 对比总结(书写顺序与执行顺序示例)
数据库
weixin_381288186 分钟前
HTML5中Noscript标签在脚本禁用环境下的补救
jvm·数据库·python
S1998_1997111609•X12 分钟前
k:file/~*…/code/*iOS/an/app-/log in/ext./-system.API/-(NFV)=sdk.
数据库·网络协议·百度·微信·ssh
其实防守也摸鱼13 分钟前
网络安全与数据库运维核心知识点总结(附习题)
运维·网络·数据库·笔记·安全·web安全
2401_8371638913 分钟前
PHP怎么写API接口_RESTful API基础写法介绍【介绍】
jvm·数据库·python
qq_4135020213 分钟前
PHP跨平台部署AI应用_Docker容器化方案【教程】
jvm·数据库·python
倔强的石头10613 分钟前
kingbase备份与恢复实战(五)—— PITR时间点恢复:恢复到误操作前一分钟(归档WAL)
数据库·备份与恢复
2401_8323655214 分钟前
HTML怎么区分正文与广告_HTML aside与广告位语义【技巧】
jvm·数据库·python
jnrjian14 分钟前
SQL太长导致 library cache lock 长期持有 造成系统hang住
数据库·sql