Linux系统部署人大金仓数据库--配置数据库定时备份脚本

一、准备工作

通过人大金仓官网下载对应平台的安装程序,也可以通过人大金仓的销售人员、售后支持人员或代理商获取安装程序。

1、查看安装程序文件对应的MD5值或SHA1值

#查看其MD5值:
md5sum KingbaseES_V008R006C009B0014_Lin64_install.iso
 
#查看其SHA1值:
sha1sum KingbaseES_V008R006C009B0014_Lin64_install.iso

2、检查操作系统信息

#查看操作系统信息:
cat /etc/*release
 
#检查系统内存与存储空间
#查看内存信息:
free -h
 
#查看磁盘存储信息
df -hT

3、官网参考内核参数

image.png

4、修改内核参数

若内核参数与参考值不一致,您可通过编辑/etc/sysctl.conf文件修改参数,如下所示:

vim /etc/sysctl.conf
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 4294967295
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

内核参数修改完毕后,并输入如下命令查看内核参数的修改是否正确:

/sbin/sysctl -p
/sbin/sysctl -a

参考官网资源配置参数


image.png

5、Linux资源限制配置文件

vim /etc/security/limits.conf

# *表示所有用户,可只设置root和kingbase用户
* soft nofile 65536
# 注意:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆
* hard nofile 65535
* soft nproc 65536
* hard nproc 65535
# unlimited表示无限制
* soft core unlimited
* hard core unlimited

二、安装工作

1、操作记录

#在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录。
#新建kingbase用户作为KingbaseES专用的系统用户
useradd -m kingbase
#设置kingbase用户的密码:
passwd kingbase
 
#创建安装目录
mkdir /data/kingbase
 
#将目录授权给kingbase用户
chown -R kingbase:kingbase /data/kingbase/
 
#将iso格式安装重新包进行挂载
mount KingbaseES_V008R006C008B0020_Lin64_install.iso  /mnt/
 
#将授权文件准备好记录授权文件存放路径后面安装会用
#注:授权文件可以从官网获取
/data/install-page/license/license.dat
 
切换kingbase用户
su kingbase
 
#进入安装程序挂载好的目录
cd /mnt/
 
#查看目录下程序
ls
 
#进去运行
sh setup.sh

选择


image.png

回车


image.png

根据需要进行安装
image.png

选择授权文件,注:绝对路径带上文件名


image.png

选择安装路径
image.png
image.png

根据需要可自行设置端口,可不输入,直接回车默认为54321


image.png

根据需要可自行设置管理员用户,可不输入,直接回车默认为system


image.png

image.png

设置管理员用户密码:
image.png

根据需要,选择数据库区域


image.png

根据需要,选择数据库字符集
image.png

选择兼容模式
image.png

选择大小写是否敏感
image.png

看到安装成功即可
image.png

2、编写人大金仓systemctl服务

vim /lib/systemd/system/kingbase.service
 
[Unit]
Description=Kingbase Database Service
After=network.target
 
[Service]
Type=forking
#根据自己的用户进行修改
User=kingbase
Group=kingbase
#路径根据自己安装提升的路径进行修改  /data/kingbase/data/:是数据存放目录
ExecStart=/data/kingbase/KESRealPro/V008R006C008B0020/Server/bin/sys_ctl -D /data/kingbase/data/ start
#路径根据自己安装提升的路径进行修改  /data/kingbase/data/:是数据存放目录
ExecStop=/data/kingbase/KESRealPro/V008R006C008B0020/Server/bin/sys_ctl -D /data/kingbase/data/ stop
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
 
#进行刷新systemctl服务
systemctl daemon-reload
#启动kingbase服务
systemctl start kingbase.service
#查看kingbase服务
systemctl status kingbase
#关闭kingbase服务
systemctl stop kingbase
#设置开机自启
systemctl enable kingbase

3、编写定时备份脚本

vim kingbase_backup.sh
 
#!/bin/bash
# 人大金仓V8R6专用全库备份脚本(支持所有数据库)
# 设置启动路径
KB_HOME="/data/kingbase/KESRealPro/V008R006C008B0020/Server/bin/"
# 设置备份文件存放路径
BACKUP_DIR="/data/kingbase_backup"
# 设置用户
DB_USER="system"
# 用户密码
DB_PASS="Root123456"
# 用户地址
DB_HOST="127.0.0.1"
# 用户端口
DB_PORT="54321"
# 设置备份保存天数
KEEP_DAYS=180
 
# 初始化环境
mkdir -p ${BACKUP_DIR}
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/kingbase_all_${DATE}.sql"  # 改为SQL格式
LOG_FILE="${BACKUP_DIR}/backup.log"
 
# 关键环境变量
export LD_LIBRARY_PATH=${KB_HOME}/../lib
 
# 使用sys_dumpall备份所有数据库  由于此版本进行备份时需要进行命令交互,使用expect进行交互
/usr/bin/expect <<EOD
set timeout 3600
spawn ${KB_HOME}/sys_dumpall -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USER} -f "${BACKUP_FILE}" -v
expect {
    "口令:" { 
        send "${DB_PASS}\r"
        exp_continue 
    }
    "Password:" { 
        send "${DB_PASS}\r"
        exp_continue 
    }
    eof
}
EOD
 
# 检查备份结果
if [ -f "${BACKUP_FILE}" ]; then
    echo "[$(date)] 备份成功: ${BACKUP_FILE}" >> ${LOG_FILE}
    DELETED_FILES=$(find ${BACKUP_DIR} -name "kingbase_all_*.sql" -type f -mtime +${KEEP_DAYS} -delete -print | wc -l)
    echo "[$(date)] 已清理${DELETED_FILES}个过期备份" >> ${LOG_FILE}
else
    echo "[$(date)] 备份失败! 请检查错误日志" >> ${LOG_FILE}
    exit 1
fi

4、创建定时任务

#编写定时任务
crontab -e
25 16 * * * cd /data/install-page/check/  && sh ./kingbase_backup.sh
#分 时 日期 月份 星期
#查看定时任务
crontab -l 

5、脚本进行授权

chmod +x kingbase_backup.sh

6、进行备份测试

image.png

7、备份文件进行恢复测试

#####恢复备份命令#########
./ksql -U system -d test -f /data/install-page/kingbase_full_20250814_172655.dmp
./ksql -U 用户名 -d 模式 -f 备份文件及路径 
image.png

image.png
/home/kingbaseuser/ClientTools/bin/ksql -U system -d tzjk-region-130102-bak -f /home/kingbasesqlbak/tzjk-region_20251110_000201.sq

以上内容纯属抄袭,仅供自己翻阅。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容