GBASE南大通用-GBase 8s数据库日志模式及切换

一、  GBase 8s数据库共有以下 4 种日志模式:无日志模式、缓冲日志模式、无缓冲日志模式、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 method:Execute 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/news/586268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP地理位置定位技术基本原理

IP地理位置定位技术的基本原理是基于IP地址的特性。每个IP地址在网络中都有一个与之对应的地理位置信息,这是通过IP地址数据库来确定的。这个数据库由ISP(Internet Service Provider)或其它一些机构维护,其中包含了每个IP地址的地…

链表精选题集

目录 1 链表翻转 题目链接: 解题: 试错版: 2 找中间节点 题目链接: 题解: 3 找倒数第k个节点 题目链接: 题解: 4 将两个升序链表合并为一个升序链表 题目链接: 题解: …

tmux 包的介绍及使用

tmux 本博文参照 https://blog.csdn.net/qq_43912191/article/details/123214679 对 tmux 进行总结和归纳。 tmux(Terminal Multiplexer)是一款命令行下的终端复用软件,用于在一个终端窗口中运行多个终端会话,并且可以在各会话之…

第六课:冷战和消费主义、个人计算机革命、图形用户界面(GUI)及3D图形

第六课:冷战和消费主义、个人计算机革命、图形用户界面(GUI)及3D图形 第二十四章:冷战和消费主义本课概括:政府和消费者推动了计算机的发展 第二十五章:个人计算机革命本集概括:继续讲计算机发展…

AJAX: 整理2:学习原生的AJAX,这边借助express框架

1. npm install express 终端直接安装 2. 测试案例:Hello World! 新建一个express.js的文件,写入下方的内容 // 1. 引入express const express require(express)// 2. 创建服务器 const app express()// 3.创建路由规则 // request 是对请…

mxxWechatBot微信机器人V2版本文档说明

大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 先看这里 一、前言二、mxxWechatBot流程图三、怎么使用? 一、前言 经过不断地探索与研究,mxxWechatBot正式上线,届时全面开放使用。 mxxWechatBot&am…

【动态规划精选题目】3、简单多状态模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解简单多状态模型中的9道经典题,会在讲解题目同时给出AC代码 目录 1、按摩师 2、力扣198:打家劫舍1 3、打家劫舍II 4、删除并获得点数 5、 粉刷房子 6、力扣309:买卖股票的最佳时机含冷冻期 7、 买…

【数据库系统概论】第7章-数据库设计

文章目录 7.1 数据库设计概述7.2 需求分析7.2.1 需求分析的任务7.2.2 需求分析的难点7.2.2 需求分析的方法7.2.3 数据字典 7.3 概念结构设计7.3.1 概念模型7.3.2 E-R模型7.3.3 概念结构设计 7.4 逻辑结构设计7.4.1 E-R图向关系模型的转换7.4.2 数据模型的优化7.4.3 设计用户子模…

【教程】标注工具Labelimg的安装与使用

图片标注主要是为了建立自己的数据集,便于进行更深度的学习训练。本篇文章将对一款十分好用的图片标注工具labelimg进行介绍,重点介绍其安装以及使用的过程。 - 什么是labelimg labelimg 是一个可视化的图像标定工具。它是用Python编写的,并…

HDFS客户端UnknownHostException事故解析

文章目录 前言事故现场问题分析是否是整个域名解析服务当时都出问题了是否是出问题的pods本身的域名解析有问题 异常发生的全部过程域名的解析是什么时候发生的,怎么发生的域名解析的详细流程 重试发生在什么地方为什么重试会无效 Bugfix代码详解关于StandardHostRe…

特殊权限(suid sticky acl mask)

1.suid 1. 普通用户可不可以修改密码? 答:是可以的,可以修改自己的密码 2. /etc/shadow 文件的作用是什么? 答:存储用户密码的文件 3. 普通用户是否可以修改/etc/shadow 文件? 答:不可以&…

STM32+Codesys工业软件PLC解决方案

工业控制系统在现代制造和自动化领域扮演着关键角色, 基于IEC 61131-3 标准的控制器编程开发软件平台CODESYS,适用于多种行业的控制系统的开发,使用户方便快捷地对自动化工程进行编程和配置,完成项目开发、软件测试和应用调试。 本次STM32联合合作伙伴C…

服务器运行状况监控工具

服务器运行状况监视提供了每个服务器状态和性能的广泛概述,通过监控服务器指标,如 CPU 使用率、内存消耗、I/O、磁盘使用率、进程等,服务器运行状况监控可以避免服务器停机。 服务器性能监控指标 服务器是网络中最重要的组件之一&#xff0…

计算机网络复习6

应用层 文章目录 应用层网络应用模型域名系统DNS文件传输协议FTP电子邮件万维网 网络应用模型 客户/服务器模型 客户/服务器(Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求…

Java集合/泛型篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Collection包结构,与Collections的区别四、泛型常用特点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…

Spring系列学习四、Spring数据访问

Spring数据访问 一、Spring中的JDBC模板介绍1、新建SpringBoot应用2、引入依赖:3、配置数据库连接,注入dbcTemplate对象,执行查询:4,测试验证: 二、整合MyBatis Plus1,在你的项目中添加MyBatis …

从零开始:使用 BIND 构建和管理您的 DNS 服务器

1 前言 在这篇文章中,我将详细介绍如何使用 BIND(Berkeley Internet Name Domain)软件包中的 named 程序来配置和管理一个基本的 DNS 服务器。 从安装 BIND 开始,到设置 DNS 区域文件,再到运行和测试您的服务器&#x…

Oracle 19c OCP 1z0 082考场真题解析第17题

考试科目:1Z0-082 考试题量:90 通过分数:60% 考试时间:150min 本文为云贝教育郭一军guoyJoe原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。 17. Which three …

AQS之ReentrantReadWriteLock

AQS之ReentrantReadWriteLock 一. 归纳总结 ReentrantReadWriteLock适合读多写少的场景。是可重入的读写锁实现类。其中, 写锁是独占的,读锁是共享的。 支持锁降级(持有写锁、获取读锁,最后释放写锁的过程) 锁降级可以帮助我们…

oracle-存储结构

文件包括 控制文件.ctl、数据文件.dbf、日志文件.log这三类放在存储上。 参数文件:空间的划分,进程的选用(.ora) oracle启动的时候需要读一下,数据库启动后,参数文件并不关闭,但即使文件丢了&a…