第13章 逻辑日志

第13章 逻辑日志[@more@]

一、什么是逻辑日志
在《第11章 日志记录》中已经简单谈过逻辑日志记录,在这一篇将详细说明逻辑日志。
为了保留自上次存储空间备份以来的事务和数据库服务器更改的历史记录,数据库服务器生成日志记录。数据库服务器将日志记录存储在逻辑日志中,这是由三个或更多逻辑日志文件组成的循环文件。将该日志称为逻辑的是因为日志记录代表数据库服务器的逻辑操作(而不是物理操作)。存储空间备份加上逻辑日志备份的组合在任何时候均包含数据库服务器数据的完整副本。

数据库服务器将“逻辑日志记录”存储在“逻辑日志”中。逻辑日志由逻辑日志文件组成,数据库服务器在磁盘上管理它们,直至这些文件已安全地转为脱机(备份)。所有“逻辑日志记录”在数据库服务器将其写入磁盘上的“逻辑日志”之前,均经过“共享内存”中的“逻辑日志缓冲区”。即使对于“未缓冲的事务日志记录”形式的数据库。所以可见“逻辑日志记录”的生存周期至少经过“共享内存”中的“逻辑日志缓冲区”以及磁盘上的“逻辑日志”两个阶段。

二、逻辑日志文件的位置
从上可知“逻辑日志”是由3个以上的“逻辑日志文件”组成的循环文件。在数据库服务器初始化磁盘空间时,逻辑日志文件和物理日志放在根数据库空间中,但可将逻辑日志文件从根数据库空间移出至未被活动表或物理日志共享的 dbspace 中(建议为逻辑日志文件建立单独的 dbspace )。当把逻辑日志文件备份到介质并释放逻辑日志文件后,逻辑日志文件从数据库空间转移到物理介质上。

三、
使用 onstat -l 可以看到 number(逻辑日志文件号)、flags(逻辑日志文件的状态标志)、uniqid(逻辑日志文件的唯一标识号)、size(逻辑日志文件大小)、used(逻辑日志文件的已经使用的大小)以及%used(逻辑日志文件使用的百分比)
3.1 flags
flags 第一位置均具有以下状态标志之一:已添加(A)、已删除(D)、可用(F)或已使用(U)。可能的日志状态组合:

状态标志 逻辑日志文件的状态
A------ 日志文件已添加且可用,但尚未使用。
D------ 如果您删除具有状态 U-B 的日志文件,则它会标记为已删除。该日志文件被删除,其空间得以释放,可在您为所有存储空间进行 0 级备份时重新使用。
F------ 日志文件是空闲的且可供使用。 逻辑日志文件在备份后得以释放,逻辑日志文件中的所有事务均关闭,存储在该文件中的最旧更新会清仓到磁盘。
U 日志文件已使用但尚未备份。
U-B---- 日志文件已备份但仍是恢复所需。(当恢复不再需要该日志文件时就释放它。)
U-B---L 日志已备份但仍是恢复所需。包含最近检查点记录。
U---C 数据库服务器当前正在填充日志文件。
U---C-L 当前日志文件包含最近检查点记录。

3.2 number
每个逻辑日志文件所占分配的实际磁盘空间的标识号称之为“逻辑日志文件号:number”,所以“逻辑日志文件号”的固定不变的。例如:如果配置 6 个逻辑日志文件,则这些文件具有从 1 到 6 的日志号。逻辑日志号可以不按顺序。在备份并释放逻辑日志文件时,数据库服务器将磁盘空间重新用于逻辑日志文件。

3.3 uniqid
每个逻辑日志文件(不管是否备份到介质)都有唯一的标识号,称之为“唯一标识号:unique”。初始化数据库服务器磁盘空间后所填充的第一个逻辑日志文件的uniqid为 1 。在当前逻辑日志文件已满时,数据库服务器按照逻辑日志文件的顺序切换到下一个逻辑日志文件并为新日志文件将唯一标识号增加 1。因此 unique 会一直增加,但新添加的或标记为删除的日志文件的唯一标识号为 0,在第一次使用该逻辑日志文件时,它的 unique 为 0,但下一次再使用这个逻辑日志文件时就上最大的 unique + 1 了。

因为逻辑日志文件的使用是严格按照逻辑日志文件的顺序进行的,如果数据库服务器尝试切换到下一个逻辑日志文件但发现顺次的下一个日志文件仍在使用中,则数据库服务器立即暂挂所有处理。即使其它逻辑日志文件是可用的,数据库服务器也无法跳过使用中的文件而写入非顺次的可用文件。处理将停止,以保护逻辑日志文件中的数据。
所以,当
3.3.1 文件包含尚未清仓到磁盘的最近检查点或最旧更新。
则发出 onmode -c 命令以执行完全检查点并释放逻辑日志文件。

3.3.2 文件包含打开的事务。
当下一个逻辑日志文件包含打开的事务,数据库服务器在当前日志文件后自动分配日志文件。这种操作称为“动态日志分配”(见http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.admin.doc/admin489.htm或P13-5)。

3.3.3 文件未备份。
如果逻辑日志文件未备份,则当您使用 ON–Bar 或 ontape 来备份逻辑日志文件时,处理会恢复进行。

3.4 size
逻辑日志文件最小为 200KB,最大为 1048576 页。如果设置了连续日志备份,则逻辑日志文件在填满时会自动备份。在并发较的系统中,应该使用较大的日志文件。
逻辑日志文件文件填满时,必须对其备份。

3.5 逻辑日志文件的个数
介于3到32767之间。


四、数据库空间日志记录过程:

数据库服务器对涉及数据库空间中所存储数据的操作使用以下日志记录过程:

1.将数据页从磁盘读到共享内存页缓冲区
2.将未更改的页复制到物理日志缓冲区(如有需要)
3.将新数据写入页缓冲区并创建该事务的逻辑日志记录(如有需要)
4.将物理日志缓冲区清仓到磁盘上的物理日志
5.将逻辑日志缓冲区清仓到磁盘上的逻辑日志文件
6.清仓页缓冲区并将其写回到磁盘上

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22565551/viewspace-1027948/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22565551/viewspace-1027948/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值