KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份

案例说明:
在生产环境,有的应用需要调用数据库的sys_rman做备份,为了区分数据库自身的sys_rman备份和应用的备份,可以使用不同的stanza name创建备份。本案例介绍了,如何在KingbaseES V8R6数据库下,同一个实例创建不同的stanza备份。

适用版本: kingbaseES V8R6

一、已有stanza sys_rman配置(stanza_name=kingbase)

二、创建第二个stanza sys_rman备份

1、sys_backup.conf配置

[kingbase@node102 bin]$ cat sys_backup.conf |grep -v ^#|grep -v ^$
_target_db_style="single"
_one_db_ip="127.0.0.1"
_repo_ip="127.0.0.1"
_stanza_name="king"
_os_user_name="kingbase"
_repo_path="/home/kingbase/kbbr7_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
_band_width=0
_os_ip_cmd="/sbin/ip"
_os_rm_cmd="/bin/rm"
_os_sed_cmd="/bin/sed"
_os_grep_cmd="/bin/grep"
_single_data_dir="/data/kingbase/v8r6_c6/data"
_single_bin_dir="/opt/Kingbase/ES/V8R6_C6/Server/bin"
_single_db_user="system"
_single_db_port="54322"
_use_scmd=on
_start_fast=y
_compress_type=none
_non_archived_space=1024

=如下所示,配置文件中不同配置。=

2、执行初始化

[kingbase@node102 bin]$ ./sys_backup.sh init
# pre-condition: check the non-archived WAL files
# generate single sys_rman.conf...DONE
# update single 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.

3、查看sys_rman.conf配置

4、查看初始化后两个不同stanza下的全量备份

三、执行备份测试

后创建的stanza可以正常备份,但执行第一个stanza备份hang住,无法完成归档:

[kingbase@node102 V8R6_C6]$ /home/kingbase/cluster/R6HA/kha/kingbase/bin/sys_rman
 --config=/home/kingbase/kbbr6_repo/sys_rman.conf 
 --stanza=kingbase --archive-copy --type=full backup

=原因是:创建第二个stanza后,执行init时,修改了kingbase.conf下的archive_command参数,导致在执行第一个stanza备份时,无法完成归档。=

四、自定义脚本完成备份

=此脚本的目标是,在不同的stanza备份前更新archive_command参数,由于全量备份和增量备份要通过cron计划任务中执行,所以需建立不同的备份脚本。=

1、stanza为kingbase的全量备份脚本

[kingbase@node102 ~]$ cat kingbase_full_bk.sh
#!/bin/bash
# stanza name "kingbase" backup !

DATA_DIR=/data/kingbase/v8r6_c6/data
BIN_DIR=/opt/Kingbase/ES/V8R6_C6/Server/bin

###### Update archive_command for stanza##################
/bin/sed -i 's/kbbr7_repo/kbbr6_repo/g' ${DATA_DIR}/kingbase.conf
/bin/sed -i 's/--stanza=king archive-push/--stanza=kingbase archive-push/g' ${DATA_DIR}/kingbase.conf
${BIN_DIR}/sys_ctl reload -D ${DATA_DIR}

###### full backup###########
${BIN_DIR}/sys_rman --config=/home/kingbase/kbbr6_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >>/opt/Kingbase/ES/V8R6_C6/Server/log/sys_rman_backup_full.log 2>&1
${BIN_DIR}/sys_rman --config=/home/kingbase/kbbr6_repo/sys_rman.conf info

增量备份脚本:

2、stanza为king的全量备份脚本

[kingbase@node102 ~]$ cat king_full_bk.sh
#!/bin/bash
# stanza name "king" backup !
DATA_DIR=/data/kingbase/v8r6_c6/data
BIN_DIR=/opt/Kingbase/ES/V8R6_C6/Server/bin

###### Update archive_command for stanza##################
/bin/sed -i 's/kbbr6_repo/kbbr7_repo/g' ${DATA_DIR}/kingbase.conf
/bin/sed -i 's/--stanza=kingbase archive-push/--stanza=king archive-push/g' ${DATA_DIR}/kingbase.conf
${BIN_DIR}/sys_ctl reload -D ${DATA_DIR}

###### full backup###########
${BIN_DIR}/sys_rman --config=/home/kingbase/kbbr7_repo/sys_rman.conf --stanza=king --archive-copy --type=full backup >>/opt/Kingbase/ES/V8R6_C6/Server/log/sys_rman_backup_full.log 2>&1
${BIN_DIR}/sys_rman --config=/home/kingbase/kbbr7_repo/sys_rman.conf --stanza=king info

将脚本放入cron计划任务执行:

[root@node102 ~]#  cat /etc/cron.d/KINGBASECRON
.......
0 2 */7 * * kingbase  sh /home/kingbase/kingbase_full_bk.sh  >> /opt/Kingbase/ES/V8R6_C6/Server/log/sys_rman_backup_full.log 2>&1

0 6  */7 * *  kingbase sh /home/kingbase/king_full_bk.sh  >> /opt/Kingbase/ES/V8R6_C6/Server/log/sys_rman_backup_full.log 2>&1

五、总结
对于Kingbase V8R6可以创建不同的stanza进行sys_rman的备份,但在生产环境尽量不要使用,增加了备份的复杂性及数据库的负载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KingbaseES V8是一种基于开源PostgreSQL数据库的企业级数据库管理系统。它被开发为一个高度可扩展和安全的解决方案,适用于各种规模的企业数据处理需求。 KingbaseES V8数据库技术白皮书详细介绍了该数据库系统的特点和优势。下面是一些关键内容: 1. 安全性:KingbaseES V8采用了严格的安全机制来保护数据的机密性和完整性。它支持数据加密、访问控制和安全审计等功能,确保敏感数据不会被未经授权的人员访问。 2. 高可靠性:KingbaseES V8通过提供数据库事务和持久性来确保数据的可靠性。它支持ACID(原子性、一致性、隔离性和持久性)属性,使得数据库在发生故障或中断时能够进行恢复并保持数据的一致性。 3. 高扩展性:KingbaseES V8支持水平和垂直扩展,可以根据业务需求进行灵活的扩展。它能够处理大规模的数据存储和查询,并提供了分布式数据库和集群部署选项。 4. 大数据处理:KingbaseES V8具备处理大数据的能力,通过支持多种数据压缩和索引技术来提高数据存储和查询的效率。同时,它还提供了强大的数据备份恢复机制,确保在数据发生意外故障时能够及时进行数据恢复。 5. 兼容性:KingbaseES V8与主流数据库标准兼容,可以实现与Oracle、SQL Server等数据库的互通和迁移。这样一来,企业在将原有数据库迁移到KingbaseES V8上时,可以事半功倍地减少迁移成本和风险。 总的来说,KingbaseES V8数据库技术白皮书详细介绍了其作为一种可靠、高效和安全的企业级数据库管理系统的优势和功能。这些特点使得KingbaseES V8成为适用于各种企业规模和数据处理需求的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值