自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(302)
  • 收藏
  • 关注

原创 openGauss 角色

它们提供对特定的、通常需要高权限的操作的访问,可以将这些角色GRANT给数据库内的其他用户或角色,让这些用户能够使用特定的功能。具有调用函数pg_cancel_backend、pg_terminate_backend和pg_terminate_session来取消或终止其他会话的权限,但不能操作属于初始用户和PERSISTENCE用户的会话。以gs_role_开头的角色名作为数据库的内置角色保留名,禁止新建以“gs_role_”开头的用户/角色,也禁止将已有的用户/角色重命名为以“gs_role_”开头;

2024-04-30 11:17:52 387

原创 openGauss 将磁盘表转换为MOT

因此,如果在多表查询、存储过程或事务中访问原始表,则必须将所有相关的磁盘表转换为MOT,或者更改应用程序或数据库中的相关代码。下面介绍如何手动将基于磁盘的表转换为MOT,如何使用gs_dump工具导出数据,以及如何使用gs_restore工具导入数据。此模式与原始表相同,只是所有不支持的类型都已转换为支持的类型。磁盘表直接转换为MOT尚不能实现,这意味着尚不存在将基于磁盘的表转换为MOT的ALTER TABLE语句。检查待转换为MOT的磁盘表的模式是否包含所有需要的列。SMALLTALK 复制 全屏。

2024-04-30 11:17:19 607

原创 openGauss 行级访问控制

当数据库用户对数据表访问时,若SQL满足数据表特定的Row Level Security策略,在查询优化阶段将满足条件的表达式,按照属性(PERMISSIVE | RESTRICTIVE)类型,通过AND或OR方式拼接,应用到执行计划上。行级访问控制的目的是控制表中行级数据可见性,通过在数据表上预定义Filter,在查询优化阶段将满足条件的表达式应用到执行计划上,影响最终的执行结果。示例:某表中汇总了不同用户的数据,但是不同用户只能查看自身相关的数据信息,不能查看其他用户的数据信息。

2024-04-30 11:16:45 220

原创 openGauss 归档账本数据库

如果归档成功,函数返回t,反之则返回f。如果归档成功,函数返回t,反之则返回f。该结果表明,当前节点全局区块表导出成功。账本数据库接口仅审计管理员可以调用。该结果表明当前节点用户历史表导出成功。对指定用户历史表进行归档操作。执行全局区块表导出操作。

2024-04-30 11:16:13 543

原创 openGauss 管理员

要创建新的安全管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库,三权分立打开时,请以安全管理员身份连接数据库,并使用带CREATEROLE选项的。要创建新的审计管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库,三权分立打开时,请以安全管理员身份连接数据库,并使用带AUDITADMIN选项的。监控管理员是指具有MONADMIN属性的帐户,具有查看dbe_perf模式下视图和函数的权限,亦可以对dbe_perf模式的对象权限进行授予或收回。MAKEFILE 复制 全屏。

2024-04-30 11:15:43 557

原创 openGauss 更新表中数据

批量更新或删除数据后,会在数据文件中产生大量的删除标记,查询过程中标记删除的数据也是需要扫描的。故多次批量更新/删除后,标记删除的数据量过大会严重影响查询的性能。但是可以通过声明一个被更新的行必须满足的条件。只有在表里存在主键的时候,才可以通过主键指定一个独立的行。这里的表名称也可以使用模式名修饰,否则会从默认的模式路径找到这个表。新的字段值不仅可以是常量,也可以是变量表达式。在SET子句中的等号是一个赋值,而在WHERE子句中的等号是比较。在这里省略了WHERE子句,表示表中的所有行都要被更新。

2024-04-30 11:14:54 174

原创 openGauss 对比-磁盘与MOT

下表简要对比了基于openGauss磁盘的存储引擎和MOT存储引擎的各种特性。openGauss MOT引擎。openGauss 磁盘存储。纵向扩容(多核,NUMA)英特尔x86+鲲鹏ARM。3(同步、异步、组提交)对比:基于磁盘与MOT。数据容量(数据+索引)SQL和功能集覆盖率。

2024-04-30 11:14:21 91

原创 openGauss 创建-删除MOT

创建MOT非常简单。只有MOT中的创建和删除表语句与openGauss中基于磁盘的表的语句不同。SELECT、DML和DDL的所有其他命令的语法对于MOT表和openGauss基于磁盘的表是一样的。有关MOT的功能限制(如数据类型),请参见。

2024-04-30 11:13:50 115

原创 openGauss 创建和管理序列

