04 2024 档案
摘要:创建和管理schema 背景信息 schema又称作模式。通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。 管理schema包括:创建schema、使用schema、删除schema、设
阅读全文
摘要:创建和管理表 创建表 向表中插入数据 更新表中数据 查看数据 删除表中数据 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:创建和管理表空间 背景信息 通过使用表空间,管理员可以控制一个数据库安装的磁盘布局。这样有以下优点: 如果初始化数据库所在的分区或者卷空间已满,又不能逻辑上扩展更多空间,可以在不同的分区上创建和使用表空间,直到系统重新配置空间。 表空间允许管理员根据数据库对象的使用模式安排数据位置,从而提高性能。
阅读全文
摘要:创建和管理分区表 背景信息 openGauss数据库支持的分区表为范围分区表、间隔分区表、列表分区表、哈希分区表。 范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期,例如将销售数据按照月份进行分区。 间隔分区表:
阅读全文
摘要:创建和管理视图 背景信息 当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。 视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的
阅读全文
摘要:创建和管理数据库 前提条件 用户必须拥有数据库创建的权限或者是数据库的系统管理员权限才能创建数据库,赋予创建数据库的权限参见管理用户及权限。 背景信息 初始时,openGauss包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。postgres默认的
阅读全文
摘要:创建和管理索引 背景信息 索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以是否要为表增加索引,索引建立在哪些字段上,是创建索引前必须要考虑的问题。需要分析应用程序的业务处理、数据使用、经常被用作查询的条件或者被要求排序的字段来确定是否建立索引。 索引建立在数据库表中的某
阅读全文
摘要:创建和管理序列 背景信息 序列Sequence是用来产生唯一整数的数据库对象。序列的值是按照一定规则自增的整数。因为自增所以不重复,因此说Sequence具有唯一标识性。这也是Sequence常被用作主键的原因。 通过序列使某字段成为唯一标识符的方法有两种: 一种是声明字段的类型为序列整型,由数据库
阅读全文
摘要:创建/删除MOT 创建MOT非常简单。只有MOT中的创建和删除表语句与openGauss中基于磁盘的表的语句不同。SELECT、DML和DDL的所有其他命令的语法对于MOT表和openGauss基于磁盘的表是一样的。 创建MOT: create FOREIGN table test(x int) [
阅读全文
摘要:对比:磁盘与MOT 下表简要对比了基于openGauss磁盘的存储引擎和MOT存储引擎的各种特性。 对比:基于磁盘与MOT 特性 openGauss 磁盘存储 openGauss MOT引擎 英特尔x86+鲲鹏ARM 是 是 SQL和功能集覆盖率 100% 98% 纵向扩容(多核,NUMA) 低效
阅读全文
摘要:更新表中数据 修改已经存储在数据库中数据的行为叫做更新。用户可以更新单独一行、所有行或者指定的部分行。还可以独立更新每个字段,而其他字段则不受影响。 使用UPDATE命令更新现有行,需要提供以下三种信息: 表的名称和要更新的字段名 字段的新值 要更新哪些行 SQL通常不会为数据行提供唯一标识,因此无
阅读全文
摘要:管理数据库安全 客户端接入认证 管理用户及权限 设置数据库审计 设置账本数据库 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:管理用户及权限 默认权限机制 管理员 三权分立 用户 角色 Schema 用户权限设置 行级访问控制 设置安全策略 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:管理员 初始用户 数据库安装过程中自动生成的帐户称为初始用户。初始用户拥有系统的最高权限,能够执行所有的操作。如果安装时不指定初始用户名称则该帐户与进行数据库安装的操作系统用户同名。如果在安装时不指定初始用户的密码,安装完成后密码为空,在执行其他操作前需要通过gsql客户端修改初始用户的密码。如果初
阅读全文
摘要:归档账本数据库 前提条件 系统中需要有审计管理员或者具有审计管理员权限的角色。 数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。 数据库已经正确配置审计文件的存储路径audit_directory。 背景信息 账本数据库归档功能目前提供两种校验
阅读全文
摘要:行级访问控制 行级访问控制特性将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。 用户可以在数据表创建行访问控制(Row Level Security)策略,该策略是指针对特定数据库用户、特定SQL操作生效的表达式。当数据库用
阅读全文
摘要:将磁盘表转换为MOT 磁盘表直接转换为MOT尚不能实现,这意味着尚不存在将基于磁盘的表转换为MOT的ALTER TABLE语句。 下面介绍如何手动将基于磁盘的表转换为MOT,如何使用gs_dump工具导出数据,以及如何使用gs_restore工具导入数据。 前置条件检查 检查待转换为MOT的磁盘表的
阅读全文
摘要:角色 角色是一组用户的集合。通过GRANT把角色授予用户后,用户即具有了角色的所有权限。推荐使用角色进行高效权限分配。例如,可以为设计、开发和维护人员创建不同的角色,将角色GRANT给用户后,再向每个角色中的用户授予其工作所需数据的差异权限。在角色级别授予或撤消权限时,这些更改将作用到角色下的所有成
阅读全文
摘要:客户端接入认证 配置客户端接入认证 配置文件参考 用SSL进行安全的TCP/IP连接 用SSH隧道进行安全的TCP/IP连接 查看数据库连接数 SSL证书管理 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:扩展FDW与其他openGauss特性 openGauss基于PostgreSQL,而PostgreSQL没有内置存储引擎适配器,如MySQL的handlerton。为了使MOT存储引擎能够集成到openGauss中,我们利用并扩展了现有的FDW机制。随着FDW引入PostgreSQL 9.1,现在
阅读全文
摘要:默认权限机制 数据库对象创建后,进行对象创建的用户就是该对象的所有者。数据库安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过GRANT将对象的权限授予其他用户。 为使其他用户能够使用
阅读全文
摘要:内存表特性 MOT介绍 使用MOT MOT的概念 附录 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:内存表特性 MOT介绍 使用MOT MOT的概念 附录 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:配置客户端接入认证 背景信息 如果主机需要远程连接数据库,必须在数据库系统的配置文件中增加此主机的信息,并且进行客户端接入认证。配置文件(默认名称为pg_hba.conf)存放在数据库的数据目录里。hba(host-based authentication)表示是基于主机的认证。 本产品支持如下三种
阅读全文
摘要:配置文件参考 表 1 参数说明 参数名称 描述 取值范围 local 表示这条记录只接受通过Unix域套接字进行的连接。没有这种类型的记录,就不允许Unix域套接字的连接。 只有在从服务器本机使用gsql连接且在不指定-h参数的情况下,才是通过Unix域套接字连接。 - host 表示这条记录既接受
阅读全文
摘要:其他操作 创建和管理schema 创建和管理表 创建和管理分区表 创建和管理索引 创建和管理视图 创建和管理序列 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:前提条件 以下是使用openGauss MOT的软硬件前提条件。 硬件支持 MOT支持最新硬件和现有硬件平台,支持x86架构和华为鲲鹏Arm架构。 MOT与openGauss数据库支持的硬件完全对齐。更多信息请参见《openGauss安装指南》。 CPU MOT在多核服务器(扩容)上提供卓越的性能。
阅读全文
摘要:三权分立 默认权限机制和管理员两节的描述基于的是数据库创建之初的默认情况。从前面的介绍可以看出,默认情况下拥有SYSADMIN属性的系统管理员,具备系统最高权限。 在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立。将系统管理员的部分权限分立给安全管理员和审计管理员,
阅读全文
摘要:删除表中数据 在使用表的过程中,可能会需要删除已过期的数据,删除数据必须从表中整行的删除。 SQL不能直接访问独立的行,只能通过声明被删除行匹配的条件进行。如果表中有一个主键,用户可以指定准确的行。用户可以删除匹配条件的一组行或者一次删除表中的所有行。 使用DELETE命令删除行,如果删除表cust
阅读全文
摘要:设置安全策略 设置帐户安全策略 设置帐号有效期 设置密码安全策略 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:设置密码安全策略 操作步骤 用户密码存储在系统表pg_authid中,为防止用户密码泄露,openGauss对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。 当参数password_encryption_type设置为0时,表示采用md5方式对
阅读全文
摘要:设置数据库审计 审计概述 查看审计结果 维护审计日志 设置文件权限安全策略 统一审计策略概述 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:设置透明数据加密(TDE) 概述 透明数据加密(Transparent Data Encryption),是数据库在将数据写入存储介质时对数据进行加密,从存储介质中读取数据时自动解密,防止攻击者绕过数据库认证机制直接读取数据文件中的数据,以解决静态数据泄露问题。该功能对于应用层几乎透明无感知,用户可
阅读全文
摘要:设置文件权限安全策略 背景信息 数据库在安装过程中,会自动对其文件权限(包括运行过程中生成的文件,如日志文件等)进行设置。其权限规则如下: 数据库程序目录的权限为0750。 数据库数据文件目录的权限为0700。 数据库部署时通过创建xml配置文件中的tmpMppdbPath参数指定目录(若未指定,则
阅读全文
摘要:设置帐号有效期 注意事项 创建新用户时,需要限制用户的操作期限(有效开始时间和有效结束时间)。 不在有效操作期内的用户需要重新设定帐号的有效操作期。 操作步骤 以操作系统用户omm登录数据库主节点。 使用如下命令连接数据库。 gsql -d postgres -p 8000 postgres为需要连
阅读全文
摘要:设置帐户安全策略 背景信息 openGauss为帐户提供了自动锁定和解锁帐户、手动锁定和解锁异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据安全。 自动锁定和解锁帐户 为了保证帐户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,默认
阅读全文
摘要:设置账本数据库 账本数据库概述 查看账本历史操作记录 校验账本数据一致性 归档账本数据库 修复账本数据库 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:审计概述 背景信息 数据库安全对数据库系统来说至关重要。openGauss将用户对数据库的所有操作写入审计日志。数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。 关于审计功能,用户需要了解以下几点内容: 审计总开关audit_enabled支持
阅读全文
摘要:使用MOT 本章介绍如何部署、使用和管理openGauss MOT。使用MOT的方法非常简单。MOT命令的语法与openGauss基于磁盘的表相同。只有MOT中的创建和删除表语句与openGauss中基于磁盘的表的语句不同。您可以参考本章了解如何入门、如何将基于磁盘的表转换为MOT、如何使用MOT的
阅读全文
摘要:授予用户权限 以授予数据库用户对MOT存储引擎的访问权限为例。每个数据库用户仅执行一次,通常在初始配置阶段完成。 说明: MOT通过外部数据封装器(Foreign Data Wrapper,FDW)机制与openGauss数据库集成,所以需要授权用户权限。 要使特定用户能够创建和访问MOT(DDL、
阅读全文
摘要:术语表 缩略语 定义描述 2PL 2阶段锁(2-Phase Locking) ACID 原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability) AP 分析处理(Analytical Processing) Arm 高级RISC机器
阅读全文
摘要:相关概念 数据库 数据库用于管理各类数据对象,与其他数据库隔离。创建数据对象时可以指定对应的表空间,如果不指定相应的表空间,相关的对象会默认保存在PG_DEFAULT空间中。数据库管理的对象可分布在多个表空间上。 表空间 在openGauss中,表空间是一个目录,可以存在多个,里面存储的是它所包含的
阅读全文
摘要:统一审计策略概述 背景信息 传统审计会产生大量的审计日志,且不支持定制化的访问对象和访问来源配置,不方便数据库安全管理员对审计日志的分析。而统一审计策略支持绑定资源标签、配置数据来源输出审计日志,可以提升安全管理员对数据库监控的效率。 详情查看:https://opengauss.org 详情查看:
阅读全文
摘要:为MOT创建索引 支持标准的openGauss创建和删除索引语句。 例如: create index text_index1 on test(x) ; 创建一个用于TPC-C的ORDER表,并创建索引: create FOREIGN table bmsql_oorder ( o_w_id integ
阅读全文
摘要:维护审计日志 前提条件 用户必须拥有审计权限。 背景信息 与审计日志相关的配置参数及其含义请参见表1。 表 1 审计日志相关配置参数 配置项 含义 默认值 audit_directory 审计文件的存储目录。 /var/log/gaussdb/用户名/pg_audit audit_resource_
阅读全文
摘要:向表中插入数据 在创建一个表后,表中并没有数据,在使用这个表之前,需要向表中插入数据。本小节介绍如何使用INSERT命令插入一行或多行数据,及从指定表插入数据。如果有大量数据需要批量导入表中,请参考导入数据。 背景信息 服务端与客户端使用不同的字符集时,两者字符集中单个字符的长度也会不同,客户端输入
阅读全文
摘要:校验账本数据一致性 前提条件 数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。 背景信息 账本数据库校验功能目前提供两种校验接口,分别为:ledger_hist_check(text,...和ledger_gchain_check(text..
阅读全文
摘要:修复账本数据库 前提条件 系统中需要有审计管理员或者具有审计管理员权限的角色。 数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。 背景信息 当在异常情况或表被损坏时需要使用ledger_gchain_repair(tex...或ledger_h
阅读全文
摘要:用SSH隧道进行安全的TCP/IP连接 背景信息 为了保证服务器和客户端之间的安全通讯,可以在服务器和客户端之间构建安全的SSH隧道。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。 从SSH客户端来看,SSH提供了两种级别的安全验证: 基于口令的安全验证:使用帐号和口令登录到远
阅读全文
摘要:用SSL进行安全的TCP/IP连接 背景信息 openGauss支持SSL标准协议(TLS 1.2),SSL协议是安全性更高的协议标准,它们加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。 openGauss支持TLCP协议,TLCP采用国密算法进行身份
阅读全文
摘要:用户 使用CREATE USER和ALTER USER可以创建和管理数据库用户。openGauss包含一个或多个已命名数据库用户和角色在openGauss范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里声明的那个数据库。 非三权分立下,ope
阅读全文
摘要:用户权限设置 给用户直接授予某对象的权限,请使用GRANT。 将Schema中的表或者视图对象授权给其他用户或角色时,需要将表或视图所属Schema的USAGE权限同时授予该用户或角色。否则用户或角色将只能看到这些对象的名称,并不能实际进行对象访问。 例如,下面示例将Schema tpcds的权限赋
阅读全文
摘要:用于Oracle的外部数据包装器 oracle_fdw(foreign data wrapper for oracle)用于Oracle的外部数据包装器,是一款开源插件。openGauss基于开源的oracle_fdw Release 2.2.0 版本进行开发适配。 编译和使用oracle_fdw需
阅读全文
摘要:账本数据库概述 背景信息 账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表。当用户创建防篡改用户表时,系统将自动为该表添加一个hash列来保存每行数据的hash摘要信息,同时在blockchain模式下会创建一张用户历史表来记录对应用户表中每条数据的变更行为;而用户对
阅读全文
摘要:证书生成 操作场景 在测试环境下,用户可以用通过以下方式进行数字证书测试。在客户的运行环境中,请使用从CA认证中心申请的数字证书。 前提条件 Linux环境安装了tassl组件。 自认证证书生成过程 生成自签名CA证书。 --假设tassl的安装路径为/home/omm/tassl --copy 配
阅读全文
摘要:证书生成 操作场景 在测试环境下,用户可以用通过以下方式进行数字证书测试。在客户的运行环境中,请使用从CA认证中心申请的数字证书。 前提条件 Linux环境安装了openssl组件。 自认证证书生成过程 搭建CA环境。 --假设用户为omm已存在,搭建CA的路径为test --以omm用户身份登录L
阅读全文
摘要:证书替换<a name="ZH-CN_TOPIC_0289900549"></a> 操作场景<a name="zh-cn_topic_0283137045_zh-cn_topic_0237121097_zh-cn_topic_0059778589_section12641165319257"></a
阅读全文
摘要:重试中止事务 在乐观并发控制(OCC)中,在COMMIT阶段前的事务期间(使用任何隔离级别)不会对记录进行锁定。这是一个能显著提高性能的强大优势。它的缺点是,如果另一个会话尝试更新相同的记录,则更新可能会失败。所以必须中止整个事务。这些所谓的更新冲突是由MOT在提交时通过版本检查机制检测到的。 说明
阅读全文
摘要:dblink dblink是一个可以在一个openGauss数据库会话中连接到其它openGauss数据库的工具,同libpq支持的连接参数一致,可参考链接参数。openGauss默认不编译dblink,下面依次介绍如何编译和使用dblink。 编译dblink 当前dblink的源码放在contr
阅读全文
摘要:file_fdw file_fdw模块提供了外部数据封装器file_fdw,可以用来在服务器的文件系统中访问数据文件。数据文件必须是COPY FROM可读的格式,具体请参见COPY的介绍。使用file_fdw访问的数据文件是当前可读的,不支持对该数据文件的写入操作。 当前openGauss会默认编译
阅读全文
摘要:Foreign Data Wrapper openGauss的FDW(Foreign Data Wrapper)可以实现各个openGauss数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的远程数据库类型包括Oracle、Mysql(MariaDB)、openGauss(post
阅读全文
摘要:MOT SILO增强特性 SILO[对比:磁盘与MOT]凭借其基本算法流程,优于我们在研究实验中测试的许多其他符合ACID的OCC算法。然而,为了使SILO成为产品级机制,我们必须用许多在最初设计中缺失的基本功能来增强它,例如: 新增对交互式事务的支持,其中事务的SQL运行在客户端实现,而不是作为服
阅读全文
摘要:MOT SQL覆盖和限制 MOT设计几乎能够覆盖SQL和未来特性集。例如,大多数支持标准的Postgres SQL,也支持常见的数据库特性,如存储过程、自定义函数等。 下面介绍各种SQL覆盖和限制。 不支持的特性 MOT不支持以下特性: 跨引擎操作:不支持跨引擎(磁盘+MOT)的查询、视图或事务。计
阅读全文
摘要:MOT VACUUM清理 使用VACUUM进行垃圾收集,并有选择地分析数据库,如下所示。 【openGauss】 在openGauss中,VACUUM用于回收死元组占用的存储空间。在正常的openGauss操作中,删除的元组或因更新而作废的元组不会从表中物理删除。只能由VACUUM清理。因此,需要定
阅读全文
摘要:MOT本地内存和全局内存 SILO管理本地内存和全局内存,如所示。 全局内存是所有核共享的长期内存,主要用于存储所有的表数据和索引。 本地内存是短期内存,主要由会话使用,用于处理事务及将数据更改存储到事务内存中,直到提交阶段。 当事务需要更改时,SILO将该事务的所有数据从全局内存复制到本地内存。使
阅读全文
摘要:MOT并发控制机制 通过大量研究,我们找到了最佳的并发控制机制,结论为:基于SILO[的OCC算法是MOT中最符合ACID特性的OCC算法。SILO为满足MOT的挑战性需求提供了最好的基础。 说明: MOT完全符合原子性、一致性、隔离性、持久性(ACID)特性,如MOT简介所述。 下面介绍MOT的并
阅读全文
摘要:MOT部署 以下各小节介绍了各种必需和可选的设置,以达到最佳部署效果。 MOT服务器优化:x86 MOT服务器优化:基于Arm的华为TaiShan2P/4P服务器 MOT配置 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra
阅读全文
摘要:MOT测试总结 MOT比磁盘表性能提升2.5至4.1倍,在Arm/鲲鹏256核服务器上达到480万tpmC。测试结果清楚表明MOT在扩展和利用所有硬件资源方面的卓越能力。随着CPU槽位和服务器核数增加,性能会随之跃升。 MOT在Arm/鲲鹏架构下最高可达3万tpmC/核,在x86架构下最高可达4万t
阅读全文
摘要:MOT查询原生编译(JIT) MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。 这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。Lite
阅读全文
摘要:MOT持久性 持久性是指长期的数据保护(也称为磁盘持久化)。持久性意味着存储的数据不会遭受任何形式的退化或损坏,因此数据不会丢失或损坏。持久性可确保在有计划停机(例如维护)或计划外崩溃(例如电源故障)后数据和MOT引擎恢复到一致状态。 内存存储是易失的,需要电力来维护所存储的信息。另一方面,磁盘存储
阅读全文
摘要:MOT持久性概念 持久性是指长期的数据保护(也称为磁盘持久性)。持久性意味着存储的数据不会遭受任何形式的退化或破坏,因此数据不会丢失或损坏。持久性可确保在有计划停机(例如维护)或计划外崩溃(例如电源故障)后数据和MOT引擎恢复到一致状态。 内存存储是易失的,需要电源来维护所存储的信息。另一方面,磁盘
阅读全文
摘要:MOT错误消息 错误可能由多种场景引起。所有错误都记录在数据库服务器日志文件中。此外,与用户相关的错误作为对查询、事务或存储过程执行或数据库管理操作的响应的一部分返回给用户。 服务器日志中报告的错误包括函数、实体、上下文、错误消息、错误描述和严重性。 向用户报告的错误被翻译成标准PostgreSQL
阅读全文
摘要:MOT的概念 本章介绍openGauss MOT的设计和工作原理,阐明其高级特性、功能及使用方法,旨在让读者了解MOT操作上的技术细节、重要特性细节和创新点。本章内容有助于决策MOT是否适合于特定的应用需求,以及进行最有效的使用和管理。 MOT纵向扩容架构 MOT并发控制机制 扩展FDW与其他ope
阅读全文
摘要:MOT低延迟 以下是在Arm/鲲鹏两路服务器(128核)上进行测试的结果。单位为毫秒(ms)。 图 1 低延迟(90th%)性能基准 MOT的平均事务速度为2.5倍,MOT延迟为10.5ms,而基于磁盘的表延迟为23至25ms。 说明: 计算平均数时,已考虑TPC-C的5个事务分布占比。有关更多信息
阅读全文
摘要:MOT服务器优化:x86 通常情况下,数据库由以下组件绑定: CPU:更快的CPU可以加速任何CPU绑定的数据库。 磁盘:高速SSD/NVME可加速任何I/O绑定数据库。 网络:更快的网络可以加速任何SQL*Net绑定数据库。 除以上内容外,以下通用服务器设置默认使用,可能会明显影响数据库的性能。
阅读全文
摘要:MOT服务器优化:基于Arm的华为TaiShan2P/4P服务器 以下是基于Arm/鲲鹏架构的华为TaiShan 2280 v2服务器(2路128核[对比:磁盘与MOT])和TaiShan 2480 v2服务器(4路256核[对比:磁盘与MOT])上运行MOT时的建议配置。 除非另有说明,以下设置适
阅读全文
摘要:MOT复制和高可用 由于MOT集成到openGauss中,并且使用或支持其复制和高可用,因此,MOT原厂功能即支持同步复制和异步复制。 openGauss gs_ctl工具用于可用性控制和openGauss实例操作。这包括gs_ctl切换、gs_ctl故障切换、gs_ctl构建等等。 有关更多信息,
阅读全文
摘要:MOT高吞吐量 MOT高吞吐量测试结果如下。 Arm/鲲鹏2路128核 性能 下图是华为Arm/鲲鹏2路128核服务器TPC-C基准测试的结果。 一共进行了四类测试: MOT和openGauss基于磁盘的表各进行了2次测试。 其中两项测试是在单节点(无高可用性)上执行,这意味着没有向备节点执行复制。
阅读全文
摘要:MOT隔离级别 即使MOT完全兼容ACID,openGauss 1.0并非支持所有的隔离级别。下表介绍了各隔离级别,以及MOT支持和不支持的内容。 表 1 隔离级别 隔离级别 说明 READ UNCOMMITTED MOT不支持 READ COMMITTED MOT支持 READ COMMITTED
阅读全文
摘要:MOT关键技术 MOT的关键技术如下: 内存优化数据结构:以实现高并发吞吐量和可预测的低延迟为目标,所有数据和索引都在内存中,不使用中间页缓冲区,并使用持续时间最短的锁。数据结构和所有算法都是专门为内存设计而优化的。 免锁事务管理:MOT在保证严格一致性和数据完整性的前提下,采用乐观的策略实现高并发
阅读全文
摘要:MOT管理 下面介绍MOT管理。 MOT持久性 MOT恢复 MOT复制和高可用 MOT内存管理 MOT VACUUM清理 MOT统计 MOT监控 MOT错误消息 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:MOT恢复 MOT恢复的主要目标是在有计划停机(例如维护)或计划外崩溃(例如电源故障后)后,将数据和MOT引擎恢复到一致状态。 MOT恢复是随着openGauss数据库其余部分的恢复而自动执行的,并且完全集成到openGauss恢复过程(也称为冷启动)。 MOT恢复包括两个阶段: 检查点恢复:必须通
阅读全文
摘要:MOT恢复概念 MOT恢复模块提供了恢复MOT表数据所需的所有功能。恢复模块的主要目标是在计划(例如维护)关闭或计划外(例如电源故障)崩溃后,将数据和MOT引擎恢复到一致的状态。 openGauss数据库恢复(有时也称为冷启动)包括MOT表,并且随着数据库其余部分的恢复而自动执行。MOT恢复模块无缝
阅读全文
摘要:MOT恢复时间目标(RTO)和冷启动时间 高可用RTO MOT完全集成到openGauss中,包括支持主备部署的高可用场景。WAL重做日志的复制机制将把复制更改到数据库备节点并使用备节点进行重放。 如果故障转移事件发生,无论是由于计划外的主节点故障还是由于计划内的维护事件,备节点都会迅速活跃。恢复和
阅读全文
摘要:MOT监控 监控的所有语法支持基于openGauss的FDW表,包括下面的表或索引大小。此外,还存在用于监控MOT内存消耗的特殊函数,包括MOT全局内存、MOT本地内存和单个客户端会话。 表和索引大小 可以通过查询pg_relation_size来监控表和索引的大小。 例如: 数据大小 select
阅读全文
摘要:MOT检查点概念 在openGauss中,检查点是事务序列中一个点的快照,在该点上,可以保证堆和索引数据文件已经同步了检查点之前写入的所有信息。 在执行检查点时,所有脏数据页都会刷新到磁盘,并将一个特殊的检查点记录写入日志文件。 数据直接存储在内存中。MOT没有像openGauss那样存储数据,因此
阅读全文
摘要:MOT简介 openGauss引入了MOT存储引擎,它是一种事务性行存储,针对多核和大内存服务器进行了优化。MOT是openGauss数据库最先进的生产级特性(Beta版本),它为事务性工作负载提供更高的性能。MOT完全支持ACID特性,并包括严格的持久性和高可用性支持。企业可以在关键任务、性能敏感
阅读全文
摘要:MOT介绍 本章介绍了openGauss内存优化表(Memory-Optimized Table,MOT)的特性及价值、关键技术、应用场景、性能基准和竞争优势。 MOT简介 MOT特性及价值 MOT关键技术 MOT应用场景 MOT性能基准 详情查看:https://opengauss.org 详情查
阅读全文
摘要:MOT乐观并发控制 并发控制模块(简称CC模块)提供了主内存引擎的所有事务性需求。CC模块的主要目标是为主内存引擎提供各种隔离级别的支持。 乐观OCC与悲观2PL 悲观2PL(2阶段锁定)和乐观并发控制(OCC)的功能差异在于对事务完整性分别采用悲观和乐观方法。 基于磁盘的表使用悲观方法,这是最常用
阅读全文
摘要:MOT内存和存储规划 本节描述了为满足特定应用程序需求,在评估、估计和规划内存和存储容量数量时,需要注意的事项和准则,以及影响所需内存数量的各种数据,例如计划表的数据和索引大小、维持事务管理的内存以及数据增长的速度。 MOT内存规划 MOT是一种内存数据库存储引擎(IMDB),其中所有表和索引完全驻
阅读全文
摘要:MOT配置 预置MOT用于创建工作MOT。为了获得最佳效果,建议根据应用程序的特定要求和偏好自定义MOT配置(在mot.conf文件中定义)。 该文件在服务器启动时只读。如果在系统运行中编辑此文件,则必须重新加载服务器才能使修改内容生效。 mot.conf文件与postgres.conf配置文件在同
阅读全文
摘要:MOT日志记录:WAL重做日志概念 概述 预写日志记录(WAL)是确保数据持久性的标准方法。WAL的主要概念是,数据文件(表和索引所在的位置)的更改只有在记录这些更改之后才会写入,即只有在描述这些更改的日志记录被刷新到永久存储之后才会写入。 MOT全面集成openGauss的封装日志记录设施。除持久
阅读全文
摘要:MOT使用 使用MOT非常简单,以下几个小节将会进行描述。 openGauss允许应用程序使用MOT和基于标准磁盘的表。MOT适用于最活跃、高竞争和对吞吐量敏感的应用程序表,也可用于所有应用程序的表。 以下命令介绍如何创建MOT,以及如何将现有的基于磁盘的表转换为MOT,以加速应用程序的数据库相关性
阅读全文
摘要:MOT使用概述 MOT作为openGauss的一部分自动部署。有关如何计算和规划所需的内存和存储资源以维持工作负载的说明,请参阅MOT准备。参考MOT部署了解MOT中所有的配置,以及服务器优化的非必须选项。 使用MOT的方法非常简单。MOT命令的语法与基于磁盘的表的语法相同,并支持大多数标准,如Po
阅读全文
摘要:MOT数据采集速度 该测试模拟海量物联网、云端或移动端接入的实时数据流,快速持续地把海量数据注入到数据库。 本次测试涉及大量数据采集,具体如下: 1000万行数据由500个线程发送,2000轮,每个insert命令有10条记录(行),每条记录占200字节。 客户端和数据库位于不同的机器上。 数据库服
阅读全文
摘要:MOT索引 MOT索引基于最先进的Masstree[对比:磁盘与MOT]的免锁索引,用于多核系统的快速和可扩展的键值(KV)存储,通过B+树的Trie实现。在多核服务器和高并发工作负载上,性能优异。它使用各种先进的技术,如乐观锁方法、缓存感知和内存预取。 在比较了各种最先进的解决方案(如[对比:磁盘
阅读全文
摘要:MOT特性及价值 MOT在高性能(查询和事务延迟)、高可扩展性(吞吐量和并发量)甚至在某些情况下成本(高资源利用率)这些方面拥有显著优势。 低延迟(Low Latency):提供快速的查询和事务响应时间。 高吞吐量(High Throughput):支持峰值和持续高用户并发。 高资源利用率(High
阅读全文
摘要:MOT统计 统计信息主要用于性能分析或调试。在生产环境中,通常不打开它们(默认是关闭的)。统计信息主要由数据库开发人员使用,数据库用户较少使用。 对性能有一定影响,特别是对服务器。对用户的影响可以忽略不计。 统计信息保存在数据库服务器日志中。该日志位于data文件夹中,命名为postgresql-D
阅读全文
摘要:MOT外部支持工具 为了支持MOT,修改了以下外部openGauss工具。请确保使用的工具是最新版本。下面将介绍与MOT相关的用法。有关这些工具及其使用方法的完整说明,请参阅《工具与命令参考》。 gs_ctl(全量和增量) 此工具用于从主服务器创建备服务器,以及当服务器的时间线偏离后,将服务器与其副
阅读全文
摘要:MOT性能基准 我们的性能测试是基于业界和学术界通用的TPC-C基准。 测试使用了BenchmarkSQL(请参见MOT样例TPC-C基准),并且使用交互式SQL命令而不是存储过程来生成工作负载。 说明: 使用存储过程方法可能会产生更高的性能结果,因为它需要大大减少网络往返和数据库封装SQL处理周期
阅读全文
摘要:MOT样例TPC-C基准 TPC-C简介 TPC-C基准是衡量联机事务处理(OLTP)系统性能的行业标准基准。它基于一个复杂的数据库和许多不同的事务类型。这些事务类型在此基准上执行。TPC-C基准测试既不依赖硬件,也不依赖软件,因此可以在每个测试平台上运行。基准模型的官方概述,见tpc.org网站(
阅读全文
摘要:MOT应用场景 MOT可以根据负载的特点,显著加快应用程序的整体性能。MOT通过提高数据访问和事务执行的效率,并通过消除并发执行事务之间的锁和锁存争用,最大程度地减少重定向,从而提高了事务处理的性能。 MOT的极速不仅因为它在内存中,还因为它围绕并发内存使用管理进行了优化。数据存储、访问和处理算法从
阅读全文
摘要:MOT硬件 本次测试使用的服务器满足10GbE组网和以下配置: 基于Arm64/鲲鹏920的2路服务器,型号为TaiShan 2280 v2(128核),800GB RAM,1TB NVMe盘。操作系统为openEuler。 基于Arm64/鲲鹏960的4路服务器,型号为TaiShan 2480 v
阅读全文
摘要:MOT准备 下文介绍了使用MOT的前提条件以及内存和存储规划。 前提条件 MOT内存和存储规划 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:MOT资源利用率 在4路96核512GB RAM的x86服务器上测试的资源利用率如下所示。MOT能够高效持续消耗几乎所有可用的CPU资源。例如,192核390万tpmC的CPU利用率几乎达到100%。 tmpC:每分钟完成的TPC-C事务数以橙色条柱和左侧的Y轴 tpmC 表示。 CPU利用率(%)
阅读全文
摘要:MOT纵向扩容架构 纵向扩容即为同一台机器添加额外的核以增加算力。纵向扩容是传统上为单对控制器和多核的机器增加算力的常见形式。纵向扩容架构受限于控制器的可扩展性。 技术要求 MOT旨在实现以下目标: 线性扩容:MOT提供事务性存储引擎,利用单个NUMA架构服务器的所有核,以提供近线性的扩容性能。这意
阅读全文
摘要:mysql_fdw mysql_fdw是一款开源插件。openGauss基于开源的mysql_fdw Release 2.5.3 版本进行开发适配。 编译和使用mysql_fdw需要环境上包含MariaDB的开发包,所以openGauss默认不编译mysql_fdw,下面依次介绍如何编译和使用mys
阅读全文
摘要:NUMA-aware分配和亲和性 非统一内存访问(NUMA)是一种计算机内存设计,用于多重处理,其中内存访问时间取决于内存相对于处理器的位置。处理器可以利用NUMA的优势,优先访问本地内存(速度更快),而不是访问非本地内存(这意味着它不会访问另一个处理器的本地内存或处理器之间共享的内存)。 MOT内
阅读全文
摘要:Schema Schema又称作模式。通过管理Schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的Schema下而不引起冲突。 每个数据库包含一个或多个Schema。数据库中的每个Schema包含表和其他类型的对象。数据库创建
阅读全文
摘要:SSL证书管理 openGauss默认配置了通过openssl生成的安全证书、私钥。并且提供证书替换的接口,方便用户进行证书的替换。 证书生成-TLS 证书生成-TLCP 证书替换 主备证书认证配置 详情查看:https://opengauss.org 详情查看:https://docs-openg
阅读全文
摘要:查看参数值 openGauss安装后,有一套默认的运行参数,为了使openGauss与业务的配合度更高,用户需要根据业务场景和数据量的大小进行GUC参数调整。 操作步骤 以操作系统用户omm登录数据库主节点。 使用如下命令连接数据库。 gsql -d postgres -p 8000 postgre
阅读全文
摘要:查看审计结果 前提条件 审计功能总开关已开启。 需要审计的审计项开关已开启。 数据库正常运行,并且对数据库执行了一系列增、删、改、查操作,保证在查询时段内有审计结果产生。 数据库各个节点审计日志单独记录。 背景信息 只有拥有AUDITADMIN属性的用户才可以查看审计记录。有关数据库用户及创建用户的
阅读全文
摘要:查看数据 使用系统表pg_tables查询数据库所有表的信息。 openGauss=# SELECT * FROM pg_tables; 使用gsql的\d+命令查询表的属性。 openGauss=# \d+ customer_t1; 执行如下命令查询表customer_t1的数据量。 openGa
阅读全文
摘要:查看数据库连接数 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时由CREATE RO
阅读全文
摘要:查看账本历史操作记录 前提条件 系统中需要有审计管理员或者具有审计管理员权限的角色。 数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。 背景信息 只有拥有AUDITADMIN属性的用户才可以查看账本历史操作记录。有关数据库用户及创建用户的办法请
阅读全文
摘要:查询原生编译 MOT的另一个特性是,在预编译的完整查询需要执行之前,能够以原生格式(使用PREPARE语句)准备并解析这些查询。 这种原生格式方便后续更有效地执行(使用EXECUTE命令)。这种执行类型速度要快得多,因为原生格式在执行期间绕过多个数据库处理层,从而获得更好地性能。 这种分工避免了重复
阅读全文
摘要:创建表 背景信息 表是建立在数据库中的,在不同的数据库中可以存放相同的表。甚至可以通过使用模式在同一个数据库中创建相同名称的表。创建表前请先规划存储模型。 创建表 执行如下命令创建表。 openGauss=# CREATE TABLE customer_t1 ( c_customer_sk inte
阅读全文