更新日期:2024年09月11日
使用 SET LOG 语句来将您的数据库日志记录模式从缓冲的事务日志记录更改为
未缓冲的事务日志记录,反之亦然。
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1061
此语句是对 SQL 的 ANSI/ISO 标准的扩展。与大多数扩展不一样,SET LOG 语
句在符合 ANSI 的数据库中是无效的。
语法
用法
当您创建数据库或向现有的数据库添加日志记录时,您激活事务的日志记录。这
些事务日志可为缓冲的或未缓冲的。
缓冲的日志记录是在内存缓冲区中保持事务直到该缓冲区满为止的一类日志记
录,不管提交或回滚事务的时间。数据库服务器提供此选项来通过减少磁盘写的
次数提高操作速度。
Attention: 以缓冲的日志记录您只可获得微小的效率提升,但会招致一些风
险。在系统故障的时候,数据库服务器不可恢复内存缓冲区中任何已完成的事
务,这些尚未写到磁盘。
下列示例中的 SET LOG 语句将事务日志记录模式更改为缓冲的日志记录:
SET BUFFERED LOG;
未缓冲的日志记录是不在内存缓冲区中保持事务的日志记录。事务一结束,数据
库服务器就将事务写到磁盘。当您正在使用未缓冲的日志记录时,如果发生系统
故障,则您恢复所有已完成的事务,但不包括仍在缓冲区中的那些。事务日志的
缺省条件是未缓冲的日志记录。
下列示例中的 SET LOG 语句将事务日志记录模式更改为未缓冲的日志记录:
SET LOG;
SET LOG 语句仅定义当前会话的模式。数据库管理员以 ondblog 实用程序设置
的缺省模式保持不变。
缓冲的选项不影响从外部表的检索。对于分布式查询,带有日志记录的数据库仅
可从带有日志记录的数据库检索,但与数据库使用缓冲的还是非缓冲的日志记录
无关。
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1062
符合 ANSI 的数据库不可使用缓冲的日志记录。
您不可更改符合 ANSI 的数据库的日志记录模式。如果您以 WITH LOG MODE
ANSI 关键字创建了数据库,则在后期您不可使用 SET LOG 语句将日志记录模
式更改为缓冲的或未缓冲的事务日志记录。