目录

一、安装kingbase数据库

二、修改kingbase.conf参数

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


 

四、逻辑备份
(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


 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