kingbase金仓安装-kingbase金仓V8R6 for RHEL 9安装配置及升级迁移详细过程
1. 硬件环境检查
在安装kingbase金仓数据库之前,必须对服务器的硬件环境进行全面检查,确保满足kingbase金仓V8R6的最低要求。更多学习教程www.fgedu.net.cn
# free -h
total used free shared buff/cache available
Mem: 64G 2.2G 60G 9.1M 1.8G 61G
Swap: 32G 0B 32G
# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9.1M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 50G 18G 33G 35% /
/dev/sdb1 500G 25G 475G 5% /data
# 检查CPU核心数
# nproc
32
# 检查系统架构
# uname -m
x86_64
2. 操作系统检查
kingbase金仓V8R6支持Red Hat Enterprise Linux 7.0及以上版本。本文以RHEL 9.0为例。学习交流加群风哥微信: itpux-com
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.0 (Plow)
# 检查内核版本
# uname -r
5.14.0-70.22.1.el9_0.x86_64
# 检查SELinux状态
# getenforce
Disabled
# 关闭SELinux(如未关闭)
# vi /etc/selinux/config
SELINUX=disabled
# 检查防火墙状态
# systemctl status firewalld
# 开放kingbase金仓默认端口(54321)
# firewall-cmd –permanent –add-port=54321/tcp
# firewall-cmd –reload
3. 安装前准备
安装kingbase金仓数据库前,需要进行一系列准备工作,包括创建用户、目录结构和配置系统参数。
# groupadd kingbase
# useradd -g kingbase kingbase
# passwd kingbase
Changing password for user kingbase.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# 创建安装目录
# mkdir -p /data/kingbase/ESV8R6
# mkdir -p /data/kingbase/data
# mkdir -p /backup/kingbase
# chown -R kingbase:kingbase /data/kingbase
# chown -R kingbase:kingbase /backup/kingbase
# chmod -R 755 /data/kingbase
# vi /etc/sysctl.conf
# 添加以下参数
fs.file-max = 6815744
kernel.shmmax = 34359738368
kernel.shmall = 8388608
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
# 使参数生效
# sysctl -p
# vi /etc/security/limits.conf
# 添加以下内容
kingbase soft nproc 2047
kingbase hard nproc 16384
kingbase soft nofile 1024
kingbase hard nofile 65536
kingbase soft stack 10240
kingbase hard stack 32768
4. kingbase金仓软件安装
kingbase金仓V8R6软件安装可以通过图形化界面或命令行方式进行。本文以命令行安装为例。
# su – kingbase
# 挂载安装光盘或上传安装文件
$ mkdir -p /tmp/kingbase
$ mount -o loop KingbaseESV8R6_Linux_x86_64.iso /tmp/kingbase
# 执行安装命令
$ cd /tmp/kingbase
$ ./setup.sh -i
# 安装过程交互
请选择安装语言 [1.中文 2.English]:1
请输入安装目录 [/opt/Kingbase/ES/V8R6]:/data/kingbase/ESV8R6
请选择安装类型 [1.典型安装 2.服务器安装 3.客户端安装 4.自定义安装]:1
请输入数据目录 [/data/kingbase/ESV8R6/data]:/data/kingbase/data
请设置数据库密码:
请确认数据库密码:
请输入端口号 [54321]:54321
安装前小结
安装位置: /data/kingbase/ESV8R6
数据目录: /data/kingbase/data
是否确认安装? (Y/y:是 N/n:否):Y
# /data/kingbase/ESV8R6/install/script/root.sh
正在执行root.sh脚本…
创建KingbaseESV8R6服务…
Created symlink /etc/systemd/system/multi-user.target.wants/KingbaseESV8R6.service → /usr/lib/systemd/system/KingbaseESV8R6.service.
启动KingbaseESV8R6服务…
KingbaseESV8R6服务启动成功
5. 数据库配置
安装完成后,需要创建和配置数据库实例。
# systemctl start KingbaseESV8R6
# systemctl enable KingbaseESV8R6
# 连接数据库
$ /data/kingbase/ESV8R6/Server/bin/ksql -U system -d test
# 创建数据库
ksql (V8.6.0)
Type “help” for help.
test=# CREATE DATABASE fgedudb;
CREATE DATABASE
# 切换到新数据库
test=# \c fgedudb
You are now connected to database “fgedudb” as user “system”.
$ vi /data/kingbase/data/fgedudb/kingbase.conf
# 修改以下参数
shared_buffers = 8GB
work_mem = 64MB
maintenance_work_mem = 1GB
random_page_cost = 1.1
effective_cache_size = 24GB
# 重启数据库服务
# systemctl restart KingbaseESV8R6
6. 测试验证
数据库创建完成后,需要进行测试验证,确保数据库正常运行。学习交流加群风哥QQ113257174
$ /data/kingbase/ESV8R6/Server/bin/ksql -U system -d fgedudb
# 创建测试表
fgedudb=# CREATE TABLE fgedu_employees (
fgedudb(# emp_id SERIAL PRIMARY KEY,
fgedudb(# emp_name VARCHAR(50),
fgedudb(# salary NUMERIC(10,2),
fgedudb(# hire_date DATE
fgedudb(# );
CREATE TABLE
# 插入测试数据
fgedudb=# INSERT INTO fgedu_employees (emp_name, salary, hire_date) VALUES (‘张三’, 5000.00, CURRENT_DATE);
fgedudb=# INSERT INTO fgedu_employees (emp_name, salary, hire_date) VALUES (‘李四’, 6000.00, CURRENT_DATE);
fgedudb=# COMMIT;
# 查询测试数据
fgedudb=# SELECT * FROM fgedu_employees;
emp_id | emp_name | salary | hire_date
——–+———-+——–+————-
1 | 张三 | 5000.00 | 2026-03-31
2 | 李四 | 6000.00 | 2026-03-31
(2 rows)
7. 备份配置
为确保数据安全,需要配置数据库备份策略。
$ /data/kingbase/ESV8R6/Server/bin/ksql -U system -d fgedudb
fgedudb=# ALTER SYSTEM SET archive_mode = ‘on’;
fgedudb=# ALTER SYSTEM SET archive_command = ‘cp %p /backup/kingbase/arch/%f’;
fgedudb=# SELECT pg_reload_conf();
# 创建全量备份脚本
$ vi /data/kingbase/scripts/full_backup.sh
#!/bin/bash
BACKUP_DIR=/backup/kingbase/full
DATE=$(date +%Y%m%d%H%M%S)
mkdir -p $BACKUP_DIR
/data/kingbase/ESV8R6/Server/bin/pg_dump -U system -d fgedudb -F c -f $BACKUP_DIR/fgedudb_full_$DATE.backup
# 赋予执行权限
$ chmod +x /data/kingbase/scripts/full_backup.sh
# 配置定时任务
$ crontab -e
# 添加每日凌晨2点执行全量备份
0 2 * * * /data/kingbase/scripts/full_backup.sh
8. 升级迁移
本节介绍kingbase金仓数据库的升级和迁移方法。更多学习教程公众号风哥教程itpux_com
8.1 数据库升级
# systemctl stop KingbaseESV8R6
# 备份当前数据库
# cp -r /data/kingbase/data /backup/kingbase/backup_before_upgrade
# 执行升级命令
$ /data/kingbase/ESV8R6/install/script/upgrade.sh
# 启动数据库服务
# systemctl start KingbaseESV8R6
# 验证升级结果
$ /data/kingbase/ESV8R6/Server/bin/ksql -U system -d fgedudb
fgedudb=# SELECT version();
version
———————————————————————————————————
KingbaseES V8.6.0 build 12345 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9), 64-bit
(1 row)
8.2 数据库迁移
$ /data/kingbase/ESV8R6/Server/bin/pg_dump -U system -d fgedudb -F c -f /backup/kingbase/migration/fgedudb.dump
# 将导出文件复制到目标服务器
$ scp /backup/kingbase/migration/fgedudb.dump kingbase@target_host:/backup/kingbase/migration/
# 在目标服务器执行导入
$ /data/kingbase/ESV8R6/Server/bin/pg_restore -U system -d fgedudb -F c /backup/kingbase/migration/fgedudb.dump
# 验证迁移结果
$ /data/kingbase/ESV8R6/Server/bin/ksql -U system -d fgedudb
fgedudb=# SELECT COUNT(*) FROM fgedu_employees;
count
——-
2
(1 row)
9. 性能优化
为提高kingbase金仓数据库性能,需要进行一系列参数优化。
$ vi /data/kingbase/data/fgedudb/kingbase.conf
# 优化内存参数
shared_buffers = 8GB
work_mem = 64MB
maintenance_work_mem = 1GB
effective_cache_size = 24GB
# 优化查询参数
random_page_cost = 1.1
effective_io_concurrency = 200
# 优化写入参数
wal_buffers = 16MB
checkpoint_completion_target = 0.9
max_wal_size = 2GB
min_wal_size = 80MB
# 重启数据库服务
# systemctl restart KingbaseESV8R6
$ /data/kingbase/ESV8R6/Server/bin/ksql -U system -d fgedudb
fgedudb=# SHOW shared_buffers;
shared_buffers
—————-
8GB
(1 row)
fgedudb=# SHOW work_mem;
work_mem
———-
64MB
(1 row)
10. 故障排查
本节介绍kingbase金仓数据库常见故障的排查方法。from:fengge
10.1 数据库无法启动
$ cat /data/kingbase/data/fgedudb/kingbase.log
# 检查数据库服务状态
# systemctl status KingbaseESV8R6
# 检查端口是否被占用
# netstat -tuln | grep 54321
10.2 连接失败
$ ping localhost
# 检查防火墙设置
# firewall-cmd –list-ports
# 检查数据库服务状态
# systemctl status KingbaseESV8R6
10.3 性能问题
# top
# 查看数据库会话状态
$ /data/kingbase/ESV8R6/Server/bin/ksql -U system -d fgedudb
fgedudb=# SELECT pid, usename, application_name, state, query FROM pg_stat_activity WHERE state = ‘active’;
# 查看慢查询
fgedudb=# SELECT * FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10;
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
