热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

KingbaseESV8R6集群外部备份案例

案例说明:本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS7系统,repo采用kylinV10Server。一主一备+外部备份此场景为主

案例说明:

本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server。



  • 一主一备+外部备份

    此场景为主备双机常规环境设计,主要的备份信息来源于备机,极大地减少备份为主机带来的性能损耗,且增加了第三方专用存储服务器,用于存放和管理备份文件。



  • 集群节点信息:



[kingbase@node2 bin]$ ./repmgr cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+---------+---------+-----------+----------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------
1 | node200 | primary | * running | | default | 100 | 11 | host=192.168.8.200 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
2 | node201 | standby | running | node200 | default | 100 | 11 | host=192.168.8.201 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3


  • 数据库版本:

test=# select version();
version
------------------------------------------------------------------------------------------------------------------
KingbaseES V008R006C005B0023 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)

一、备份环境配置

1、首先建立repo和集群节点之间的ssh互信(kingbase和root用户)

[kingbase@srv01 bin]$ uname -a
Linux srv01 4.19.90-17.ky10.x86_64 #1 SMP Sun Jun 28 15:41:49 CST 2020 x86_64 x86_64 x86_64 GNU/Linux
[kingbase@srv01 bin]$ ssh node1
Last login: Mon May 30 21:21:11 2022
[kingbase@node1 ~]$
[root@srv01 ~]# ssh node1
Last login: Mon May 30 21:42:32 2022 from 192.168.8.100
[root@node1 ~]#

2、在repo节点建立备份相关的目录及文件(不需要安装数据库软件)

=注意:目录结构和集群节点尽量一致,并且保证sys_backup.sh能在repo节点正常执行。=

[kingbase@srv01 ~]$ mkdir -p /home/kingbase/cluster/R6C/R6HA/kingbase/
[kingbase@node2 R6HA]$ scp db.zip srv01:/home/kingbase/cluster/R6C/R6HA/kingbase/
# 将集群db.zip拷贝到repo主机后,解压
[kingbase@srv01 kingbase]$ ls -lh
total 145M
drwxr-xr-x 2 kingbase kingbase 4.0K Nov 5 2021 bin
-rwx------ 1 kingbase kingbase 145M May 31 12:21 db.zip
drwxrwxr-x 5 kingbase kingbase 8.0K Nov 5 2021 lib
drwxrwxr-x 8 kingbase kingbase 4.0K Nov 5 2021 share

二、初始化备份配置

1、在集群主备节点配置archive

=archive_command在配置文件未被注释时,执行sys_backup.sh init会自动配置=

主库:
[kingbase@node1 data]$ cat es_rep.conf |grep -i archive_
archive_mode='on'
archive_command='/home/kingbase/cluster/R6C/R6HA/kingbase/bin/sys_rman --config /home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase archive-push %p'

备库:
[kingbase@node2 data]$ cat es_rep.conf |grep -i archive_
archive_mode='on'
archive_command='/home/kingbase/cluster/R6C/R6HA/kingbase/bin/sys_rman --config /home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase archive-push %p'

2、在repo下配置sys_backup.conf文件

[kingbase@srv01 bin]$ cat sys_backup.conf |grep -v ^$|grep -v ^#
_target_db_
_one_db_ip="192.168.8.201"
_repo_ip="192.168.8.100"
_stanza_name="kingbase"
_os_user_name="kingbase"
_repo_path="/home/kingbase/kbbr_repo"
_repo_retention_full_count=5
_crond_full_days=7
_crond_diff_days=0
_crond_incr_days=1
_crond_full_hour=2
_crond_diff_hour=3
_crond_incr_hour=4
_os_ip_cmd="/sbin/ip"
_os_rm_cmd="/bin/rm"
_os_sed_cmd="/bin/sed"
_os_grep_cmd="/bin/grep"
_single_data_dir="/home/kingbase/ES/V8_single/data"
_single_bin_dir="/home/kingbase/ES/V8_single/Server/bin"
_single_db_user="system"
_single_db_port="54321"

