误区 #30:有关备份的30个误区 全是错的 在开始有关备份的误区之前,如果你对备份的基础没有了解,请看之前我在TechNet Magazine的文章:Understanding SQL Server Backups。
30-01)备份操作会导致阻塞 不,备份不会导致对用户对象加锁,虽然备份对IO系统的负担导致看起来阻塞了,但实际上不会。唯一的特例是当备份包含到那些最小日志操作涉及到的数据区需要被加锁时,这个操作会阻塞CheckPoint,但DML操作永远不会受到备份操作的阻塞。
30-02)由完整恢复模式切换到大容量事务日志恢复模式再切换回来会导致日志链断裂 不,这两种模式互相切换不会导致日志链断裂。
30-03)只有完整备份才能重新开始被断裂的日志链 除了完整备份模式可以重新日志链之外,差异备份也可以重新开始日志链-总而言之,日志断裂那部分只要被差异备份所包含,就可以重新开始日志链。详情请看我之前的一篇博文:SQL Server误区30日谈-Day20-破坏日志备份链之后,需要一个完整备份来重新开始日志链。
30-04)在完整或是差异备份时,不允许进行日志备份 错误,在SQL Server 2005之后,完整或是差异备份的同时可以进行日志备份,详情请看:Search Engine Q&A #16: Concurrent log and full backups。
30-05)完整或差异备份会清除日志 不,因为日志备份包含了自上次日志备份以来所有的日志,这点无可改变,即使这期间的日志被完整或是差异备份所备份。我在Twitter上曾经有一个有名的文章阐述了这点:Misconceptions around the log and log backups: how to convince yourself。总之,在完整或大容量事务日志恢复模式下,只有备份日志才会清除日志。
30-06)如果使用大容量事务日志恢复模式中含有了那些最小记录日志的操作,则下一次日志备份的日志会减少 不,“最小记录日志”之所以这么叫是因为只有涉及到相关的页分配才会被记录到日志。日志备份中必须包含使得这类操作可以回滚的部分,也就是所有日志以及“最小记录日志”操作所涉及的相关区。这使得大容量事务日志模式下日志需要备份的内容和完整恢复模式下日志需要备份的内容大小基本一致。
30-07)完整或差异备份中所包含的日志仅仅是这个操作进行时生成的日志 错误,完整或差异备份需要日志来将数据库还原到当完整或差异备份结束时的事务一致性状态。 下面两篇博文对此有更详细的解释:
30-08)备份操作会检查页的校验和 错误,只有在备份时指定WITH CHECKSUM选项时才会检查校验和,这也是备份应该指定的选项。
30-09)备份通过缓冲区中读取数据 不,备份子系统会对数据文件单独开一个通道以避免将所有涉及到的内容读到内存后再存到存储设备,因为如果这样的话备份时性能会严重下降(因为这涉及到虚拟内存置换回磁盘)。如果备份时你指定了WITH CHECKSUM,则会涉及到少量内存使用。
30-10)备份会进行一致性检查(也就是和DBCC CHECKDB功能一样) 不会,这没什么好说的。
30-11)如果备份成功,那么还原也能成功 错误,希望你不要形成这样的思维定势。你必须定期检查备份以确保在灾难发生时,可以正确的进行还原。详情请看:Importance of validating backups。
30-12)即Rgr'rjV6[b3"C&7>Cgncj*&7Brr,輽 1=LAU0MEU}хх}ЁDU}хЁr&7R6>?jRgbWjRcr,輽 1=LAU0
EAеAMххх}ЁEAеAххf[cr'6kZ輽х}ЁM2^V6ZR7ǖN7cr'>CK"Gzsr3VB;V6R3"g66r'Rc/cЁ7b>GR^r*{Rgr'V66ǚ^&7b7r*{?QRǖbzs*3Vjs[V66ǒ4(Ёr'V64(gV6brj 5V62B'>+{crNV6 5MV62BM%Oj2B*:> 5V62BZV6j>R"V6"g/7{{^o.4(Ё[V4(4(2skwtjb"K3b"K*rJ3*rfC"vk^^7vk^^r/vZ4(4(輽 1=LAU0%ех}ЁЁ4(輽 1=LAU0A久х}Ёk[VW;>GR^^3ro7b |
|