目录
[三、数据库自启用(需要先将服务停掉)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