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

news2025/1/18 17:09:51

一、  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.coloradmin.cn/o/1345080.html

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

相关文章

SQL Server 存储过程 触发器 事务处理

CSDN 成就一亿技术人! 难度指数:* * CSDN 成就一亿技术人! 目录 1. 存储过程的作用 创建存储过程 2. 触发器 触发器的种类 insert触发器 update触发器 delete触发器 测试 3. 事务 开始事务 提交事务 回滚事务 举个实例 在 SQ…

Python编程技巧 – format格式化文本

Python编程技巧 – format格式化文本 Python Programming Essentials - Using format() to format texts By JacksonML 本文简要介绍Python语言的format()方法(也即函数)相关实例和技巧,希望对读者有所帮助。 1. format定义和方法 forma…

深入解析 Flink CDC 增量快照读取机制

一、Flink-CDC 1.x 痛点 Flink CDC 1.x 使用 Debezium 引擎集成来实现数据采集,支持全量加增量模式,确保数据的一致性。然而,这种集成存在一些痛点需要注意: 一致性通过加锁保证:在保证数据一致性时,Debez…

HEX报文协议打包生成工具

本工具可以用于灵活定制各种格式的报文。以下是定制报文中每个字段的说明: isbig:指示报文中的字节顺序是否为大端序(Big Endian)。如果为true,则表示使用大端序;如果为false,则表示使用小端序…

如何成功拿下uniapp生命周期?

uniapp介绍 Uniapp作为一款跨平台应用开发框架,具有两个生命周期: 组件生命周期页面生命周期什么是页面? pages下面的.vue或者.nvue(app端)文件就是页面 什么是组件? 一般通常会把项目中的组件放在com…

RHCE9学习指南 第12章 ssh远程登录系统和远程拷贝

很多时候服务器并没有显示器,我们也不可能每次都通过控制台去管理服务器,这时就需要远程登录。远程登录到服务器可以通过Telnet或ssh的方式。但是用Telnet登录,整个过程都是以明文的方式传输的,不安全。所以,建议使用s…

阿里云2核2G3M服务器放几个网站?

阿里云2核2g3m服务器可以放几个网站?12个网站,阿里云服务器网的2核2G服务器上安装了12个网站,甚至还可以更多,具体放几个网站取决于网站的访客数量,像阿里云服务器网aliyunfuwuqi.com小编的网站日访问量都很少&#xf…

论文阅读——UniRepLKNet

UniRepLKNet: A Universal Perception Large-Kernel ConvNet for Audio, Video, Point Cloud, Time-Series and Image Recognition 当我们将一个33的conv添加到一个小卷积核ConvNet中时,我们预计它会同时产生三种效果——1)使感受野更大,2&am…

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题)

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 第一部分:数据安全防护(30%) 第二部分:数据安全管理(30%) 第三部分:数据安全处置(40%) 项目介绍…

飞致云开源社区月度动态报告(2023年12月)

自2023年6月起,中国领先的开源软件公司FIT2CLOUD飞致云以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源大屏…

『番外篇六』SwiftUI 取得任意视图全局位置的三种方法

概览 在 SwiftUI 开发中,利用描述性代码我们可以很轻松的构建各种丰富多彩的视图。我们可以设置它们的大小、位置、颜色并应用不计其数的修改器。 但是,小伙伴们是否想过在 SwiftUI 中如何获取一个视图的全局位置坐标呢? 在本篇博文中,您将学到如下内容: 概览1. SwiftU…

【MySQL】数据库之存储过程(“SQL语句的脚本“)

目录 一、什么是存储过程? 二、存储过程的作用 三、如何创建、调用、查看、删除、修改存储过程 四、存储过程的参数(输入参数,输出参数,输入输出参数) 第一种:输入参数 第二种:输出参数 …

FPGA高端项目:基于GTH的 4K HDMI 视频收发例程,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我已有的 GT 高速接口解决方案我已有的FPGA图像处理方案 3、详细设计方案设计框图4K HDMI 输入硬件解决方案Video PHY ControllerHDMI 1.4/2.0 Receiver Subsystem4K HDMI 解码后的视频流走向4K HDMI 解码后的音频流走向HDMI 1.4/2.0 Tran…

跨境电商:让中国制造走向世界

跨境电商的崛起 跨境电商是指不同国家和地区之间的商业交易,通过互联网和物流等方式完成。随着全球化和互联网的普及,跨境电商迅速崛起,成为全球贸易的重要组成部分。中国作为全球最大的制造业国家,拥有着丰富的商品资源和供应链…

软件设计师——软件工程(三)

📑前言 本文主要是【软件工程】——软件设计师——软件工程的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…

Android APK未签名提醒

最近新建了一个项目,在build.gradle中配置好了签名,在执行打包的时候打出的包显示已签名,但是在上传市场的时候提示未签名。于是排查了好久,发现在build.gradle中配置的minsdk 24,会导致不使用V1签名,于是我…

软件工程期末复习习题

知识点总结 第一章:软件工程概述 1、软件的定义:在运行中能提供所希望的功能与性能的程序使程序能够正确运行的数据及其结构描述软件研制过程和方法所用的文档。 2、软件危机:软件开发的生产率远远不能满足客观需要。开发的软件产品往往不能…

关于蚁剑(AntSword)的溯源反制

中国蚁剑(AntSword) RCE漏洞 此漏洞在AntSword2.7.1版本上修复 ,所以适用于AntSword2.7.1以下版本。 下面介绍被低版本蚁剑攻击后如何进行溯源反打 以物理机为攻击机,虚拟机kali模拟受害者,之后使用kali进行溯源反制 物理机内网ip地址&…

图文证明 牛顿-莱布尼茨公式

牛顿-莱布尼茨公式 牛顿-莱布尼茨公式是微积分中的基本定理之一,它描述了函数的导数和不定积分之间的关系。 该公式通常用来计算定积分。设函数f(x)在区间[a, b]上连续,且F(x)是f(x)在该区间上的一个原函数 即F’(x) f(x)。则牛顿-莱布尼茨公式表示为&…

trino-435: 集群部署

一、源码编译打包 现在本地使用idea工具对trino源码进行打包编译,并对trino服务信息进行压缩用于上传到linux服务器,如下所示: 编译打包过程中遇到的问题: 对core下的trino-server-rpm模块进行mavn install时候出现某jar&#x…