与宋沄剑关于备份备份的讨论2013-12-5
与宋沄剑关于备份备份的讨论2013-12-5
桦少 11:25:18
宋,有一个问题请教,备份事务日志并截断事务日志
桦少 11:25:31
问题一:是否需要在计划停机时候做
桦少 11:29:03
问题二,在备份事务日志并截断事务日志收缩前,要不要做一个完备,不知道截断事务日志会不会破坏备份链
桦少 11:29:19
问题三:
桦少 11:30:45
当执行backup log命令时不指定WITH TRUNCATE_ONLY参数,sqlserver也会自动截断事务日志,如果是这样的话
桦少 11:30:45
http://technet.microsoft.com/zh-cn/library/ms186865(SQL.105).aspx
桦少 11:31:41
桦少 11:31:54
刚才看了ssms默认是指定了WITH TRUNCATE_ONLY参数
北京-宋沄剑 11:57:22
为什么要在计划停机做?
只截断,不备份,才会破坏日志链
桦少 11:58:48
你的意思是:备份事务日志并截断事务日志收缩前,不用做一个完备?
桦少 12:00:46
桦少 12:01:06
实际上truncate_only 是不是对应界面里的 截断事务日志
桦少 12:10:23
刚才看了msdn http://technet.microsoft.com/zh-cn/library/ms186865(SQL.105).aspx
桦少 12:11:07
backup log的时候不指定任何参数默认就是截断事务日志的,除非指定NO_TRUNCATE才不截断日志
桦少 12:12:26
如果是这样,忠辉的问题日志暴涨问题,就是一个backup log ,不用指定任何参数,然后shrinkfile 日志就搞定了
桦少 12:12:52
谢谢宋
北京-宋沄剑 12:19:36
我刚被叫走了...
桦少 12:20:11
这麽忙,我刚才的理解请问有没有错?
北京-宋沄剑 12:20:39
这个我觉得你大面上没有完全理解日志的作用
桦少 12:21:12
嗯嗯
北京-宋沄剑 12:21:17
truncate_only已经过时了
北京-宋沄剑 12:21:26
这种事2005的东西,后面取消了
北京-宋沄剑 12:21:44
这个非常危险,不备份日志只截断日志是非常不靠谱的
桦少 12:22:35
我刚才看了你的文章,truncate_only确实取消了
桦少 12:23:09
backup log的时候不指定任何参数默认就是截断事务日志的,除非指定NO_TRUNCATE才不截断日志
桦少 12:23:16
我这句话有没有错呢?
桦少 12:23:24
把不活动的日志截断
北京-宋沄剑 12:23:41
没错
桦少 12:24:57
既然默认就是截断事务日志,那么就不用truncate_only参数了
北京-宋沄剑 12:26:16
truncate_only是只截断,不备份!
桦少 12:27:40
原来sql2005也是一样
桦少 12:27:41
桦少 12:28:07
明白了,truncate_only 只截断,不备份 SQL2005才有,并且要用tsql脚本方式来执行
桦少 12:28:49
BACKUP LOG [DLGPOS] TO DISK='c:\dlgpos_log.bak'
桦少 12:28:57
默认这个语句就已经截断事务日志了
桦少 12:29:06
可以进行收缩日志
北京-宋沄剑 12:29:08
是的
桦少 12:29:26
备份链也不会断裂
桦少 12:29:49
备份链断裂的情况是在SQL2005下添加了truncate_only参数
北京-宋沄剑 12:30:22
活动日志 在简单模式,日志不用了就可以删除
活动日志 在完整模式,日志不用了就留着等待归档,所谓的等待归档就是等待日志备份
桦少 12:31:47
下面这几种操作都有可能引起日志链断裂:
由完整恢复模式或大容量事务日志恢复模式转为简单恢复模式
从数据库镜像进行恢复
备份日志时指定了NO_LOG 或 WITH TRUNCATE_ONLY(还好在SQL Server 2008中这个选项被取消了)
桦少 12:32:05
截断日志就是把这些不活动的日志删除
北京-宋沄剑 12:32:24
或归档
桦少 12:34:16
你说的归档是把不活动的日志放进去bak文件里?
桦少 12:35:41
使用with no_truncate参数
北京-宋沄剑 12:38:35
为啥要用这个参数...
桦少 12:45:20
用这个参数就是把不活动的日志也放到bak文件啊,如果backup log的时候什么参数都不指定,默认就是截断日志只把活动的日志放进去bak
桦少 12:45:59
用这个参数把不活动的日志也放到bak文件
桦少 12:46:45
如果这样的话,微软设计no_truncate这个参数用处不大了
北京-宋沄剑 12:51:36
你理解的很有问题,活动日志是不能备份的,活动日志是为了实现undo/redo recovery
北京-宋沄剑 12:52:40
no_truncate是为了备份出额外的一套日志,比如说为了测试环境,为了初始化热备,但不想影响主机
桦少 12:56:02
确实是我理解错了
桦少 12:57:06
上次我写的备份还原做了什么,你说会带进少量的活动日志,只是少量
桦少 12:58:13
你说的为了测试环境,为了初始化热备,但不想影响主机
桦少 12:58:20
是什么意思
桦少 13:37:52
桦少 13:38:34
北京-宋沄剑 13:39:26
不影响日志链,不影响当前的备份策略。
桦少 13:41:23
为什麽不明白为什麽要指定no_truncate
桦少 13:41:54
就是截断事务日志(不指定no_truncate)也不影响日志链
北京-宋沄剑 13:43:57
这个日志备份不属于当前的备份策略里,为了其他用途
桦少 13:50:06
我记得了
桦少 13:50:11
桦少 13:50:16
http://www.cnblogs.com/lyhabc/articles/3236880.html