3、执行sys_backup.sh初始化

[kingbase@srv01 bin]$ ./sys_backup.sh init
The authenticity of host '192.168.8.100 (192.168.8.100)' can't be established.
ECDSA key fingerprint is SHA256:H2wsGtepOaejo4bY8srjnztqrZY/dZosWLDf6m8oUs8.
Are you sure you want to continue connecting (yes/no)? yes
The authenticity of host '192.168.8.100 (192.168.8.100)' can't be established.
ECDSA key fingerprint is SHA256:H2wsGtepOaejo4bY8srjnztqrZY/dZosWLDf6m8oUs8.
Are you sure you want to continue connecting (yes/no)? yes
# generate local sys_rman.conf...DONE
# update all node: sys_rman.conf and archive_command with sys_rman.archive-push...
# update all node: sys_rman.conf and archive_command with sys_rman.archive-push...DONE
# create stanza and check...(maybe 60+ seconds)
# create stanza and check...DONE
# initial first full backup...(maybe several minutes)
# initial first full backup...DONE
# Initial sys_rman OK.
'sys_backup.sh start' should be executed when need back-rest feature.
'sys_backup.sh start' will add CRONTAB items.
Or you can manual backup once with user-guide.

4、查看初始化配置后的信息

=注意:对于repo的存储目录,在repo和集群数据节点都会创建,只创建sys_rman.conf,备份存储在备份服务器上。=

[kingbase@srv01 ~]$ cd kbbr_repo/
[kingbase@srv01 kbbr_repo]$ cat sys_rman.conf
# Genarate by script at 20220531122517, should not change manually
[kingbase]
kb1-path=/home/kingbase/cluster/R6C/R6HA/kingbase/data
kb1-port=54321
kb1-user=esrep
kb1-host=192.168.8.200
kb1-host-user=kingbase
kb2-path=/home/kingbase/cluster/R6C/R6HA/kingbase/data
kb2-port=54321
kb2-user=esrep
kb2-host=192.168.8.201
kb2-host-user=kingbase
[global]
repo1-path=/home/kingbase/kbbr_repo
repo1-retention-full=5
log-path=/home/kingbase/cluster/R6C/R6HA/kingbase/log
log-level-file=info
log-level-cOnsole=info
log-subprocess=y
process-max=4
#### default gz, support: gz none
compress-type=gz
compress-level=3
在集群节点查看:
# 主库:
[kingbase@node1 ~]$ cd kbbr_repo/
[kingbase@node1 kbbr_repo]$ cat sys_rman.conf
# Genarate by script at 20220531122523, should not change manually
[kingbase]
kb1-path=/home/kingbase/cluster/R6C/R6HA/kingbase/data
[global]
repo1-host=192.168.8.100
repo1-host-user=kingbase
repo1-host-cOnfig=/home/kingbase/kbbr_repo/sys_rman.conf
repo1-path=/home/kingbase/kbbr_repo
log-path=/home/kingbase/cluster/R6C/R6HA/kingbase/log
log-level-cOnsole=info
log-level-file=info
#备库:
[kingbase@node2 ~]$ cd kbbr_repo
[kingbase@node2 kbbr_repo]$ cat sys_rman.conf
# Genarate by script at 20220531122526, should not change manually
[kingbase]
kb1-path=/home/kingbase/cluster/R6C/R6HA/kingbase/data
[global]
repo1-host=192.168.8.100
repo1-host-user=kingbase
repo1-host-cOnfig=/home/kingbase/kbbr_repo/sys_rman.conf
repo1-path=/home/kingbase/kbbr_repo
log-path=/home/kingbase/cluster/R6C/R6HA/kingbase/log
log-level-cOnsole=info
log-level-file=info

5、初始化的归档和数据库备份信息

1)归档信息

2)数据库信息

3)查看主库wal日志信息

=由以上信息,可知,初始化产生备份主要是在主库上执行了 sys_rman的备份。=

三、执行备份

1、创建备份计划任务

