暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss训练营学习心得

原创 王健 2021-09-14
620

OpenGauss数据库初识

​ openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核源自PostgreSQL,深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。openGauss支持SQL2003标准语法,支持主备部署的高可用关系型数据库。

openGauss企业级增强特性

• 多种存储模式支持复合业务场景。

向量化执行和行列混合引擎

• NUMA化数据结构支持高性能。

通过NUMA化内核数据结构,支持线程亲核性处理,可以支持百万级tpmC。

• 高并发&高性能

openGauss通过服务器端的线程池,可以支持1W并发链接。

通过CSN快照,去除快照瓶颈,实现多版本访问,读写互不阻塞。

通过增量检查点,避免全页写导致的性能波动,实现业务性能平稳运行。

openGauss的三大优势

高性能:

•NUMA-ware数据结构、增量检查点、大内存缓冲区管理、并行Redo、SQL bypass等,实现百万级tpmC。

•服务端连接池、线程池,支持万级并发。

高可用:

•支持主备同步,异步多种部署模式。

•数据页CRC校验,损坏数据页通过备机自动修复。

•备机并行恢复,RTO<10s(10秒内可升主提供服务。)

复合应用场景:

•行存储,支持业务数据频繁更新场景。

•列存储,支持业务数据追加和分析场景。

•内存表,支持高吞吐,低时延,极高性能场景。

openGauss和其他数据库的对比

分类 Oracle DB2 mysql openGauss
实例 一个Oracle的实例由一系列后台进程和内存结构组成。一个数据库可以有多个实例(RAC)。一个实例仅管理一个数据库。 DB2实例是单进程多线程模式,一个实例可以管理多个库。数据库级别的内存资源不共享。 mysql实例也是进程和内存结构组成,一个实例也可以看做是一个数据库。内部的database概念等同于schema openGauss实例是单进程多线程模式,一个实例可以管理多个库,数据库共享内存资源。
数据库 Oracle数据库是数据的物理储存,包括数据文件ORA或DBF,控制文件,联机文件,日志文件,参数文件。 Orale创建数据库的过程是:创建表空间——创建用户——由用户去创建表。 DB2数据库是数据的物理存储,包括数据,日志,控制文件等。DB2数据库之间不共享内存资源。表空间和schema等都是数据库对象,数据库间不共享。 Mysql数据库是内部对象的逻辑分割,和schema是同义词。这是和其他数据库差别很大的。 数据库用于管理各类数据对象,与其他数据库隔离。创建数据对象时可以制定对应的表空间,如果不指定相应的表空间,相关的对象会默认存在PG_DEFAULT空间中。数据库管理对象可分布在多个表空间上。 CREATE TABLE操作实际上通过拷贝初始化时生成的模板数据库来创建新数据库。默认情况下,拷贝template0。因此避免使用任何手段连接以及操作两个模板数据库。
表空间 表空间是Oracle对物理数据库上相关数据文件的逻辑映射。一个数据库逻辑上被划分为一个或多个表空间。每个表空间包含了逻辑上相关联的一组结构。每个数据库至少有一个表空间。每个表空间由同一磁盘上的一个或多个数据文件组成。一个数据文件只能属于一个表空间。 DB2表空间是对相关数据文件的逻辑映射。表空间管理的容器是物理文件。表空间属于数据库内的对象。建表的时候需要指定表空间,否则使用默认表空间。 在innodb存储引擎中数据是按照表空间来组织存储的,映射到物理文件。 在openGauss中,表空间是一个目录,可以存在多个表空间。里面存储的是它所包含的数据库的各种物理文件。由于表空间是一个目录,因此其仅是起到了物理隔离的作用,数据的管理功能依赖于文件系统。 每个表空间可以对应多个数据库,一个数据库管理的对象分布在多个表空间上。每张表只能属于一个表空间,也只能对应一个数据库。每张表对应的数据文件必须在同一个表空间中。
schema Oracle中模式与用户是一一对应的关系,模式是不能单独创建的。想要创建一个新的模式,只能通过创建一个新的用户的方式解决。 DB2模式是对表和索引等数据库对象的逻辑划分。可以单独创建。模式和用户是弱绑定的 模式是对表和索引等数据库对象的逻辑划分。可以单独创建。模式和用户是弱绑定的 openGauss的模式是对数据库做一个逻辑分割。所有的数据库对象都建立在模式下面。openGauss的模式和用户是弱绑定的,用户需要先创建模式然后创建该模式下的数据库对象。
用户角色 用户是在实例下建立的。不同实例中可以建相同名字的用户。角色是一组权限的集合,将角色赋予用户,用户就拥有角色的全部权限。 DB2的用户认证是第三方的,例如操作系统用户。但是权限的管理是在数据库内部的。 mysql用户不仅区分名称,也区分来源。 openGauss使用用户和角色来控制对数据库的访问。根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或一组数据库用户。 在openGauss中角色和用户之间的区别只在于角色默认是没有LOGIN权限的。在openGauss中一个用户唯一对应一个角色,不过可以使用角色叠加来跟灵活地进行管理。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论