设为首页 加入收藏

TOP

数据库的备份与还原
2015-11-21 02:03:37 来源: 作者: 【 】 浏览:0
Tags:数据库 备份 还原
阅读目录
?
备份
还原
小技巧
这几天在做 数据库的迁移,所以就会涉及到数据库的备份与还原,即从当前数据库中备份出数据库文件,然后将备份文件copy到新服务器并还原。
?
?
备份
?
备份有两种操作方式,一是通过UI操作,另一种是通过sql脚本。
?
1,通过UI操作方式
?
数据库上右键,选择Tasks\Back up...
?
?
通过UI备份的过程中,碰到备份出来的文件很大,原因是没有压缩,所以要注意改一下这里的配置。
?
?
2,通过sql脚本
?
BACKUP DATABASE HotelCacheDB TO DISK=N'd:\n.lu\dev.db.backup\HotelCacheDB_backup_2015_09_10_011507_1111111.bak' WITH COMPRESSION; --注意设置 WITH COMPRESSION压缩
?
GO
?
还原
?
同样,还原也有两种方式,通过UI操作和通过sql脚本。
?
1,通过UI操作
?
?
...
?
2,通过sql脚本
?
?
--1,判断原数据库是否存在,如果存在,先删除?
?
IF EXISTS( SELECT 1 FROM sys.databases 

WHERE name= N'HotelDB') 

BEGIN 

 ALTER DATABASE HotelDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;--防止因数据库正在使用导致drop失败 

 DROP DATABASE HotelDB; 

END 

?

--2,还原数据库?
?
RESTORE DATABASE HotelDB FROM ?DISK = N'D:\dev.db.backup\HotelDB_backup_2015_09_10_011507_0000000.bak' WITH REPLACE;?
?
GO
?
在第2步还原数据库的时候,有可能碰到因路径太长导致报错,一般错误信息如下。
?
Msg 5133, Level 16, State 1, Line 1
?
Directory lookup for the file "D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB.mdf" failed with the operating system error 3(The system cannot find the path specified.).
?
Msg 3156, Level 16, State 3, Line 1
?
File 'HotelCacheDB' cannot be restored to 'D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB.mdf'. Use WITH MOVE to identify a valid location for the file.
?
Msg 5133, Level 16, State 1, Line 1
?
Directory lookup for the file "D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB_log.ldf" failed with the operating system error 3(The system cannot find the path specified.).
?
Msg 3156, Level 16, State 3, Line 1
?
File 'HotelCacheDB_log' cannot be restored to 'D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB_log.ldf'. Use WITH MOVE to identify a valid location for the file.
?
?
有两种解决方案,一是修改sql脚本,添加MOVE...TO选项
?
RESTORE DATABASE HotelDB FROM ?DISK = N'D:\dev.db.backup\HotelDB_backup_2015_09_10_011507_0000000.bak' WITH ?FILE = 1, ?MOVE N'HotelDB' TO N'D:\Tools\Program Files (x86)\SQL Server 2008 R2\MSSQL10_50.SZVMSJSKF012\MSSQL\DATA\HotelDB.mdf', ?MOVE N'HotelDB_log' TO N'D:\Tools\Program Files (x86)\SQL Server 2008 R2\MSSQL10_50.SZVMSJSKF012\MSSQL\DATA\HotelDB.ldf', ?NOUNLOAD, ?REPLACE, ?STATS = 10;?
?
GO
另一种方案是采用UI操作的方式还原也可以。
?
小技巧
?
可以在UI操作的时候,导出sql脚本,如下图。
导出还原数据库的脚本。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇java批量插入数据到数据库 下一篇数据库维护(Database Maintenanc..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: