1. 首页 > 国产数据库教程 > Kingbase教程 > 正文

kingbase教程FG005-实例初始化与配置

内容简介

本篇文章详细介绍KingbaseES数据库实例的初始化与配置过程,包括实例创建、参数配置、服务管理等内容。风哥教程参考kingbase官方文档KingbaseES管理员手册,。

通过本文的学习,您将掌握KingbaseES实例的初始化方法,了解如何配置数据库参数以优化性能,以及如何管理数据库服务。

本文适用于Oracle Linux、RHEL、国产麒麟等Linux系统环境,内容涵盖生产环境中常见的实例管理操作。

目录大纲

Part01-基础概念与理论知识

1.1 实例概念

KingbaseES实例是指数据库服务器运行时的进程和内存结构,包括:

  • 后台进程:如Postmaster、BgWriter、WalWriter等,风哥提示:
  • 共享内存:用于缓存数据和索引
  • 系统缓存:用于优化查询性能
  • 会话管理:处理客户端连接

一个实例对应一个数据库集群,包含多个数据库。在生产环境中,通常一个服务器只运行一个实例。

1.2 初始化原理

实例初始化是创建数据库集群的过程,主要包括:

  • 创建数据目录结构
  • 初始化系统表空间
  • 创建系统数据库(template0、template1、postgres)
  • 生成配置文件,学习交流加群风哥微信: itpux-com
  • 初始化日志文件

初始化完成后,数据库实例处于可运行状态,可以接受客户端连接。

Part02-生产环境规划与建议

2.1 实例规划

风哥提示:实例规划是数据库部署的重要环节,直接影响后续的性能和维护。。

在生产环境中,实例规划应考虑以下因素:

  • 硬件资源:根据业务需求选择合适的CPU、内存和存储
  • 数据量:预估数据增长趋势,规划存储容量
  • 并发量:根据用户数和查询频率配置连接数
  • 可用性:考虑高可用方案,如主备复制
  • 备份策略:规划备份方案和恢复时间目标,学习交流加群风哥QQ113257174

2.2 参数配置建议

根据不同的硬件配置,推荐以下参数设置:

硬件配置 shared_buffers work_mem maintenance_work_mem max_connections
4核8GB 2GB 8MB 256MB 100
8核16GB 4GB 16MB 512MB 200
16核32GB 8GB 32MB 1GB 300

这些参数需要根据实际业务场景进行调整,不可盲目复制。

Part03-生产环境项目实施方案

3.1 实例初始化

使用initdb命令初始化数据库实例:

步骤1:准备数据目录


# 创建数据目录
# 执行
# 输出日志
[root@fgedu.net.cn ~]# mkdir -p /kingbase/fgdata
[root@fgedu.net.cn ~]# chown -R kingbase:kingbase /kingbase/fgdata
[root@fgedu.net.cn ~]# ls -la /kingbase/fgdata/
total 8
drwxr-xr-x 2 kingbase kingbase 4096 Apr 9 10:30 .
drwxr-xr-x 5 kingbase kingbase 4096 Apr 9 10:00 ..

步骤2:执行初始化命令


# 执行初始化命令
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ initdb -D /kingbase/fgdata -E UTF8 –locale=C
The files belonging to this database system will be owned by user “kingbase”.
This user must also own the server process.
The database cluster will be initialized with locale “C”.
The default text search configuration will be set to “english”.
Data page checksums are disabled.
fixing permissions on existing directory /kingbase/fgdata … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers … 128MB
selecting default timezone … PRC
selecting dynamic shared memory implementation … posix
creating configuration files … ok
running bootstrap script … ok
performing post-bootstrap initialization … ok
WARNING: enabling “trust” authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
–auth-local and –auth-host, the next time you run initdb.
Success. You can now start the database server using:
sys_ctl -D /kingbase/fgdata -l logfile start

3.2 基础参数配置

编辑kingbase.conf文件,配置基础参数:

