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

2024-10-09 21:27:14 浏览数 (5)

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

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

代码语言:javascript复制
> 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键或者点击运行按钮即可。

代码语言:javascript复制
-- 创建数据库
CREATE DATABASE [WEIYIGEEK_2023]
ON
PRIMARY
(
  NAME = N'WEIYIGEEK_2023',
  FILENAME = N'D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAWEIYIGEEK_2023.mdf',
  SIZE = 3072KB,
  MAXSIZE = UNLIMITED,
  FILEGROWTH = 1MB
)
LOG ON
(
  NAME = N'WEIYIGEEK_2023_log',
  FILENAME = N'D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAWEIYIGEEK_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 FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBackupWEIYIGEEK_2023-Backup.bak'
WITH
  NAME = N'WEIYIGEEK_2023-Backup',
  NOFORMAT, INIT, SKIP,
  STATS = 5

-- 还原操作
RESTORE DATABASE [WEIYIGEEK_2023] 
FROM
  DISK = N'D:BACKUPWEIYIGEEK_2023-Backup.bak'
WITH
  FILE = 1,
  MOVE N'TEST' TO 'D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAWEIYIGEEK_2023.mdf', 
  MOVE N'TEST_log' TO 'D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAWEIYIGEEK_2023.ldf', 

-- 还原操作(覆盖现有数据库)
RESTORE DATABASE [WEIYIGEEK_2023] 
FROM
  DISK = N'D:BACKUPWEIYIGEEK_2023-Backup.bak'
WITH
  REPLACE,
  MOVE N'TEST' TO 'D:BACKUPDATAWEIYIGEEK_2023.mdf', 
  MOVE N'TEST_log' TO 'D:BACKUPDATAWEIYIGEEK_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

0 人点赞