ITPub博客

首页 > 数据库 > 国内数据库 > KingbaseES集群S3备份:sys_rman + SSL证书配置实战

KingbaseES集群S3备份:sys_rman + SSL证书配置实战

原创 国内数据库 作者:董小姐yyds 时间:2026-06-16 08:37:38 0 删除 编辑

只要sys_backup.conf中包含S3参数即支持S3备份

介绍

金仓数据库通过 sys_rman 工具将备份直接存储到支持S3协议的对象存储(如MinIO、华为云OBS、AWS S3等)。核心思路是修改备份配置文件 sys_backup.conf ,将 _repo_type 设为 s3 并填入S3连接信息,最后执行初始化。

需求:将集群的物理备份存放到S3对象存储服务商。

数据节点1

192.168.40.200

Centos7.9 x86_64

OpenSSL 1.0.2k

V008R030C011PSI026

数据节点2

192.168.40.200

Centos7.9 x86_64

OpenSSL 1.0.2k

V008R030C011PSI026

s3存储

192.168.40.111

UOS Server 20 x86_64

OpenSSL 1.1.1k

V008R030C011PSI026

准备工作

云存储不建议独立的REPO节点。

部署MinIO搭建S3 兼容的云存储服务

测试环境采用MinIO单点架构,采用https方式访问

设置主机名

hostnamectl set-hostname s3.repo
exec bash

生成证书    

mkdir -p /etc/minio/certs
cd /etc/minio/certs
openssl genrsa -out private.key 2048
openssl req -new -x509 -days 3650 \
-key private.key \
-out public.crt \
-subj "/CN=s3.repo" \
-addext "subjectAltName = DNS:s3.repo"
ls -l

输出如下:

总用量 8
-rw------- 1 root root 1675  6月  5 15:51 private.key
-rw-r--r-- 1 root root 1135  6月  5 15:51 public.crt

创建kingbase用户并赋予权限

useradd kingbase
echo 'kingbase' | passwd --stdin kingbase
chown -R kingbase:kingbase /etc/minio/certs

输出如下:

[root@s3 certs]# ls -l /etc/minio/certs/
总用量 8
-rw------- 1 kingbase kingbase 1675  6月  5 15:51 private.key
-rw-r--r-- 1 kingbase kingbase 1135  6月  5 15:51 public.crt

安装MinIO

1.下载安装

# 下载 MinIO 二进制文件
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin/

2. 创建存储目录

mkdir -p /data/minio

3. 启动 MinIO 服务(可选)

在 MinIO 的启动命令或服务文件中, 通过 --certs-dir 参数指定证书目录,如果不使用https方式访问,可以去掉 --certs-dir 参数

export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
minio server --certs-dir /etc/minio/certs /data/minio --console-address ":9001"
  • Web 管理界面:http:s//your_ip:9001
  • S3 API 地址:https://your_ip:9000

后台运行(使用 systemd,强烈建议)

在 MinIO 的启动命令或服务文件中, 通过 --certs-dir 参数指定证书目录,如果不使用https方式访问,可以去掉 --certs-dir 参数

vi /etc/systemd/system/minio.service
[Unit]
Description=MinIO
After=network.target
[Service]
ExecStart=/usr/local/bin/minio server --certs-dir /etc/minio/certs /data/minio --console-address ":9001"
Environment="MINIO_ROOT_USER=minioadmin"
Environment="MINIO_ROOT_PASSWORD=minioadmin"
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
systemctl daemon-reexec
systemctl enable minio
systemctl start minio
  • Web 管理界面:https://your_ip:9001
  • S3 API 地址:https://your_ip:9000

创建存放备份文件的桶和目录

确保 _repo_path 目录已创建且 kingbase 用户有读写权限,S3密钥有存储桶的读写权限。

确保数据库服务器能正常访问你填写的 _repo_s3_endpoint 地址。

--数据节点创建备份目录
mkdir -p /data/KBbackup
chown -R kingbase:kingbase  /data/KBbackup
chmod -R 775  /data/KBbackup

配置域名解析

数据节点和repo节点都要配置,用于域名解析

vi /etc/hosts
增加
192.168.40.111 s3.repo

查看集群状态

repmgr cluster show  输出如下:

[kingbase@localhost ~]$ repmgr cluster show
 ID | Name  | Role    | Status    | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1  | node1 | primary | * running |          | default  | 100      | 1        |         | host=192.168.40.200 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000
 2  | node2 | standby |   running | node1    | default  | 100      | 1        | 0 bytes | host=192.168.40.201 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000

配置免密登录

sys_rman 备份过程中,repo 节点会调用 数据库节点上的 sys_rman ,需要做免密,建议用 加密密码文件 .encpwd (用于服务器进程,客户端也可读取),不要用客户端密码文件 .kbpass (名文存储密码,不安全)

