案例说明:

在生产环境,有的应用需要调用数据库的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的备份,但在生产环境尽量不要使用,增加了备份的复杂性及数据库的负载。

KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份的更多相关文章

  1. KingbaseES V8R3 备份恢复案例之--单实例环境sys_rman脚本备份案例

    案例说明: sys_rman是KingbaseES数据库的物理备份工具,支持数据库的全备和增量备份,由于sys_rman工具使用需要配置多个参数,对于一般用户使用不是很方便.为方便用户在Kingbas ...

  2. KingbaseES V8R6备份恢复案例之--删除test数据库后sys_backup.sh备份

    案例说明: KingbaseES V8R6通过sys_backup.sh执行物理备份,默认sys_backup.sh执行备份初始化时,需要连接test数据库进行身份的认证:在一些生产环境为了安全需求, ...

  3. kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份

    ​ 案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...

  4. KingbaseES V8R6备份恢复案例之---手工清理冗余历史备份

    案例说明: 对于KingbaseES V8R6的通过sys_rman执行的物理历史备份,可以在执行备份时,备份的保留(retention)策略自动清理.不能通过手工删除备份,可以通过expire参数手 ...

  5. KingbaseES V8R6C6备份恢复案例之---单实例sys_baackup.sh备份

    案例说明: KingbaseES V8R6C6中sys_backup.sh在通用机单实例环境,默认需要通过securecmdd工具以及kingbase和root用户之间的ssh互信,执行备份初始化(i ...

  6. oracle直通车6关于rman备份恢复数据文件,以及创建分区表的实验

    1.创建一张表,在表上创建一个索引,分别查询表,索引各自分配了多少个extents,多少个数据块以及总共占用空间的大小(bytes). 答:创建一张表t,为字段object_id创建索引t_objec ...

  7. KingbaseES V8R6 维护管理案例之---Kstudio在CentOS 7启动故障

    ​ 案例说明: 在CentOS 7上安装KingbaseES V8R6C006数据库后,启动Kstudio图形界面启动失败,gtk动态库加载失败,安装gtk相关动态库后,问题解决. 适用版本: Kin ...

  8. KingbaseES V8R6集群部署案例之---Windows环境配置主备流复制(异机复制)

    案例说明: 目前KingbaseES V8R6的Windows版本不支持数据库sys_rman的物理备份,可以考虑通过建立主备流复制实现数据库的异机物理备份.本案例详细介绍了,在Windows环境下建 ...

  9. KingbaseES V8R6集群部署案例之---Windows环境配置主备流复制(同一主机)

    案例说明: 目前KingbaseES V8R6的Windows版本不支持数据库sys_rman的物理备份,可以考虑通过建立主备流复制实现数据库的异机物理备份.本案例详细介绍了,在Windows环境下建 ...

随机推荐

  1. Java 泛型中的通配符

    本文内容如下: 1. 什么是类型擦除 2.常用的 ?, T, E, K, V, N的含义 3.上界通配符 < ?extends E> 4.下界通配符 < ?super E> 5 ...

  2. .Net Core 中使用工厂模式

    什么是工厂模式 工厂模式是最常用的设计模式之一,属于创建型模式. 有点: 解耦,可以把对象的创建和过程分开 减少代码量,易于维护 什么时候用? 当一个抽象类有多个实现的时候,需要多次实例化的时候,就要 ...

  3. DNS原理&ssh

    作用:实现域名的解析! www.baidu.com => 14.215.177.37 域名: www.baidu.com 实际域名为: www.baidu.com. 域名的解析,是反向的. 最后 ...

  4. python基础教程:__call__用法

    __call__可以使得方法变成可被调用对象:(PS:python中的方法和普通函数有点区别:方法的第一个参数是类实例) 允许一个类的实例像函数一样被调用.实质上说,这意味着 x() 与 x.call ...

  5. 6. RDD综合练习:更丰富的操作

    集合运算练习 union(), intersection(),subtract(), cartesian() 内连接与外连接 join(), leftOuterJoin(), rightOuterJo ...

  6. XXXX系统测试计划

    XXXX系统测试计划 目录 XXXX系统测试计划 目标 概述 项目背景 适用范围 组织形式 组织架构图 角色及职责 测试工作分工 团队协作 测试对象 应测试特性 不被测试特性 测试任务安排 系统测试任 ...

  7. Linux操作系统(6):进程管理和服务管理

    进程的基本介绍 1)在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号. 2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程.例如 www 服务器 ...

  8. DBPack 读写分离功能发布公告

    在 v0.1.0 版本我们发布了分布式事务功能,并提供了读写分离功能预览.在 v0.2.0 这个版本,我们加入了通过 UseDB hint 自定义查询请求路由的功能,并修复了一些 bug.另外,在这个 ...

  9. 无用的IP黑名单

    无效的IP黑名单,有些还没有收集,在阿里云或者腾讯云的安全组里面设置,拦截不必要的IP,免得遭到攻击,也避免的CPU和内存过高 来源 备注82.102.21.217 拒绝 随机访问目录攻击,频繁69. ...

  10. Assembly.GetManifestResourceStream为null

    想把某个项目的某个文件夹里面的ini文件生成的时候顺便生成为网站和服务文件夹项目 string _path = Path.Combine(AppDomain.CurrentDomain.BaseDir ...