但是一旦定义cache,序列将会产生空洞(序列值为不连贯的数值,如:1.4.5),并且不能保序。另外为某序列指定从属列后,该列删除,对应的sequence也会被删除。当前版本只支持在定义表的时候指定自增列,或者指定某列的默认值为nextval('seqname'), 不支持在已有表中增加自增列或者增加默认值为nextval('seqname')的列。方法二: 创建序列,并通过nextval('sequence_name')函数指定为某一字段的默认值。指定为某一字段的默认值,使该字段具有唯一标识属性。

2024-04-30 11:13:15 320

原创 openGauss 创建和管理索引

如果让数据库系统在ca_address_sk属性上维护一个索引,用于快速定位匹配的元组,则数据库系统只需要在搜索树上查找少数的几层就可以找到匹配的元组,这将会大大提高数据查询的性能。假如用户需要经常查询表tpcds.customer_address_bak中ca_address_sk是5050,且ca_street_number小于1000的记录,使用以下命令进行查询。执行如下命令对索引分区_web_returns_p2_P8_index_重命名_web_returns_p2_P8_index__new。

2024-04-30 11:12:41 521

原创 openGauss 创建和管理数据库

命令查看当前数据库存储编码),则在创建数据库对象时,如果对象名中含有多字节字符(例如中文),超过数据库对象名长度限制(63字节)的时候,数据库将会将最后一个字节(而不是字符)截断,可能造成出现半个字符的情况。初始时,openGauss包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。这个命令删除了数据库中的系统目录,并且删除了磁盘上带有数据的数据库目录。用户必须拥有数据库创建的权限或者是数据库的系统管理员权限才能创建数据库,赋予创建数据库的权限参见。

2024-04-30 11:12:06 437

原创 openGauss 创建和管理视图

视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。当CREATE VIEW中存在OR REPLACE时,表示若以前存在该视图就进行替换,但新查询不能改变原查询的列定义,包括顺序、列名、数据类型、类型精度等,只可在列表末尾添加其他的列。当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。

2024-04-30 11:11:32 240

原创 openGauss 创建和管理分区表

例如在数据库中创建了一个表tpcds.customer_address的备份表tpcds.web_returns_p2,现在需要将表tpcds.customer_address中的数据插入到表tpcds.web_returns_p2中,则可以执行如下命令。将表tpcds.customer_address的数据插入到表tpcds.web_returns_p2中。将表tpcds.customer_address的数据插入到表tpcds.web_returns_p2中。MAKEFILE 复制 全屏。

2024-04-30 11:10:55 663

原创 openGauss 创建和管理表空间

用户自定义表空间通常配合主存(即默认表空间所在的存储设备,如磁盘)以外的其它存储介质使用,以隔离不同业务可以使用的IO资源,而在HCS等场景下,存储设备都是采用标准化的配置,无其它可用的存储介质,自定义表空间使用不当不利于系统长稳运行以及影响整体性能,因此建议使用默认表空间即可。如果初始化数据库所在的分区或者卷空间已满,又不能逻辑上扩展更多空间,可以在不同的分区上创建和使用表空间,直到系统重新配置空间。如果用户拥有表空间的CREATE权限,就可以在表空间上创建数据库对象,比如:表和索引等。

2024-04-30 11:10:14 503

原创 openGauss 创建和管理schema

通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。管理schema包括:创建schema、使用schema、删除schema、设置schema的搜索路径以及schema的权限控制。如果需要访问其他schema的对象,则该schema的所有者应该赋予他对该schema的usage权限。在特定schema下创建对象或者访问特定schema下的对象,需要使用有schema修饰的对象名。

2024-04-30 11:09:29 303

原创 openGauss MOT索引

这个添加的后缀是指向行本身的指针,该行具有8个字节的常量大小,并且值对该行是唯一的。虽然行数据占用相同的内存大小,但每个索引(主索引或辅助索引)的每行内存平均高了16字节——基于磁盘的表使用基于锁的B树,大小为29字节,而MOT的Masstree大小为45字节。]的免锁索引,用于多核系统的快速和可扩展的键值(KV)存储,通过B+树的Trie实现。Masstree索引是用于数据和索引管理的MOT内存布局的核心。MOT的主要创新是增强了原有的Masstree数据结构和算法,它不支持非唯一索引(作为二级索引)。

2024-04-29 17:20:22 839

原创 openGauss MOT数据采集速度

预计MOT将针对这一场景进行多项额外的甚至重大的性能改进。更多关于大规模数据流和数据采集的信息,请参阅。该测试模拟海量物联网、云端或移动端接入的实时数据流,快速持续地把海量数据注入到数据库。

2024-04-29 17:19:46 299

原创 openGauss MOT使用概述

