一、openGauss与鲲鹏平台
openGauss是一款开源关系型数据库,它源自PostgreSQL,在内核层面做了大量优化,尤其在鲲鹏ARM架构上,针对多核并发、内存管理、网络IO进行了深度适配。
环境信息:
操作系统:openEuler 22.03 Server
架构:aarch64(鲲鹏)
配置:4VCPUs 8GiB
openGauss版本:5.1.0
二、安装前准备
2.1 系统环境检查
2.2 创建数据库用户和目录
openGauss不允许用root运行,需要创建专用的操作系统用户:
说明:sudo passwd omm是交互式命令,执行后根据提示输入密码并确认。后续切换用户时需要用到此密码。
2.3 配置系统参数
openGauss对系统参数有要求,需要调整内核参数和资源限制:
2.4 安装依赖
三、安装openGauss
3.1 下载安装包
openGauss提供多种安装包,极简版适合学习和测试,企业版适合生产环境。本文使用极简版。
3.2 初始化数据库实例
初始化过程输出:
持久化环境变量(推荐):将下面三行追加到 ~/.bashrc,这样每次登录 omm 用户时自动生效,无需重复 export:
3.3 配置远程访问
默认只允许本地连接,需要修改配置以支持远程访问:
五、创建业务数据库和用户
六、注册为系统服务
将openGauss注册为systemd服务,实现开机自启和统一管理:
七、总结
openGauss在鲲鹏平台上的安装部署并不复杂,核心步骤是:准备系统参数、创建用户、初始化实例、配置远程访问、启动验证。基础调优主要围绕内存分配、连接数和WAL日志三个方向,需要根据服务器配置和业务负载来调整。
一、openGauss与鲲鹏平台
openGauss是一款开源关系型数据库,它源自PostgreSQL,在内核层面做了大量优化,尤其在鲲鹏ARM架构上,针对多核并发、内存管理、网络IO进行了深度适配。
环境信息:
操作系统:openEuler 22.03 Server
架构:aarch64(鲲鹏)
配置:4VCPUs 8GiB
openGauss版本:5.1.0
二、安装前准备
2.1 系统环境检查
2.2 创建数据库用户和目录
openGauss不允许用root运行,需要创建专用的操作系统用户:
说明:
sudo passwd omm是交互式命令,执行后根据提示输入密码并确认。后续切换用户时需要用到此密码。2.3 配置系统参数
openGauss对系统参数有要求,需要调整内核参数和资源限制:
2.4 安装依赖
三、安装openGauss
3.1 下载安装包
openGauss提供多种安装包,极简版适合学习和测试,企业版适合生产环境。本文使用极简版。
3.2 初始化数据库实例
初始化过程输出:
3.3 配置远程访问
默认只允许本地连接,需要修改配置以支持远程访问:
# 修改pg_hba.conf,添加远程访问规则 echo "host all all 0.0.0.0/0 sha256" >> /home/omm/data/pg_hba.conf # 修改postgresql.conf,监听所有地址(兼容注释和未注释两种格式) sed -i "s/^[#]*[ ]*listen_addresses[ ]*=.*$/listen_addresses = '*'/" /home/omm/data/postgresql.conf ``` ### 3.4 启动数据库 ``` # 确保环境变量已设置(如果新开shell需要重新执行) export GAUSSHOME=/home/omm/openGauss export PATH=$GAUSSHOME/bin:$PATH export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH # 启动openGauss gs_ctl start -D /home/omm/data -l /home/omm/data/logfile # 输出: # [2026-04-29 17:30:00.000][8560][][gs_ctl]: gs_ctl started, datadir is /home/omm/data # [2026-04-29 17:30:01.000][8560][][gs_ctl]: another server might be running # [2026-04-29 17:30:02.000][8560][][gs_ctl]: waiting for server to start... done # [2026-04-29 17:30:02.000][8560][][gs_ctl]: server started ``` ### 3.5 验证安装 ``` # 使用gsql连接数据库 gsql -d postgres -p 5432 # 输出: # gsql ((openGauss 5.1.0 build ...) compiled at 2024-01-01 00:00:00 commit 0 last mr ) # Non-SSL connection (SSL connection is recommended when require high security) # Type "help" for help. # # openGauss=# # ⚠️ openGauss 5.1.0 首次登录必须修改默认密码,否则无法执行查询 # 将 omm 用户的密码修改为自定义密码(例如 openGauss@2026) openGauss=# ALTER ROLE omm IDENTIFIED BY 'openGauss@2026' REPLACE 'Admin@123'; # 输出:ALTER ROLE # 查看版本 openGauss=# SELECT version(); # version # --------------------------------------------------------------------------------------------------------- # (openGauss 5.1.0 build 0f5183f7) compiled at 2024-01-01 00:00:00 commit 0 last mr on aarch64-unknown-linux-gnu # (1 row) # 查看数据库列表 openGauss=# \l # List of databases # Name | Owner | Encoding | Collate | Ctype | Access privileges # -----------+-------+----------+---------+-------+------------------- # postgres | omm | UTF8 | C | C | # template0 | omm | UTF8 | C | C | =c/omm + # | | | | | omm=CTc/omm # template1 | omm | UTF8 | C | C | =c/omm + # | | | | | omm=CTc/omm # (3 rows) # 退出 openGauss=# \q ``` ## 四、基础调优 ### 4.1 内存参数调优 **openGauss的内存配置直接影响性能。核心参数在**`postgresql.conf`中修改: ``` # 编辑配置文件 vim /home/omm/data/postgresql.conf ``` **关键参数调整(以8GB内存服务器为例):** | **参数** | **默认值** | **建议值** | **说明** | | -------------------------- | ---------- | ---------- | ---------------------------------- | | **shared\_buffers** | **128MB** | **2GB** | **共享缓冲区,建议为内存的25%** | | **effective\_cache\_size** | **4GB** | **6GB** | **查询优化器的缓存估计值** | | **work\_mem** | **64MB** | **128MB** | **排序和哈希操作的内存上限** | | **maintenance\_work\_mem** | **512MB** | **1GB** | **维护操作(VACUUM等)的内存上限** | ``` # 修改后重启生效(如环境变量未设置,先执行 export GAUSSHOME=/home/omm/openGauss) gs_ctl restart -D /home/omm/data -l /home/omm/data/logfile ``` ### 4.2 连接数调优 ``` # 在gsql中查看当前连接数配置 gsql -d postgres -p 5432 -c "SHOW max_connections;" # 输出:100 # 修改最大连接数(postgresql.conf) # max_connections = 500 ``` **连接数不是越大越好,每个连接占用内存。公式参考:**`shared_buffers + (work_mem * max_connections) < 总内存`。 ### 4.3 WAL日志调优 **WAL(Write-Ahead Log)是openGauss的数据安全保障机制,也是IO密集型操作。以下参数添加到**`postgresql.conf`中: ``` # WAL相关参数 wal_level = logical # 逻辑复制级别(支持更多功能) max_wal_size = 2GB # WAL日志最大尺寸 min_wal_size = 512MB # WAL日志最小尺寸 checkpoint_completion_target = 0.8 # 检查点完成目标 ``` ### 4.4 查看运行状态 ``` # 查看数据库运行状态(如环境变量未设置,先执行下面的export) # export GAUSSHOME=/home/omm/openGauss # export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH gs_ctl query -D /home/omm/data # 在gsql中查看活动连接 gsql -d postgres -p 5432 -c "SELECT state, count(*) FROM pg_stat_activity GROUP BY state;" # 输出示例: # state | count # --------+------- # active | 1 # idle | 2 # (2 rows) # 查看数据库大小 gsql -d postgres -p 5432 -c "SELECT pg_size_pretty(pg_database_size('postgres'));" # 输出:77 MB五、创建业务数据库和用户
# 连接数据库 gsql -d postgres -p 5432 # 创建数据库用户 CREATE USER appuser WITH PASSWORD 'Kunpeng@2026'; # 创建数据库并指定所有者 CREATE DATABASE appdb OWNER appuser; # 授权 GRANT ALL PRIVILEGES ON DATABASE appdb TO appuser; # 切换到新数据库 \c appdb # 创建测试表 CREATE TABLE test_kunpeng ( id SERIAL PRIMARY KEY, name VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); # 插入测试数据 INSERT INTO test_kunpeng (name) VALUES ('鲲鹏测试数据1'), ('鲲鹏测试数据2'); # 查询验证 SELECT * FROM test_kunpeng; # 输出: # id | name | created_at # ----+-----------------+---------------------------- # 1 | 鲲鹏测试数据1 | 2026-04-29 17:45:00.123456 # 2 | 鲲鹏测试数据2 | 2026-04-29 17:45:00.234567 # (2 rows)六、注册为系统服务
将openGauss注册为systemd服务,实现开机自启和统一管理:
七、总结
openGauss在鲲鹏平台上的安装部署并不复杂,核心步骤是:准备系统参数、创建用户、初始化实例、配置远程访问、启动验证。基础调优主要围绕内存分配、连接数和WAL日志三个方向,需要根据服务器配置和业务负载来调整。