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表检查相关字段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/279982.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LVS负载均衡配置虚拟引起微服务注册混乱

线上小程序突然报错,查看网关日志,访问下游微服务A时大量报错: 1)检查微服务是否未注册。登录eureka页面,发现三个节点均正常注册 三个微服务节点地址分别为:13.9.1.91:8080,13.9.1.92:8080和1…

ssm504基于web的经典电影推荐网站的设计与实现论文

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装经典电影推荐网站软件来发挥其高效地信息处理的作用&#x…

ROS【一】(ROS的安装(ubuntu20.04))

ROS的安装 ROS的安装 ROS的安装[TOC](ROS的安装) 前言一、更新镜像源1.进入下载地址2.选择自己的系统类型3.选择自己的系统版本 二、ROS安装1.配置公钥2.添加ros源2.安装ros(注意ubuntu版本和ros版本要对应) 三、配置Ros1.设置环境变量2.安装依赖 四、测试Ros1.先重启2.启动Ros…

PiflowX大数据流水线系统

PiflowX大数据流水线系统。支持分布式计算引擎flink和spark。以所见即所得的方式,实现大数据采集、处理、存储与分析流程化配置、运行与智能监控。 PiflowX基于Piflow(PiFlow: 混合型科学大数据流水线系统,包含丰富的处理器组件,…

Flink(十一)【状态管理】

Flink 状态管理 我们一直称 Flink 为运行在数据流上的有状态计算框架和处理引擎。在之前的章节中也已经多次提到了“状态”(state),不论是简单聚合、窗口聚合,还是处理函数的应用,都会有状态的身影出现。状态就如同事务…

HackTheBox - Medium - Linux - Interface

Interface Interface 是一种中等难度的 Linux 机器,具有“DomPDF”API 端点,该端点通过将“CSS”注入处理后的数据而容易受到远程命令执行的影响。“DomPDF”可以被诱骗在其字体缓存中存储带有“PHP”文件扩展名的恶意字体,然后可以通过从其…

如何获取永久头像地址(非临时)微信小程序

先亮结果: 小程序端: 服务器端: 详细代码: 博文仅针对这一个功能,其它的比如wxml和wxss设置,或者微信昵称的获取就不多介绍了。 找了很久也没有找到真实的图片链接地址的获取方式。。。如果有大佬知道如…

竞赛保研 基于机器视觉的12306验证码识别

文章目录 0 简介1 数据收集2 识别过程3 网络构建4 数据读取5 模型训练6 加入Dropout层7 数据增强8 迁移学习9 结果9 最后 0 简介 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的12306验证码识别 该项目较为新颖,适合作为竞赛课题方向…

发布自己的npm包

前提条件:已经申请好了npm账号 npm的注册地址: npm注册地址, 按照上面的描述注册就可以,本文赘述具体的注册过程 1. 登陆npm 如果使用了镜像,需要切换镜像 npm config set registry https://registry.npmjs.org/ 控制台使用命令, 输入用户名和密码以及邮箱,然后按回…

VSCODE 修改Test模式下的的java jvm堆内存大小

在settings.json中添加如下语句 "java.test.config": {"vmArgs": ["-Xmx12G"]},

pycharm找回误删的文件和目录

昨天不知道做了什么鬼操作,可能是运行了几个git命令,将项目里面的几个文件删除了,有点懵。 我知道pycharm可以找回文件的历史修改记录,但是对于删除的文件能否恢复,一直没试过。 找到删除文件的目录,点击右…

【C语言】数据结构——带头双链表实例探究

💗个人主页💗 ⭐个人专栏——数据结构学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读:1. 双链表结构特征2. 实现双向循环链表2.1 定义结构体2.2 创造节点2.3 双向链表初始化2.4 双向链表打印2…

【Unity动画系统】Animator有限状态机参数详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

攻防技术1-网络攻击(HCIP)

目录 一、网络攻击方式分类 1、被动攻击: 2、主动攻击: 3、中间人攻击: 二、网络攻击报文类型分类: 1、流量型攻击 2、单包攻击 三、流量型攻击防范技术 1、DNS Request Flood攻击 攻击原理 DNS交互过程 2、TCP类报文…

统信UOS及麒麟KYLINOS操作系统上设置GRUB密码

原文链接:给单用户模式上一层保险!!! hello,大家好啊!今天我要给大家介绍的是在统信UOS及麒麟KYLINOS操作系统上设置GRUB密码的方法。GRUB(GRand Unified Bootloader)是Linux系统中的…

【Vue】使用Axios请求下载后端返回的文件流,并能够提示后端报错信息

【需求】使用Axios请求下载后端返回的文件流,下载失败时提示信息不写死,按照后端返回的信息进行提示。 一、需求分析 看到这个需求的时候,有人可能会很疑惑,这不是直接就能获取到吗,直接message.error()弹框就完事了&…

J1 - ResNet-50实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 环境步骤环境设置数据准备图像信息查看 模型设计模型训练模型效果展示 总结与心得体会 环境 系统: Linux语言: Python3.8.10深度学习…

MySQL MVCC精讲

版本链 我们前面说过,对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列(row_id并不是必要的,我们创建的表中有主键或者非NULL的UNIQUE键时都不会包含row_id列): trx_id&#xff…

贪心算法Part01 455分发饼干

455分发饼干 376摆动序列 53 最大子数组和