[kingbase@srv01 bin]$ ./sys_backup.sh start
Enable some sys_rman in crontab-daemon
Authorized users only. All activities may be monitored and reported.
Set full-backup in 7 days
Authorized users only. All activities may be monitored and reported.
Authorized users only. All activities may be monitored and reported.
Authorized users only. All activities may be monitored and reported.
Set incr-backup in 1 days
Authorized users only. All activities may be monitored and reported.
Authorized users only. All activities may be monitored and reported.
0 2 */7 * * kingbase /home/kingbase/cluster/R6C/R6HA/kingbase/bin/sys_rman --cOnfig=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >> /home/kingbase/cluster/R6C/R6HA/kingbase/log/sys_rman_backup_full.log 2>&1
0 4 */1 * * kingbase /home/kingbase/cluster/R6C/R6HA/kingbase/bin/sys_rman --cOnfig=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup >> /home/kingbase/cluster/R6C/R6HA/kingbase/log/sys_rman_backup_incr.log 2>&1

2、手工测试sys_rman备份

[kingbase@srv01 bin]$ /home/kingbase/cluster/R6C/R6HA/kingbase/bin/sys_rman --cOnfig=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup
......
2022-05-31 12:49:46.041 P04 INFO: backup file 192.168.8.200:/home/kingbase/cluster/R6C/R6HA/kingbase/data/.wallet/tbcolkey.kr (0B, 100%)
2022-05-31 12:49:46.045 P00 INFO: full backup size = 138.2MB
2022-05-31 12:49:46.045 P00 INFO: execute non-exclusive sys_stop_backup() and wait for all WAL segments to archive
2022-05-31 12:49:46.857 P00 INFO: backup stop archive = 0000000B000000010000005B, lsn = 1/5B000128
2022-05-31 12:49:47.558 P00 INFO: check archive for segment(s) 0000000B000000010000005B:0000000B000000010000005B
2022-05-31 12:49:48.930 P00 INFO: new backup label = 20220530-212601F
2022-05-31 12:49:50.223 P00 INFO: backup command end: completed successfully (294166ms)
2022-05-31 12:49:50.224 P00 INFO: expire command begin 2.27: --cOnfig=/home/kingbase/kbbr_repo/sys_rman.conf --log-level-cOnsole=info --log-level-file=info --log-path=/home/kingbase/cluster/R6C/R6HA/kingbase/log --log-subprocess --kb1-host=192.168.8.200 --kb2-host=192.168.8.201 --kb1-host-user=kingbase --kb2-host-user=kingbase --repo1-path=/home/kingbase/kbbr_repo --repo1-retention-full=5 --stanza=kingbase
2022-05-31 12:49:52.011 P00 INFO: expire command end: completed successfully (1787ms)

3、查看sys_rman备份信息

[kingbase@srv01 bin]$ /home/kingbase/cluster/R6C/R6HA/kingbase/bin/sys_rman --cOnfig=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C005B0023-1): 0000000B0000000100000058/0000000B000000010000005B
full backup: 20220530-210642F
timestamp start/stop: 2022-05-30 21:06:42 / 2022-05-30 21:12:08
wal start/stop: 0000000B0000000100000059 / 0000000B0000000100000059
database size: 144.2MB, backup size: 144.2MB
repository size: 15.9MB, repository backup size: 15.9MB
full backup: 20220530-212601F
timestamp start/stop: 2022-05-30 21:26:01 / 2022-05-30 21:30:50
wal start/stop: 0000000B000000010000005B / 0000000B000000010000005B
database size: 154.2MB, backup size: 154.2MB
repository size: 16.6MB, repository backup size: 16.6MB

四、总结

对于KingbaseES V8R6集群使用sys_backup.sh执行物理备份,可以使用专门的备份服务器repo,备份的操作在repo上,但实际上还是通过调用sys_rman在集群节点上完成物理备份。

KINGBASE研究院



推荐阅读
  • oracle 对硬件环境要求,Oracle 10G数据库软硬件环境的要求 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
author-avatar
mobiledu2502898167
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有