MOT作为openGauss的一部分自动部署。有关如何计算和规划所需的内存和存储资源以维持工作负载的说明,请参阅MOT准备。参考MOT部署了解MOT中所有的配置,以及服务器优化的非必须选项。使用MOT的方法非常简单。MOT命令的语法与基于磁盘的表的语法相同,并支持大多数标准,如PostgreSQL SQL、DDL和DML命令和功能,如存储过程。只有MOT中的创建和删除表语句与openGauss中基于磁盘的表的语句不同。您可以参考MOT使用。

2024-04-29 17:19:10 227

原创 openGauss MOT使用

openGauss允许应用程序使用MOT和基于标准磁盘的表。MOT适用于最活跃、高竞争和对吞吐量敏感的应用程序表,也可用于所有应用程序的表。以下命令介绍如何创建MOT,以及如何将现有的基于磁盘的表转换为MOT,以加速应用程序的数据库相关性能。MOT尤其有利于已证明是瓶颈的表。本小节还介绍了如何执行各种与MOT相关的附加任务,以及。使用MOT非常简单,以下几个小节将会进行描述。

2024-04-29 17:18:37 337

原创 openGauss MOT日志记录-WAL重做日志概念

预写日志记录(WAL)是确保数据持久性的标准方法。WAL的主要概念是,数据文件(表和索引所在的位置)的更改只有在记录这些更改之后才会写入,即只有在描述这些更改的日志记录被刷新到永久存储之后才会写入。MOT全面集成openGauss的封装日志记录设施。除持久性外,这种方法的另一个好处是能够将WAL用于复制目的。支持三种日志记录方式:两种标准同步和一种异步方式。标准openGauss磁盘引擎也支持这三种日志记录方式。此外,在MOT中,组提交(Group-Commit)选项还提供了特殊的NUMA感知优化。

2024-04-29 17:18:04 610

原创 openGauss MOT配置

当用户会话执行需要大量内存的查询时(例如,使用许多行),大缓冲区存储用于增加此类内存可用的确定级别,并更快地为这个内存请求提供服务。相反,使用non-lazy块目录会额外分配1GB的初始内存,产生略高的性能,并确保在内存损坏期间避免块目录错误。为了避免单个会话占用过多的内存,从而拒绝其他会话的内存,通过该配置项限制小会话的本地内存分配(最大1022KB)。例如,16表示当同一组中的16个事务已由它们的客户端应用程序提交时,则针对16个事务中的每个事务,在磁盘的WAL重做日志中写入一个条目。

2024-04-29 17:17:05 801

原创 openGauss MOT内存和存储规划

除了磁盘表缓冲区和额外的内存,max_process_memory(在postgres.conf中定义)还有足够的容量用于MOT和会话(由mix/max_mot_global_memory和mix/max_mot_local_memory配置)。所有这些都是在传统的基于磁盘的引擎、表和会话所需的内存之外的要求。本节描述了为满足特定应用程序需求,在评估、估计和规划内存和存储容量数量时,需要注意的事项和准则,以及影响所需内存数量的各种数据,例如计划表的数据和索引大小、维持事务管理的内存以及数据增长的速度。

2024-04-29 17:15:22 238

原创 openGauss MOT内存管理

规划和微调请参见和。

2024-04-29 17:14:37 215

原创 openGauss MOT乐观并发控制

但是,使用这种方法时,两个会话都成功,并且不会发生异常中止(除非应用了SERIALIZABLE或REPEATABLE-READ隔离级别),这会导致整个事务需要重试。另一种方法是遇时锁定(ETL),它以乐观的方式处理读取,但写入操作锁定它们访问的数据。当强制执行REPEATABLE READ隔离级别时,乐观方法与悲观方法之间的函数差异更大,而当强制执行SERIALIZABLE隔离级别时,函数差异最大。下面是会话同时更新同一个表时,两种用户体验的区别:悲观(针对基于磁盘的表)和乐观(针对MOT表)。

2024-04-29 17:14:06 359

原创 openGauss MOT简介

openGauss引入了MOT存储引擎,它是一种事务性行存储,针对多核和大内存服务器进行了优化。MOT是openGauss数据库最先进的生产级特性(Beta版本),它为事务性工作负载提供更高的性能。MOT完全支持ACID特性,并包括严格的持久性和高可用性支持。企业可以在关键任务、性能敏感的在线事务处理(OLTP)中使用MOT,以实现高性能、高吞吐、可预测低延迟以及多核服务器的高利用率。

2024-04-29 17:13:28 306

原创 openGauss MOT检查点概念