步骤1:编辑配置文件


# 编辑kingbase.conf文件
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ vi /kingbase/fgdata/kingbase.conf
# 修改以下参数:
listen_addresses = ‘*’ # 监听所有IP地址
port = 54321 # 端口号
max_connections = 200 # 最大连接数
shared_buffers = 4GB # 共享内存缓冲区
work_mem = 16MB # 工作内存
maintenance_work_mem = 512MB # 维护工作内存
effective_cache_size = 12GB # 有效缓存大小
random_page_cost = 1.1 # 随机页面成本
wal_buffers = 16MB # WAL缓冲区
t checkpoint_completion_target = 0.9 # 检查点完成目标
default_statistics_target = 100 # 统计信息目标

步骤2:配置pg_hba.conf文件


# 编辑pg_hba.conf文件
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ vi /kingbase/fgdata/pg_hba.conf
# 添加以下内容:
# 本地连接
host all all 127.0.0.1/32 trust
# 网络连接
host all all 192.168.1.0/24 md5
# replication连接
host replication all 192.168.1.0/24 md5

3.3 服务管理

使用sys_ctl命令管理数据库服务:

步骤1:启动数据库服务


# 启动数据库服务
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ sys_ctl start -D /kingbase/fgdata
waiting for server to start….2026-04-09 11:30:00 CST LOG: starting KingbaseES V8R6 (build 12345) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2026-04-09 11:30:00 CST LOG: listening on IPv4 address “0.0.0.0”, port 54321
2026-04-09 11:30:00 CST LOG: listening on IPv6 address “::”, port 54321
2026-04-09 11:30:00 CST LOG: listening on Unix socket “/tmp/.s.PGSQL.54321”
2026-04-09 11:30:00 CST LOG: database system was shut down at 2026-04-09 11:29:00 CST
2026-04-09 11:30:00 CST LOG: database system is ready to accept connections
done
server started

步骤2:检查服务状态


# 检查服务状态
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ sys_ctl status -D /kingbase/fgdata
pg_ctl: server is running (PID: 12345)
KingbaseES V8R6 (build 12345) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit

步骤3:停止数据库服务


# 停止数据库服务
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ sys_ctl stop -D /kingbase/fgdata
waiting for server to shut down…. done
server stopped

步骤4:重启数据库服务


# 重启数据库服务
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ sys_ctl restart -D /kingbase/fgdata
waiting for server to shut down…. done
server stopped
waiting for server to start….2026-04-09 11:35:00 CST LOG: starting KingbaseES V8R6 (build 12345) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2026-04-09 11:35:00 CST LOG: listening on IPv4 address “0.0.0.0”, port 54321
2026-04-09 11:35:00 CST LOG: listening on IPv6 address “::”, port 54321
2026-04-09 11:35:00 CST LOG: listening on Unix socket “/tmp/.s.PGSQL.54321”
2026-04-09 11:35:00 CST LOG: database system was shut down at 2026-04-09 11:34:00 CST
2026-04-09 11:35:00 CST LOG: database system is ready to accept connections
done
server started

Part04-生产案例与实战讲解

4.1 典型初始化场景

以下是一个典型的生产环境实例初始化场景:

场景:企业生产环境实例初始化

环境信息:

  • 操作系统:Oracle Linux 9.3
  • CPU:16核
  • 内存:32GB,更多视频教程www.fgedu.net.cn
  • 存储:500GB SSD

初始化步骤:

  1. 创建数据目录和归档目录
  2. 执行initdb命令初始化实例
  3. 配置数据库参数
  4. 配置远程登录
  5. 启动数据库服务
  6. 创建业务数据库和用户

创建业务数据库和用户:,更多学习教程公众号风哥教程itpux_com


