Kingbase--单机部署完整流程

目录

一、安装kingbase数据库

二、修改kingbase.conf参数

[三、数据库自启用(需要先将服务停掉)sys_ctl stop](#三、数据库自启用(需要先将服务停掉)sys_ctl stop)

四、逻辑备份(kingbae用户执行)

五、物理备份


提前准备好安装包并上传到服务器上(安装包根据对应的系统和cpu去官网下载)

一、安装kingbase数据库

1、创建kingbase用户

需要用kingbase用户去执行安装

(root用户执行)

创建用户和用户组

groupadd kingbase

useradd -m -d /home/kingbase kingbase -g kingbase

递归创建安装目录

mkdir -p /home/kingbase/KingbaseES/V9

递归修改属主和属组

chown -R kingbase:kingbase /home/kingbase/

递归修改 /home/kingbase 目录及其下所有文件 / 子目录的权限,为文件 / 目录的属主(所有者)添加读(r)和写(w)权限。

chmod -R u+rw /home/kingbase

挂载软件包

mount -o loop kingbase软件包ios /mnt

非交互式设置kingbase用户密码

echo "kingbase" | passwd --stdin kingbase

切换到kingbase用户

su - kingbase

(kingbase执行)

进入挂载目录/mnt

cd /mnt

执行安装脚本 注意(-i console)是命令行安装,不加这个就是图形化界面安装

./setup.sh -i console

这里需要手动初始化数据库(可自定义data数据目录的路径)

安装好之后设置环境变量(为了方便)或者可以使用 ~/.bashrc这个环境变量

环境变量

vi ~/.bashrc

添加如下

export KINGBASE_DATA=/home/kingbase/KingbaseES/V9/data

export PATH=$PATH:/home/kingbase/KingbaseES/V9/Server/bin

立刻生效加载环境变量

source ~/.bashrc

二、修改kingbase.conf参数

(修改kingbase数据库核心配置文件)

vim /home/kingbase/KingbaseES/V9/data/kingbase.conf

archive_mode = on

archive_command = ''

添加的这三个都是 Kingbase(人大金仓)数据库的安全类扩展插件,主要用于强化数据库的账号安全、密码管理和操作审计能力,是企业级数据库安全管控的核心配置

在 shared_preload_libraries 行最后添加 passwordcheck, identity_pwdexp, sysaudit

passwordcheck:密码强度校验插件

核心作用:强制规范数据库用户的密码复杂度,防止弱密码导致的安全风险。

identity_pwdexp:密码有效期管理插件

核心作用:实现数据库用户密码的生命周期管理,强制密码定期更换。

sysaudit:数据库操作审计插件

核心作用:全面记录数据库的所有关键操作,形成不可篡改的审计日志,满足合规审计要求。

shared_buffers = 1GB

effective_cache_size = 2GB

min_wal_size = 2GB

max_wal_size = 8GB

maintenance_work_mem = 2GB

checkpoint_completion_target = 0.9

checkpoint_timeout = 30min

max_connections=1000

logging_collector = 'on'

log_destination = 'stderr'

log_directory = '../sys_log'

log_filename = 'kingbase-%d.log'

log_truncate_on_rotation = 'on'

log_rotation_age = 1440

log_rotation_size = 500MB

passwordcheck.enable = on 开启密码校验强度

passwordcheck.password_condition_digit = 2 密码中数字最少个数2个

passwordcheck.password_condition_letter = 2 密码中字母最少个数2个

passwordcheck.password_condition_punct = 1 密码中特殊符号最少个数1个

passwordcheck.password_length = 8 密码最小长度8

sys_audlog.error_user_connect_times = 5 登录失败连续次数5

sys_audlog.error_user_connect_interval = 10 登录失败限制时长10分钟

wal_level='replica' WAL日志级别,replica副本级

archive_mode = on 归档模式开启

archive_command = '' 归档命令

重启数据库

sys_ctl restart

数据库优化(上面我们已经添加了优化配置)这个的优化脚本我们就不需要做了

find /home/ -name op*database*sh

sh optimize_database_conf.sh

tail -f /home/kingbase/KingbaseES/V9/data/kingbase.conf

sys_ctl restart

三、数据库自启用

(需要先将服务停掉)
sys_ctl stop

(root用户执行)

进入到脚本目录

cd /home/kingbase/KingbaseES/V9/install/script/

通过下面命令设置开机自启

./startupcfg.sh V9 kingbase /home/kingbase/KingbaseES/V9 /home/kingbase/KingbaseES/V9/data kingbased

注意:有些版本不需要这个,直接执行相应的脚本就可以开机自启

(注意:oracle模式的V8的自启用是执行 ./root.sh)

root@localhost script\]# ./root.sh ![](https://i-blog.csdnimg.cn/direct/c9b055d671f34260934a74bbeb13648c.png) #### **四、逻辑备份** (kingbae用户执行) 切换为kingbase用户 编辑逻辑备份脚本 vim /home/kingbase/KingbaseES/V9/SupTools/kb_backup/backup8.conf 根据实际部署修改 kdb_home="/home/kingbase/KingbaseES/V9" kdb_bin="/home/kingbase/KingbaseES/V9/Server/bin" kdbback_dest="/home/kingbase/backup/logical" kdb_user="system" password="1234%\^\&\*Ab" kdb_port="54321" kdb_host="127.0.0.1" kdb_list=\`${kdb_bin}/ksql -p ${kdb_port} -U ${kdb_user} -c "SELECT datname FROM pg_database where datname not in ('template1','template0');" template1 \|head -n -2\|tail -n +3\` keep_time="31" LD_LIBRARY_PATH="/home/kingbase/KingbaseES/V9/Server/lib" ![](https://i-blog.csdnimg.cn/direct/532f6c270f41445db8fa48482c8b27d3.png) #更新system用户密码 ksql -U system test test=# ALTER USER system WITH PASSWORD '1234%\^\&\*Ab'; 或者 sys_encpwd -H \\\* -P \\\* -D \\\* -W '1234%\^\&\*Ab' -U system ![](https://i-blog.csdnimg.cn/direct/659c52dfe59243348f500f1b3bb20b90.png) 验证kingbase用户是否有权限 crontab -l ![](https://i-blog.csdnimg.cn/direct/679e32d6d3084715931e3af9f3833562.png) 查看是否添加了kingbase用户 vi /etc/cron.allow 如果出现权限问题,那就切换kingbase用户修改cron.allow权限 chmod 4755 /etc/cron.allow #kingbase用户执行快速部署脚本 ./fast_deploy_backup8.sh ![](https://i-blog.csdnimg.cn/direct/1e95c8ec01654572b0d6c9235703fa77.png) #查看定时任务 crontab -l #你也可以修改定时任务 crontab -e ![](https://i-blog.csdnimg.cn/direct/a4221c711f904cbd8d16dad2ec1fc480.png) #### **五、物理备份** (root执行) cd /home/kingbase/KingbaseES/V9/Server/bin ./sys_HAscmdd.sh init ./sys_HAscmdd.sh start ![](https://i-blog.csdnimg.cn/direct/7d0a11dbff854e16b76bf6e34a8f46a2.png) (kingbase用户执行) sys_ctl start (确保数据库是启用的) cd /home/kingbase/KingbaseES/V9/Server/share/ cp sys_backup.conf ../bin/ cd ../bin/ ![](https://i-blog.csdnimg.cn/direct/45a222a9261a472084301b560d47c251.png) 修改物理备份参数 vim sys_backup.conf #我自己的修改参数如下 _target_db_style="single" _one_db_ip="127.0.0.1" _repo_ip="127.0.0.1" _repo_path="/home/kingbase/backup/rman" _single_data_dir="/home/kingbase/KingbaseES/V9/rman" _single_bin_dir="/home/kingbase/KingbaseES/V9/Server/bin" cd /home/kingbase/KingbaseES/V9/Server/bin 执行备份初始化脚本 ./sys_backup.sh init ![](https://i-blog.csdnimg.cn/direct/be0e4cfcd7ad430aa5be0ab149585c19.png) 启用备份 ./sys_backup.sh start ![](https://i-blog.csdnimg.cn/direct/ff5201a5d1c448f7aa805c8d9a31fb27.png) 物理备份时报错 \[kingbase@localhost bin\]$ ./sys_backup.sh init ERROR: repo_ip \[127.0.0.1\] must located in local, and sys_backup.sh be executed at REPO host. 解决: chmod 4755 /usr/bin/ping 查看备份 /home/kingbase/KingbaseES/V9/Server/bin/sys_rman --config=/home/kingbase/backup/rman/sys_rman.conf --stanza=kingbase info ![](https://i-blog.csdnimg.cn/direct/f470f5f5dc8d4225a23fef1c3b93f944.png) 备份 全量备份 sys_rman --config=/home/kingbase/app/ES/V9/rman/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup 差异备份是diff 增量备份是incr 还原 sys_rman --config=/home/kingbase/app/ES/V9/rman/sys_rman.conf --stanza=kingbase restore 执行不完全恢复至误删除表之前的时间点 \[kingbase@fgedu81 data\]$ sys_rman --config=/home/kingbase/app/ES/V9/rman/sys_rman.conf --stanza=kingbase --type=time --target="2025-11-28 17:38:17" --target-action=promote restore

相关推荐
咖啡の猫2 小时前
Redis命令-Set命令
数据库·chrome·redis
天涯明月19932 小时前
服务网格完全指南:从基础概念到生产实践
java·服务器·数据库·分布式·微服务
zuoerjinshu2 小时前
Nginx实现接口复制
运维·nginx·junit
Han.miracle2 小时前
万字详解 Lombok 构造方法注解:@AllArgsConstructor 非空校验实现与最佳实践
java·前端·数据库
吠品2 小时前
SQL Server 2012日志文件管理:解决过大问题的全面指南
服务器·数据库·oracle
熙胤2 小时前
【MySQL】数据库和表的操作
数据库·mysql·oracle
掘根2 小时前
【即时通讯系统】环境搭建7——ODB
数据库·oracle
陈皮糖..2 小时前
Ansible实战教程----使用Ansible角色源码编译部署nginx服务
linux·运维·nginx·自动化·云计算·ansible