目录
[三、数据库自启用(需要先将服务停掉)sys_ctl stop](#三、数据库自启用(需要先将服务停掉)sys_ctl stop)
提前准备好安装包并上传到服务器上(安装包根据对应的系统和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  #### **四、逻辑备份** (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"  #更新system用户密码 ksql -U system test test=# ALTER USER system WITH PASSWORD '1234%\^\&\*Ab'; 或者 sys_encpwd -H \\\* -P \\\* -D \\\* -W '1234%\^\&\*Ab' -U system  验证kingbase用户是否有权限 crontab -l  查看是否添加了kingbase用户 vi /etc/cron.allow 如果出现权限问题,那就切换kingbase用户修改cron.allow权限 chmod 4755 /etc/cron.allow #kingbase用户执行快速部署脚本 ./fast_deploy_backup8.sh  #查看定时任务 crontab -l #你也可以修改定时任务 crontab -e  #### **五、物理备份** (root执行) cd /home/kingbase/KingbaseES/V9/Server/bin ./sys_HAscmdd.sh init ./sys_HAscmdd.sh start  (kingbase用户执行) sys_ctl start (确保数据库是启用的) cd /home/kingbase/KingbaseES/V9/Server/share/ cp sys_backup.conf ../bin/ cd ../bin/  修改物理备份参数 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  启用备份 ./sys_backup.sh start  物理备份时报错 \[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  备份 全量备份 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