做搜狗手机网站优化百度推广登录
web/
2025/9/29 10:44:41/
文章来源:
做搜狗手机网站优化,百度推广登录,凡科建站官网 网络服务,代做效果图网站好一、 GBase 8s数据库共有以下 4 种日志模式#xff1a;无日志模式、缓冲日志模式、无缓冲日志模式、ANSI 模式。详细介绍如下#xff1a;
1、无日志模式#xff08;Non logging#xff09;#xff1a;
采用无日志模式时#xff0c;所有 DML 操作都不会被记录到日志中无日志模式、缓冲日志模式、无缓冲日志模式、ANSI 模式。详细介绍如下
1、无日志模式Non logging
采用无日志模式时所有 DML 操作都不会被记录到日志中只记录 DDL 操作且这些操作影响的行并不会被写入日志只记录操作本身以及返回的代码。该模式的优点是极大地减少了磁盘 I/O拥有很高的吞吐率但在该模式下数据库不支持事务控制当数据库失败时也无法进行恢复。
创建 无日志模式 数据库的语句没有with log语句
CREATE DATABASE nologdb;
此种数据库不允许事务相关的使用语句以下语句无效
BEGIN WORK; COMMIT WORK; ROLLBACK WORK;
RELEASE SAVEPOINT; ROLLBACK TO SAVEPOINT;
SET IMPLICIT TRANSACTION; SET LOG; SET ISOLATION
部分事务语句实际操作如下 BEGIN WORK; 256: Transaction not available.
Error in line 1
Near character position 9
2、缓冲日志模式buffered logging
采用缓冲日志模式时所有操作在发生时被写到缓冲区中当缓冲区被写满之后或者发生检查点操作才会回写到磁盘。该模式的优点是可以大大减少磁盘的 I/O从而提高数据库的性能。但是当系统发生问题需要进行恢复时缓冲区内的数据将丢失。这些数据是无法恢复的。
创建 缓冲日志模式 数据库的语句
CREATE DATABASE bufferdb WITH BUFFERED LOG;
3、无缓冲日志模式Unbuffered logging
当采用无缓冲日志模式时所有操作在发生时被写到缓冲区中当事务被提交时立刻回写到磁盘。该模式的优点是当系统发生问题时可以保证数据丢失最少数据完整性和一致性可以在事务级得到保证。但是增加了磁盘的I/O使得数据库的性能受到一定的影响。
创建 无缓冲日志模式 数据库的语句
CREATE DATABASE nobufferdb WITH LOG;
4、ANSI模式
创建的数据库就是兼容ANSI的数据库且符合 SQL 语言的 ANSI/ISO 标准。ANSI模式和无缓冲日志模式基本相同此外还强制要求与 ANSI 模式的事务处理方式一致。
创建 ANSI模式 数据库的语句
CREATE DATABASE ansidb WITH LOG MODE ANSI 二、 检查数据库日志模式方法
通过sysmaster库下的sysdatabases表检查相关字段例如检查无日志模式数据库nologdb的日志模式 相关字段解释 三、 更改日志模式的影响
数据库服务器在更改日志记录状态时对数据库加上互斥锁定以防止其他用户访问该数据库而当更改完成时释放该锁定。
如果在日志记录方式更改期间发生故障那么在复原数据库服务器数据后请检查 sysmaster 数据库的 sysdatabases 表内标志中的日志记录方式。
在选择了已缓冲或未缓冲日志记录之后应用程序就可以使用 SQL 语句 SET LOG 从一种日志记录方式更改为另一种日志记录方式。此更改在会话期间会一直持续。
如果向数据库添加日志记录那么直至数据库的所有存储空间的下一次 0 级备份才完成该更改。 四、GBase 8s数据库改变日志模式的方法共有以下 4 种
1、ontape命令
2、ondblog命令
3、SET LOG 语句
4、Admin API SQL methodExecute function admin(alter logmode, dbname,n/u/b/a);
1、ontape命令
可以使用 ontape 的–A、–B、–N 和–U 选项来修改数据库日志模式。
$ontape -s -B修改为缓冲日志模式。
$ontape -s -U修改为无缓冲日志模式。
$ontape -s -N修改为无日志模式。
$ontape -s -A修改为 ansi logging 模式从这个模式无法切换到其他模式因此一般不使用该项。
使用注意事项
在将数据库从不记录日志切换为记录日志时-A、-B、-U 选项必须同-s选项一起使用并需要备份。 如果将日志方式在缓冲日志模式和无缓冲日志模式之间切换则不需要-s选项 在切换数据库的日志方式时服务器会对数据库加一个独占锁因此此时用户不能使用这个数据库否则将会报告错误。可以通过 onstat -g sql 查询哪些用户正在使用数据库并通过 onmode -z 命令杀死相关线程。 ontape 还可以通过一个命令同时修改多个数据库的日志方式。例如将bufferdb数据库从缓冲日志模式切换为无日志模式将nologdb和nologdb2数据库从无日志模式修改为缓冲日志模式。 ANSI日志模式的数据库无法进行切换会报错。 2、ondblog命令
可以通过 ondblog 命令来修改一个或多个数据库的日志模式。此外需要注意的是在向数据库添加日志时必须在修改生效之前创建一个 level-0 备份。
将数据库设置为无缓冲日志、缓冲日志
ondblog unbuf
ondblog buf 将数据库设置为不记录日志
ondblog nolog 将 dbfile 中记录的所有数据库设置为不记录日志
ondblog nolog -f dbfile 将数据库设置为 ANSI 兼容模式
onbdlog ansi 3、SET LOG 语句
使用 SET LOG 语句来将您的数据库日志记录模式从缓冲的事务日志记录更改为未缓冲的事务日志记录反之亦然。
语法 SET LOG语句仅定义当前会话的模式。不会更改ondblog设置的缺省模式。 符合 ANSI 的数据库不可使用缓冲的日志记录下例中ansidb是ANSI数据库。 在Non logging数据库中使用SET LOG语句无效下例中nologdb是Non logging数据库。 4、Admin API SQL method
sysadmin 数据库中有一个admin函数可以更改数据库模式可使用如下执行语句
Execute function admin(alter logmode, dbname,n/u/b/a); 在向数据库添加日志时必须在修改生效之前创建一个 level-0 备份也就是说通过admin将无日志模式修改为其他日志模式后要使用ontape语句进行备份后才会生效。 其他模式之间的转换 五、 检查数据库日志模式方法
通过sysmaster库下的sysdatabases表检查相关字段。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83850.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!