SQL NOTE--Backup

1.一个数据库可以有多个物理日志文件(LDF),但逻辑上只有一个日志文件,使用多个物理日志文件不会增减数据库性能,因为日志操作不能并行。
2.逻辑上一个日志文件可以分成多个虚拟日志文件VLF(virtual log file),VLF是日志操作的最小单位,使得日志管理更高效和空间利用率更高;VLF是数据库收缩(shrink)的最小单位。
3.日志文件大小和VLF数量有直接关系,1-64M时有4个VLF,64M-1G时会有8个VLF,1G+是会有16个VLF。
4.可以使用DBCC LOGINFO来查看VLF的情况
5.VLF存在四种状态
--1.Active,there must be one or more active LSN on VLF
--2.Recoverable, There is no actived LSN on VLD,and lsn have not been truncated
--3.Reusable,There is no actived LSN on VLD,and lsn have been truncated
--4.Unusable,There is no actived LSN on VLD,and lsn have not been used
6.产生日志的操作:
--事务开始和结束
--数据修改
--数据页和索引页的分配和释放
--元数据的修改,如表和索引的创建删除修改

7.LSN(Log Sequentce Number)是数据库按照事务的先后顺序为日志分配的依次递增的编号
8.WAL(write ahead logging),在数据写入DISK之前先写入操作日志,以保证事务的原子性和持久性
9.事务日志过程:
--1.在SQL Server缓冲区日志中写入事务开始记录
--2.在SQL Server缓冲区日志中写入事务修改信息
--3.在SQL Server缓冲区将要修改的数据写入数据页
--4.在SQL Server缓冲区日志中写入事务提交记录
--5.将缓冲区日志写入DISK
--6.发送确认信息(ACL)到客户端

10.在数据库崩溃后恢复时,依据最后一次检查点后日志来决定哪些数据需要回滚(ROLLBACK)和哪些数据需要重做(REDO),从而保证了数据库持久性
11.LAZY WRITER and Check point存在本质区别,虽然两者都将内存中的胀页写入Disk,修改胀页标志,
但是目标不一样,Lazy Writer目的在于对缓冲区进行管理,释放过期数据页,
而Check point目标是减少数据库崩溃后恢复时间,Check point会修改VLF的状态,设置最小恢复检查日志号

11.在缓冲区出现内存瓶颈时,lazy writer执行频率会提高。数据库会按照默认频率执行check point操作,可以使用CHECKPINT N来修改执行频率
12.数据恢复模式分为:FULL,BULK LOGGED,SIMPLE三种:
--在simple模式下,日志仅用于保证事务回滚和恢复,在事务完成后截断日志,不会保存事务日志;
--在Full模式下,记录所有事务日志用以恢复数据库,只有日志备份操作才会截断日志
--在Bulk logged模式下,记录所有普通事务日志和简化大数据操作产生的日志

13.对数据库进行Full和Buld logged事务恢复模型切换不会对事务日志链造成破坏。

14.完整备份
--1.完整备份是将数据库中所有数据区进行复制,
--2.完整备份备份数据和少量在数据备份期间产生的日志文件(用于数据同步)
--3.备份期间所产生的数据修改也保存到备份中,备份还原点是备份结束时间点
--4.完整备份会修改数据库相关信息如最后一次完整备份信息,用于差异备份的bitmap等
15.差异备份
差异备份只备份自最后一次完整备份后修改的数据区,差异备份的最小单位是区,数据库使用Bitmap来标明自最后一次完整备份后那些数据区发生了变化。

16.日志备份
--1.日志备份仅备份最后一次完整备份或最后一次日志备份后的日志
--2.日志备份只能在完整恢复模式和大日志恢复模式下
--3.日志备份时可选择是否截断日志(WIT NO_TRUNCATE)

 

posted on 2012-10-20 12:40  笑东风  阅读(303)  评论(0编辑  收藏  举报

导航