与宋沄剑关于备份备份的讨论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

 

---------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
 
 

 

posted @ 2013-12-05 14:21  桦仔  阅读(346)  评论(0编辑  收藏  举报