数据库服务器将“逻辑日志记录”存储在“逻辑日志”中。逻辑日志由逻辑日志文件组成,数据库服务器在磁盘上管理它们,直至这些文件已安全地转为脱机(备份)。数据库服务器管理员将保留已备份的逻辑日志文件,直至在数据恢复中需要用到它们,或直至管理员决定不再需要恢复这些记录。
一、数据库日志状态
1、未缓冲的事务日志记录
2、已缓冲的事务日志记录
3、符合 ANSI 的事务日志记录
4、不记录
二、查看数据库日志状态
select is_logging,is_buff_log,is_ansi from sysmaster:sysdatabases where name='数据库名';
三、
“逻辑日志记录”本身长度可变。所有“逻辑日志记录”在数据库服务器将其写入磁盘上的“逻辑日志”之前,均经过“共享内存”中的“逻辑日志缓冲区”。即使对于“未缓冲的事务日志记录”形式的数据库。所以可见“逻辑日志记录”的生存周期至少经过“共享内存”中的“逻辑日志缓冲区”以及磁盘上的“逻辑日志”两个阶段。
1、未缓冲的事务日志记录
一旦有事务提交,则数据库服务器就立即清仓记录。由于数据库服务器清仓缓冲区时,系统会把已使用的页写入磁盘(未使用的页,当然不会被写入磁盘)。而已使用的页包含一些仅部分已满的页,所这样就浪费了一些空间,就导致了磁盘上的逻辑日志文件会更快地填满。
2、已缓冲的事务日志记录
事务日志记录尽可能久地被保留在逻辑日志缓冲区中。直至发生以下情况之一,这些事务日志记录才会从共享内存中的逻辑日志缓冲区刷新到磁盘上的逻辑日志:
a.缓冲区已满。
b.具有未缓冲日志记录的数据库上的提交清仓了缓冲区。
c.出现检查点。
d.连接关闭。
从“b.具有未缓冲日志记录的数据库上的提交清仓了缓冲区”,可得知数据库服务器上的所有数据库使用相同的逻辑日志和相同的逻辑日志缓冲区(可见P11-6或http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.admin.doc/admin453.htm)。这也会遇到一个问题,如果一台数据库服务器上的两个数据库分别采用“未缓冲的事务日志记录”和“已缓冲的事务日志记录”方式,那么数据库服务器将“逻辑日志记录”写入磁盘上的“逻辑日志”的频繁也会很高。
3、符合 ANSI 的事务日志记录
符合 ANSI 的数据库对事务处理强制执行 ANSI 规则,始终使用未缓冲的事务日志记录。
4、不记录
数据库处于此状态下将不记录事务,但会记录其它操作。
四、默认状态
如果 CREATE DATABASE 语句不指定日志记录状态,则创建无日志记录的数据库。
如果 CREATE DATABASE 语句指定了日志记录状态但没有为其指定缓冲方式,则缺省为未缓冲的日志记录。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22565551/viewspace-1027946/ ,如需转载,请注明出处,否则将追究法律责任。