为此,我们研究并实现了CALC算法,该算法在耶鲁大学发布的Low-Overhead Asynchronous Checkpointing in Main-Memory Database Systems, SIGMOD 2016中得到了描述。在openGauss中,检查点是事务序列中一个点的快照,在该点上,可以保证堆和索引数据文件已经同步了检查点之前写入的所有信息。在执行检查点时,所有脏数据页都会刷新到磁盘,并将一个特殊的检查点记录写入日志文件。MOT检查点被集成到openGauss的封装的检查点机制中。

2024-04-29 17:12:52 269

原创 openGauss MOT监控

监控的所有语法支持基于openGauss的FDW表,包括下面的表或索引大小。此外,还存在用于监控MOT内存消耗的特殊函数,包括MOT全局内存、MOT本地内存和单个客户端会话。可以通过查询pg_relation_size来监控表和索引的大小。DBA可以通过以下查询确定当前会话使用的本地内存状态。所有活动会话(连接)的内存使用量可以通过以下查询。检查MOT全局内存大小,主要是数据和索引。检查MOT本地内存大小,包括会话内存。会话管理的内存从MOT本地内存中获取。

2024-04-29 17:12:22 199

原创 openGauss MOT恢复时间目标_RTO和冷启动时间

灾难发生后必须恢复业务流程,避免导致连续性中断相关的不可接受的后果,而RTO表示的就是这段流程的持续时间和业务级别。在内存数据库中,这包括将所有数据和索引加载到内存中的时间,因此它取决于数据大小、硬件带宽和软件算法能否高效地处理这些数据。的MOT中可以看出,在Arm/鲲鹏架构下,主从高可用场景复制开销仅为7%,在x86架构下仅为2%,而基于磁盘的表复制开销为2%。如果故障转移事件发生,无论是由于计划外的主节点故障还是由于计划内的维护事件,备节点都会迅速活跃。测试过程中表现的性能与SSD硬件的带宽非常接近。

2024-04-29 17:11:42 367

原创 openGauss MOT恢复概念

它首先恢复元数据,然后插入当前有效检查点的所有行,这由checkpoint_recovery_workers并行完成,每个行都在不同的表中工作。在检查点时,表被分成多个16MB的块,以便多个恢复工作进程可以并行地恢复表。openGauss数据库恢复(有时也称为冷启动)包括MOT表,并且随着数据库其余部分的恢复而自动执行。恢复模块的主要目标是在计划(例如维护)关闭或计划外(例如电源故障)崩溃后,将数据和MOT引擎恢复到一致的状态。MOT恢复有两个主要阶段:检查点恢复和WAL恢复(重做日志)。

2024-04-29 17:11:10 182

原创 openGauss MOT恢复

WAL重做日志恢复:从检查点恢复中使用检查点后,必须通过重放之后添加到日志中的记录,从WAL重做日志中恢复最近的数据(在检查点中未捕获)。MOT恢复是随着openGauss数据库其余部分的恢复而自动执行的,并且完全集成到openGauss恢复过程(也称为冷启动)。MOT恢复的主要目标是在有计划停机(例如维护)或计划外崩溃(例如电源故障后)后,将数据和MOT引擎恢复到一致状态。检查点恢复:必须通过将数据加载到内存行并创建索引,从磁盘上的最新检查点文件恢复数据。openGauss管理和触发WAL重做日志恢复。

2024-04-29 17:10:28 184

原创 openGauss MOT隔离级别

SNAPSHOT(快照)隔离级别提供与SERIALIZABLE(可序列化)相同的保证,同时支持并发事务修改数据。然而,在许多实现中,这种隔离级别需要更高的服务器资源。数据被读取后可以自由更改,因此,读已提交隔离级别并不保证事务再次读取时能找到相同的数据。REPEATABLE READ(可重复读)是一个更高的隔离级别,除了READ COMMITTED隔离级别的保证之外,它还保证任何读取的数据都不能更改。如果一个事务再次读取相同的数据,它将找出该数据,不做更改,并且保证它可读取。隔离级别启用的并发副作用。

2024-04-28 10:33:07 255

原创 openGauss MOT高吞吐量

结果表明,正如预期的那样,在所有情况下,MOT的单核性能明显高于基于磁盘的表。下面通过比较基于磁盘的表和MOT之间单连接数的tpmC,来展示MOT出色的并发控制性能。下图是华为Arm/鲲鹏服务器2路128核的单核TPC-C基准性能/吞吐量测试结果。结果表明,在386核服务器上,MOT的性能明显优于基于磁盘的表,并且单核性能非常高,达到300万tpmC/核。结果表明,随着核数增多,性能也显著提高,在768核时性能达到480万tpmC的峰值。下图是华为Arm/鲲鹏2路128核服务器TPC-C基准测试的结果。

