GreatSQL社区

搜索

reddey

国产数据库红石PG的功能介绍和安装

reddey 已有 30 次阅读2025-9-23 14:54 |系统分类:运维实战


前几天在看微信订阅号的文章时,无意中看到了红石PG发布的技术文章。在文章的末尾,按照提示加入了红石PG的微信群。由于国内的PG分支太多,这个分支比较小众,也没有听到过。打开红石PG的官网,了解了一下此版本的技术特性和介绍。官方的网址如下https://www.rockdata.net/zh-cn/。

为什么选择 Redrock Postgres?

PostgreSQL 是一个高级的关系数据库管理系统,支持 SQL 标准的扩展子集,包括事务,外键,子查询,触发器,用户定义的类型和函数。简而言之,PostgreSQL 在数据一致性、稳定性、高性能、功能丰富、开发人员友好等方面已经获得了良好的声誉。

尽管 PostgreSQL 在大多数场景下表现良好,但仍有一些需要改进的地方,这正是 Redrock Postgres 为实现的目标:

1、引入撤消日志和标记删除索引记录,实现就地更新,以及在执行删除或非就地更新的事务提交后立即重用空间,让应用的 UPDATE/DELETE 操作执行得更加稳定,提高存储空间利用率。

2、在不更新每个索引的情况下执行相关索引列的更新,减少写入放大,提高存储 IO 利用率,延长存储设备的可用周期。

3、给索引记录标记事务状态信息,基于索引扫描的 SELECT 操作将会执行得更加稳定,

采用回滚段事务表记录项标识事务 ID,解决事务号翻转的问题 系统无需定期触发高风险的冻结操作,让系统常年处于可预期的稳定运行状态中

4、无需定期对表和索引进行重量级的清理动作,让您的数据库系统整体运行更加稳定,

基于撤消日志位置实现的子事务,您可以放心地使用保存点、存储过程异常处理代码块这些基础特性。

5、64 位事务号,无需定期对表数据进行全量冻结。

从上面功能特性看,几乎每一条都和开源PG数据库有差别,特别是最后一条64位事务号,这一点差别太大,用户几乎不用再担心事务ID回卷问题。我还专门咨询了红石PG的技术人员,你们的PG数据库的事务号是64位吗?对方确定回复是的。

总体来说,上面的5个技术特性还是比较亮眼的,几乎颠覆了我对开源PG数据库的原有技术特性的一些认识。

至于红石PG安装步骤非常简单,这里以二进制安装为例子,由于是二进制安装,不是编译安装,编译安装要三板斧,二进制安装只要把压缩包解压一下,然后再初始化一下数据目录就可以启动数据库了。以下直接引用官方的安装文档,内容比较简单。

Redrock Postgres 针对 x86 和 ARM 的硬件架构,提供了 TAR 格式的二进制软件包,您可以在通用的 Linux 上面下载进行解压安装。

安装软件包

安装准备

使用您的root帐户登录到主机,并运行以下命令,在系统上创建一个名为postgres的用户组和一个名为postgres的用户:

# groupadd postgres

# useradd -g postgres -s /bin/bash -m postgres

# passwd postgres

安装 Redrock Postgres

下载 Linux 的 TAR 软件包,选定安装路径(例如:/usr/local),并执行以下命令进行安装:

# cd /usr/local

# tar xf ~/redrock-.linux.x86_64-binaries.tar.gz

在上面的命令中,version 的值表示 Redrock Postgres 的版本号,例如:2.2-1

安装布局

使用二进制软件包解压安装 Redrock Postgres 会导致在系统目录下创建文件和资源,如下表所示。

表 2. Redrock Postgres 安装布局

文件或资源 位置

可执行文件 /usr/local/redrock/bin

程序库 /usr/local/redrock/lib

服务端和插件文档 /usr/local/redrock/doc

模板和其他共享数据 /usr/local/redrock/share

安装设置

安装软件包后,需要初始化和配置数据库。

创建数据目录

PostgreSQL 数据目录包含数据库的所有数据文件。环境变量PGDATA用于指定数据目录路径。您可以进入到一个自定义的挂载目录(例如:/u01),该目录应该具有主机中大部分的可用磁盘空间,然后创建一个postgres用户为拥有者的文件夹pgdata:

# cd /u01

# mkdir pgdata

# chown postgres:postgres pgdata

配置环境变量

如果你安装到/usr/local/redrock或者其他默认不在搜索路径中的地方,那你应该在你的PATH环境变量里面增加一个/usr/local/redrock/bin。严格来说,这些都不是必须的,但这么做可以让你使用 PostgreSQL 更方便。

要做这些事情,你可以使用postgres帐户登录到主机,把下面几行加到你的 shell 启动文件,如~/.bash_profile(如果想影响所有用户就放在/etc/profile):

PATH=/usr/local/redrock/bin:$PATH

export PATH

PGDATA=/u01/pgdata

export PGDATA

仅将环境变量添加到用户的 bash 配置文件不会自动导出它。但是,该变量将在用户下次登录时导出。要立即将所有更改应用于 bash_profile,请使用 source 命令。

source ~/.bash_profile

初始化数据

使用您的postgres帐户登录到主机,执行类似如下的命令,在PGDATA中初始化数据库:

$ initdb

要启动数据库服务,请使用:

$ pg_ctl start

安装后配置调整

修改数据目录下的pg_hba.conf文件,以定义从网络中其他主机访问 PostgreSQL 服务器使用的访问控制策略,修改 IPv4 网络访问控制策略:从本机地址 127.0.0.1 更改为接受所有主机访问请求。找到下面行:

# IPv4 local connections:

host    all             all             127.0.0.1/32            md5

并将其更改为:

# IPv4 local connections:

host    all             all             0.0.0.0/0            md5

修改数据目录下的postgresql.conf文件,通过取消注释以下参数行并设置参数值为 * 而不是 localhost 来允许来自所有主机的访问连接:

listen_addresses = '*'

重启数据库服务以更新配置参数:

$ pg_ctl restart

在生产环境中,还应设置 TLS 安全通信,并且应考虑配置数据复制或基于快照的备份。有关这些配置,请参阅 PostgreSQL 在线文档。

最后展示一下安装登录后的效果

[postgres@localhost ~]$ psql

psql (17.4 - redrock 3.2)

Type "help" for help.

postgres=# select version();

                                                       version

-----------------------------------------------------------------------------------------

------------------------------

PostgreSQL 17.4 - redrock 3.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 201506

23 (Red Hat 4.8.5-44), 64-bit

(1 row)

从版本上的看,目前redrock 3.2是基于PostgreSQL 17.4的。由于PG18的正式版本将要推出,红石PG的技术人员告诉我明天将要推出基于PG18的新版本redrock。


评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2025-9-26 03:04 , Processed in 0.016947 second(s), 9 queries , Redis On.
返回顶部