日期:2014-05-16  浏览次数:20421 次

Sql 根据.bak恢复数据库
/*------------------------------

--  Author : htl258(Tony)

--  Date   : 2010-04-15 22:07:01

--  Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 

    Jul  9 2008 14:43:34 

    Copyright (c) 1988-2008 Microsoft Corporation

    Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)

--  Subject: SQL备份还原实例(还原时备份文件路径与备份时不同可用此方法)
------------------------------*/

 

--备份
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 修复数据库。
--注意:由于原始的备份集中有页面错误,还原后会有部分数据丢失

SQL数据库不同备份名称存放不同路径还原方法

引自:http://blog.csdn.net/htl258/article/details/5490832?