bak文件还原的方法

--备份

BACKUP DATABASE mydb

TO DISK='c:/olddb.bak'

WITH INIT

 

--为了测试,把备份好的文件从C盘移动到D:/tempdb 文件夹

 

--还原

--1.用此语句得到备份文件的逻辑文件名:

RESTORE FILELISTONLY FROM DISK = N'd:/tempdb/olddb.bak' --备份文件存放路径

--看LogicalName,一般会有两个文件,如:

--olddb      --主逻辑文件名称

--olddb_log  --日志逻辑文件名称

 

--2.用以下语句还原数据库

RESTORE DATABASE new_db  

FROM DISK = 'd:/tempdb/olddb.bak'

WITH MOVE 'olddb' TO 'd:/tempdb/newdb.mdf',

MOVE 'olddb_log' TO 'd:/tempdb/newdb_log.ldf' 

 

/*--对以上代码补充说明:

RESTORE DATABASE 还原后数据库的名称 

FROM DISK = '备份文件的路径/备份数据库名称.bak'

WITH MOVE '主逻辑文件名称' TO '还原后的路径/还原后数据文件名称.mdf',

MOVE '日志逻辑文件名称' TO '还原后的路径/还原后日志文件名称_log.ldf' 

*/

 

--如果遇到页面错误乃至不能还原,可用以下误句强制还原,跳过页面错误:

RESTORE DATABASE dbname

FROM DISK='backupset_file'

WITH CONTINUE_AFTER_ERROR

 

--还原后用DBCC CHECKDB 修复数据库。

--注意:由于原始的备份集中有页面错误,还原后会有部分数据丢失。

 

以上是我转自别人的文章,我自己用的2008执行时发生错误,我将路径中的‘/’改成‘\’,顺利执行。

转载于:https://www.cnblogs.com/peterxu/archive/2012/03/08/2384919.html

### 还原SQL Server BAK备份文件方法 #### 方法一:通过T-SQL脚本还原 可以通过执行T-SQL语句来完成BAK文件还原工作。以下是具体的操作过程: 1. 查询备份文件中的数据文件和日志文件逻辑名称: ```sql RESTORE FILELISTONLY FROM DISK = '/root/mssql.bak'; -- 替换为实际 bak 文件路径 GO ``` 该命令会返回备份文件中各个文件逻辑名称以及物理路径[^1]。 2. 执行数据库还原操作: ```sql USE MASTER; GO -- 如果目标数据库已存在,则先删除它 IF EXISTS (SELECT name FROM sys.databases WHERE name = 'YourDatabaseName') BEGIN DROP DATABASE YourDatabaseName; END GO -- 开始还原数据库 RESTORE DATABASE YourDatabaseName FROM DISK = 'C:\path\to\your\backupfile.bak' WITH MOVE 'LogicalDataFileName' TO 'C:\NewPath\DataFile.mdf', MOVE 'LogicalLogFile_Name' TO 'C:\NewPath\LogFile.ldf', STATS = 10, REPLACE; GO ``` 其中 `LogicalDataFileName` 和 `LogicalLogFile_Name` 是从第一步查询得到的结果,需替换为具体的逻辑文件名;`STATS=10` 表示每完成百分之十的任务进度都会打印一条消息[^3]。 #### 方法二:利用SQL Server Management Studio(SSMS)图形界面 除了编写复杂的SQL语句外,还可以借助SSMS提供的直观向导来进行简单快速地恢复流程: 1. 启动SSMS并连接到相应的实例; 2. 右键单击【数据库】节点 -> 【还原数据库...】选项启动向导对话框; 3. 在弹出窗口里设置源为目标位置处放置好的`.bak`文件副本地址; 4. 调整映射关系(如果有需要的话),最后确认提交即可[^2]。 #### 常见注意事项 - **确保有足够的磁盘空间** 来存储新的MDF/LDF文件及其增长后的大小。 - 当前运行环境下的版本号应该等于或者高于创建原始备份时所使用的SQL Server版次[^4]。 - 若遇到权限不足等问题,请联系管理员获取适当授权后再试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值