2024-04-28 10:32:35 366

原创 openGauss MOT复制和高可用

openGauss gs_ctl工具用于可用性控制和openGauss实例操作。这包括gs_ctl切换、gs_ctl故障切换、gs_ctl构建等等。由于MOT集成到openGauss中,并且使用或支持其复制和高可用,因此,MOT原厂功能即支持同步复制和异步复制。有关更多信息,请参见《工具与命令参考》。

2024-04-28 10:31:51 145

原创 openGauss MOT服务器优化-基于Arm的华为TaiShan2P-4P服务器

以下是基于Arm/鲲鹏架构的华为TaiShan 2280 v2服务器(2路128核[])和TaiShan 2480 v2服务器(4路256核[])上运行MOT时的建议配置。除非另有说明,以下设置适用于客户端和服务器的机器。

2024-04-28 10:31:12 988

原创 openGauss MOT服务器优化-x86

其他不太适合openGauss和MOT服务器的配置可能会影响MOT的整体性能,包括:平衡配置、桌面配置、延迟性能配置、网络延迟配置、网络吞吐量配置和节能配置。MOT支持最新的硬件,因此调整每个系统以达到最大吞吐量是极为重要的。throughput-performance配置文件是广泛适用的调优,它为各种常见服务器工作负载提供卓越的性能。当磁盘带宽明显低于789MB/s时,可能会造成openGauss性能瓶颈,尤其是造成MOT性能瓶颈。除以上内容外,以下通用服务器设置默认使用,可能会明显影响数据库的性能。

2024-04-28 10:27:32 755

原创 openGauss MOT低延迟

MOT的平均事务速度为2.5倍,MOT延迟为10.5ms,而基于磁盘的表延迟为23至25ms。以下是在Arm/鲲鹏两路服务器(128核)上进行测试的结果。单位为毫秒(ms)。计算平均数时,已考虑TPC-C的5个事务分布占比。有关更多信息,请参阅。低延迟(90th%,事务平均)性能基准。低延迟(90th%)性能基准。中关于TPC-C事务的说明。

2024-04-28 10:27:01 88

原创 openGauss MOT的概念

本章介绍openGauss MOT的设计和工作原理,阐明其高级特性、功能及使用方法,旨在让读者了解MOT操作上的技术细节、重要特性细节和创新点。本章内容有助于决策MOT是否适合于特定的应用需求,以及进行最有效的使用和管理。

2024-04-28 10:25:52 153

原创 openGauss MOT错误消息

以下列出了写入数据库服务器日志文件但未返回给用户的错误。此外,与用户相关的错误作为对查询、事务或存储过程执行或数据库管理操作的响应的一部分返回给用户。MOT从内部返回Postgres代码(见下文)到数据库包,数据库封装根据标准的Postgres行为对其做出反应。错误提示、错误描述和错误码见下文。该错误码实际上是内部代码,不记录也不返回给用户。提示信息中的%s、%u、%lu指代相应的错误信息(如查询、表名或其他信息)。下面列出了写入数据库服务器日志文件并返回给用户的错误。返回给用户并记录到日志文件的错误。

2024-04-28 10:25:19 563

原创 openGauss MOT持久性概念

内存存储是易失的,需要电源来维护所存储的信息。另一方面,磁盘存储是非易失性的,这意味着它不需要电源来维护存储的信息,因此它不用担心停电。MOT使用这两种类型的存储,它拥有内存中的所有数据,同时将事务性更改持久化到磁盘,并保持频繁的定期。持久性是指长期的数据保护(也称为磁盘持久性)。持久性意味着存储的数据不会遭受任何形式的退化或破坏,因此数据不会丢失或损坏。持久性可确保在有计划停机(例如维护)或计划外崩溃(例如电源故障)后数据和MOT引擎恢复到一致状态。MOT的WAL重做日志和检查点启用了持久性,如下所述。

2024-04-28 10:24:45 197

原创 openGauss MOT持久性

同步重做日志记录选项是最安全、最严格的,因为它确保了客户端应用程序和每个事务提交时的WAL重做日志条目的完全同步,从而确保了总的持久性和一致性,并且绝对不会丢失数据。此日志记录选项可防止客户端应用程序在事务尚未持久化到磁盘时将事务标记为成功的情况。同步重做日志记录选项的缺点是,它是三个选项中最慢的日志机制。因为客户端应用程序必须等待所有数据都写入磁盘,并且磁盘写入过于频繁导致数据库变慢。

2024-04-28 10:24:07 858

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除