# 创建业务数据库和用户
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ psql -U system -d postgres
Password for user system:
psql (KingbaseES V8R6)
Type “help” for help.
postgres=# CREATE USER fgedu WITH PASSWORD ‘Fgedu@123’ CREATEDB;
CREATE ROLE
postgres=# CREATE DATABASE fgedudb OWNER fgedu;
CREATE DATABASE
postgres=# \c fgedudb
You are now connected to database “fgedudb” as user “system”.
fgedudb=# CREATE TABLE fgedu_users (
fgedudb(# id SERIAL PRIMARY KEY,
fgedudb(# name VARCHAR(100) NOT NULL,
fgedudb(# email VARCHAR(255) UNIQUE NOT NULL,
fgedudb(# created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
fgedudb(# );
CREATE TABLE
fgedudb=# INSERT INTO fgedu_users (name, email) VALUES (‘测试用户’, ‘fgedudb@fgedu.net.cn’);
INSERT 0 1
fgedudb=# SELECT * FROM fgedu_users;
id | name | email | created_at
—-+———-+——————-+——————————-
1 | 测试用户 | fgedudb@fgedu.net.cn | 2026-04-09 11:40:00.123456+08
(1 row)
fgedudb=# \q

4.2 常见配置问题处理

在实例初始化和配置过程中,可能会遇到以下常见问题:

问题1:端口被占用

原因:指定的端口已被其他服务占用

解决方案:

  • 修改kingbase.conf文件中的port参数
  • 停止占用端口的服务
  • 使用netstat或ss命令查看端口占用情况

# 查看端口占用情况
# 执行
# 输出日志
[root@fgedu.net.cn ~]# netstat -tulpn | grep 54321
tcp 0 0 0.0.0.0:54321 0.0.0.0:* LISTEN 12345/postmaster

问题2:无法远程连接

原因:pg_hba.conf配置不正确或防火墙阻止

解决方案:

  • 检查pg_hba.conf文件中的网络连接配置,from DB视频:www.itpux.com
  • 检查防火墙是否开放了相应端口
  • 重启数据库服务使配置生效

# 开放防火墙端口
# 执行
# 输出日志
[root@fgedu.net.cn ~]# firewall-cmd –permanent –add-port=54321/tcp
success
[root@fgedu.net.cn ~]# firewall-cmd –reload
success

问题3:内存不足

原因:shared_buffers设置过大

解决方案:

  • 根据实际内存大小调整shared_buffers参数
  • 一般建议设置为物理内存的25%

Part05-风哥经验总结与分享

5.1 初始化最佳实践

  • 目录规划:采用标准的目录结构,便于后续管理
  • 参数调优:根据硬件配置和业务需求调整参数
  • 安全配置:合理配置pg_hba.conf,避免安全风险
  • 日志管理:配置适当的日志级别,便于问题排查
  • 备份策略:初始化后立即设置备份策略

5.2 性能优化建议

以下是一些性能优化建议:

系统参数优化


# 优化系统参数
# 执行
# 输出日志
[root@fgedu.net.cn ~]# vi /etc/sysctl.conf
# 添加以下参数:
kernel.shmmax = 68719476736
kernel.shmall = 16777216
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
vm.swappiness = 10
[root@fgedu.net.cn ~]# sysctl -p

数据库参数优化


# 优化数据库参数
# 执行
# 输出日志
[kingbase@fgedu.net.cn ~]$ vi /kingbase/fgdata/kingbase.conf
# 修改以下参数:
# 查询优化
random_page_cost = 1.1
effective_cache_size = 24GB
# 写入优化
wal_buffers = 16MB
checkpoint_completion_target = 0.9
# 维护优化
autovacuum = on
autovacuum_max_workers = 4
autovacuum_naptime = 10min

风哥提示:性能优化是一个持续的过程,需要根据实际运行情况不断调整。,。

通过以上步骤,您已经成功完成了KingbaseES实例的初始化与配置。在实际生产环境中,还需要根据具体的业务需求进行进一步的优化和调整。

本文档风哥教程参考kingbase官方文档KingbaseES管理员手册编写,。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息