数据库备份与还原

备份数据库有很多种方式,我们选择的方案是完整备份+日志备份,等将来数据库大了以后,将变为完整备份+差异备份+日志备份,如图:

每天晚上进行数据库的完整备份,每30分钟进行日志备份,每次日志备份后系统会自动截断日志文件,这也能有效保证日志文件不会无限的增大。

--完整备份数据库
declare @toPath nvarchar(100)
set @toPath = 'D:\bak\Test_' + REPLACE(convert(nvarchar,GETDATE(),20),':','.') + '.bak'
backup database Test to disk = @toPath  with COMPRESSION,password = '123'

--备份事务日志
declare @toLogPath nvarchar(100)
set @toLogPath = 'D:\bak\Test_log_' + REPLACE(convert(nvarchar,GETDATE(),20),':','.') + '.bak'
BACKUP LOG Test To disk= @toLogPath

--备份尾事务日志(在数据库出现故障时,备份最后的日志)
BACKUP LOG Test To disk= @toLogPath with norecovery

 

--还原数据库
RESTORE DATABASE Test
FROM DISK = 'D:\bak\Test_2015-09-13 07.15.53.bak' 
with norecovery,password = '123',
MOVE N'OA' TO N'D:\db\Test.mdf',  
MOVE N'OA_log' TO N'D:\db\Test.ldf'

--还原事务日志(中间日志)
RESTORE log Test
FROM DISK = 'D:\bak\Test_log2015-09-13 07.16.47.bak' with norecovery

--还原事务日志(最后日志)
RESTORE log Test  
FROM DISK = 'D:\bak\Test_log2015-09-13 07.17.00.bak' WITH recovery

--用stopat恢复尾日志备份
RESTORE log [Test]  
FROM DISK = 'D:\bak\Test_2015-07-19 19.07.40.bak' WITH FILE = 3,stopat = '',recovery

--根据备份文件获取数据库逻辑文件名
RESTORE FILELISTONLY FROM DISK = 'D:\bak\Test_2015-09-13 07.15.53.bak' with password = '123'

 

转载于:https://www.cnblogs.com/qy1141/p/4806844.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值