sys_encpwd -H \* -U system -D \* -P 54321 -W kingbase

配置备份

配置sys_backup.conf文件

安装目录下的 share/sys_backup.conf

根据实际项目需求和数据库实际容量合理设置备份策略和频次。

  • 推荐配置下大致预估的额外空间:3倍于预测数据库实例最大占用空间。
  • 通用策略推荐的全量备份周期:默认7天可更改。
  • 通用策略推荐的增量备份周期:默认1天可更改。
  • 通用策略推荐的保留份数:默认5份全量备份可更改。
  • 指定本地配置文件目录:/data/KBbackup/db_dxj/kbbr_repo  默认/home/kingbase/kbbr_repo 可更改。
cd /home/kingbase/dbhome/kingbase/share
cp sys_backup.conf sys_backup.confbak
vi sys_backup.conf
修改以下参数,备份策略参数按需修改 
_target_db_style="cluster" 
_one_db_ip="192.168.40.200"  #数据库所在服务器IP 主节点
_repo_ip="192.168.40.200"  #若DB与REPO合一,填相同IP
_stanza_name="kingbase"
_os_user_name="kingbase"
_repo_path="/data/KBbackup/db_dxj/kbbr_repo"  #具备创建、读写权限
_repo_type=s3
_repo_s3_bucket=kesbackup
_repo_s3_endpoint=https://192.168.40.111:9000   #S3 API 地址
_repo_s3_region=dxj
_repo_s3_key=minioadmin  #访问密钥ID(Access Key) 可以理解为用户id
_repo_s3_key_secret=minioadmin  #私有访问密钥(Secret Key) 可以理解为用户密码

执行初始化

在DB节点内部,执行开启定时命令, 数据库需正常运行 。初始化是 一次性的 ,成功后不要重复执行。

  • 所有的数据节点上都会创建/data/KBbackup/db_dxj/kbbr_repo目录,该目录下存放sys_rman.conf文件
  • S3存储路径:存储桶名字+/data/KBbackup/db_dxj/kbbr_repo目录
/home/kingbase/dbhome/kingbase/bin/sys_backup.sh init

初始化完成后,建议 手动执行一次全量备份 验证配置是否正确

--全量备份
/home/kingbase/dbhome/kingbase/bin/sys_rman --config=/data/KBbackup/db_dxj/kbbr_repo/sys_rman.conf --stanza=kingbase --type=full backup
--增量备份
 /home/kingbase/dbhome/kingbase/bin/sys_rman
--config=/data/KBbackup/db_dxj/kbbr_repo/sys_rman.conf  --stanza=kingbase
--type=incr backup

启动自动备份

在DB节点内部,执行开启定时命令, 自动备份任务默认通过 crontab 实现

# 开启自动备份(会根据配置文件中的周期自动调度)
/home/kingbase/dbhome/kingbase/bin/sys_backup.sh start

如需关闭定时任务,可执行如下命令:

 /home/kingbase/project/bin/sys_backup.sh stop

S3存储中查看备份文件

访问: https://192.168.40.111:9001/

S3存储路径:存储桶名字+/data/KBbackup/db_dxj/kbbr_repo目录

注意事项

  • 当数据备份至S3云存储时,建议使用DB节点作为逻辑REPO节点,这样可以减少网络传输跨越主机的次数,提高IO传输效率。
  • 文件覆盖 : init 命令会基于配置生成新的 sys_rman.conf ,会覆盖已有配置,请提前备份 。
  • 备份性能 :全量备份对I/O负载较大,建议在业务低峰期进行;可根据网络情况,在配置文件中调整 band-width 参数进行限速 。
  • 恢复准备 :从S3恢复时,需要网络连通、密钥有效,还原前务必确保目标数据目录为空 。
  • 存储成本 :对象存储通常按API调用和存储量计费,请合理设置 _repo_retention_full_count 以控制备份集数量,避免产生不必要的费用。

参考链接: https://www.modb.pro/db/2053006638647939072

https://docs.kingbase.com.cn/cn/KES-V9R1C10/availability/backup/backup-restore/physical-backup/sys_rman/sys_rman-6#%E5%85%B8%E5%9E%8B%E5%9C%BA%E6%99%AFs3%E4%BA%91%E5%AD%98%E5%82%A8-


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69963491/viewspace-3173775/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
拥有Oracle 11g OCM,KCA,KCP,DCA,PGCA,PGCE等证书,墨天轮技术专家,墨天轮2024年度优秀作者,青学会成员。擅长主流Oracle、MySQL、PG安装部署、故障定位处理、性能优化,金仓、达梦、openGauss系等各种商用和开源国产数据库。

注册时间:2020-02-22

  • 博文量
    33
  • 访问量
    43728