kingbase 物理备份

本文使用的配置:

虚拟机:CentOS7

KES版本:kingbaseES V8R6 通用型

license:企业版

文件目录:

  1. 安装路径:/KingbaseES/V8
  2. 主数据目录:/data
  3. 备份目录:/backup

一、准备工作

物理备份不似逻辑备份,可以直接使用,我们需要在执行备份之前做一系列的准备工作。

1、配置文件

在配置物理备份之前,我们首先要做的就是,修改配置文件。

1.1、拷贝配置文件到指定目录

sys_rman.sh 的配置文件也就是物理备份所需要的配置文件就是sys_backup.conf,这个文件的位置位于/安装目录/Server/share中,但是在执行sys_rman.sh 的时候,它默认加载配置文件的地址是在/安装目录/Server/bin下面的sys_backup.conf,如果找不到才回去/安装目录/Server/share中查找,所以我们可以将配置文件sys_backup.conf复制到/bin下面进行修改。

复制配置文件:

cd /KingbaseES/V8/Server/share

cp sys_rman.conf ../bin/

编辑配置文件:

# target db style enum:  single/cluster
_target_db_style="single"
# one kingbase node IP
# just provide one IP, script will use 'repmgr cluster show' get other node IP
_one_db_ip="127.0.0.1"
# local repo IP, inner-REPO, must be same as one_db_ip, means repo located in one db node
# outer repo IP, outer-REPO, means repo located in outer node
_repo_ip="127.0.0.1"
# label of this cluster
_stanza_name="kingbase"
# OS user name of database
_os_user_name="kingbase"
# !!!! dir to store the backup files
# should be accessable for the OS user
_repo_path="/backup/rman"
# count of keep, over the count FULL-backup will be remove
_repo_retention_full_count=5
# count of days, interval to do FULL-backup
_crond_full_days=7
# count of days, interval to do DIFF-backup
_crond_diff_days=0
# count of days, interval to do INCR-backup
_crond_incr_days=1
# HOUR to do the FULL-backup
_crond_full_hour=2
# HOUR to do the DIFF-backup
_crond_diff_hour=3
# HOUR to do the INCR-backup
_crond_incr_hour=4
# OS cmd define
_os_ip_cmd="/usr/sbin/ip"
_os_rm_cmd="/usr/bin/rm"
_os_sed_cmd="/usr/bin/sed"
_os_grep_cmd="/usr/bin/grep"
# !!! these follow 4 parameter ONLY for single style
# data dir of single
_single_data_dir="/data"
# bin dir of single
_single_bin_dir="/KingbaseES/V8/Server/bin"
# database user of single
_single_db_user="system"
# database port of single
_single_db_port="54321"

因为我们在这里面设置了定时备份的时间啊,定时备份的频率等等,所以在每次进行自动备份的时候我们要求不需要我们本人输入密码,我们希望到点了就直接开始备份,所以对于system用户,我们需要设置他免密登录数据库开始备份。

设置免密登录:

vim /data/sys_hba.conf

#加入下面这行

local    all    system    127.0.0.1/32    trust

修改归档参数:

vim /data/kingbase.conf

archive_mode = on
archive_command = ''

#archive_command在初始化数据库的时候会自动赋值

1.2、执行初始化命令

在做好前期的准备工作之后,就开始执行初始化命令。

sys_backup.sh init

#接着输入root用户的密码

接着可以去/backup/rman下面查看初始化自动创建的备份目录结构。

ll /backup/rman

然后登录数据库,查看归档参数是否更改成功。

#登录数据库
ksql test system

#查看归档参数

show archive_mode;

show archive_command;

最后可以看一备份集,在初始化完成之后会执行一次全量备份。

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase info

1.3、sys_backup.sh的其他用法

#1、启动定时备份任务
sys_backup.sh start

#2、暂停定时备份任务
sys_backup.sh pause

#3、恢复定时备份任务
sys_backup.sh unpause

#4、取消定时备份任务
sys_backup.sh stop

二、执行备份

1、全量备份

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup

参数解析:

  1. --config=/backup/rman/sys_rman.conf:指定配置文件
  2. --stanza=kingbase:指定标签,在配置文件中找到我们想要的配置参数
  3. --archive-copy:备份的时候同时备份wal段
  4. --type:指定备份的类型,这里指定的是full,全量备份

2、差异备份

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase --archive-copy --type=diff backup

3、增量备份

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup

4、查看备份集

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase info

三、执行恢复

1、完全恢复

在进行物理备份恢复的时候需要关闭数据库实例。我们先删除/data数据库下面的所有文件,包括隐藏文件,之后直接执行完全恢复。

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase restore

2、不完全恢复

2.1、基于时间的不完全恢复

这里想要实现的是将数据库恢复到某个时间点的状态,比如说在某个时间点,由于错误操作导致数据被删除了,我们需要恢复到删除数据的时间点之前,但是在这里我们往往不能十分确定删除数据的时间点的准确时间,所以我们需要多次尝试,尽量减少损失。

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase --type=time --target='xxxx-xx-xx xx:xx:xx' --target-action=promote restore

参数解释:

  1. --target=’xxxx-xx-xx xx:xx:xx‘:恢复的时间点
  2. --target-action=promote:在恢复操作完成之后需要执行的操作,这里的promote表示将恢复数据提升为当前数据库版本。

2.2、基于事务ID的不完全恢复

在实际的操作过程中,可能时间不太好确定准确的时间点,但是对于事务来说,我们可以找到事务的ID,基于这个ID我们可以恢复到这个ID事务执行结束的状态。

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase --type=xid --target='2344' - --set='20230922-160938F' -target-action=promote restore

参数解释:

  1. --set=’20230922-160938F‘:指定使用的备份集,通常我们使用的就是最近的一个全量备份备份集。

四、恢复物理备份到新的目录

1、在原库中创建表空间和对象

1.1、创建目录并授权

跟之前KES安装一样,我们这里再创建一个/data类似的数据目录。

mkdir /home/kingbase/tbs01
chmod 700 /home/kingbase/tbs01

1.2、新建表空间并插入数据

create tablespace tbs01 loction'/home/kingbase/tbs01';

create table t001(id int,name text) tablespace tbs01;

insert into t001 values(1,'xiangxiao');

2、在原库中执行备份

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup

3、恢复备份到新的集簇目录中

创建新的目录,并且授权。

mkdir /home/kingbase/data01

mkdir /home/kingbase/tbs02

chmod 700 /home/kingbase/data01

chmod 700 /home/kingbase/tbs02

开始备份:

sys_rman --config=/backup/rman/sys_rman.conf --stanza=kingbase --kb1-path=/home/kingbase/data01 --stable-map=tbs01=/home/kingbase/tbs02 restore

参数解释:

  1. --kb1-path:指定数据库数据路径
  2. --stable-map:指定映射文件路径

4、修改新的数据库实例的端口并启动

echo 'port=55555'>>/home/kingbase/data01/kingbase.conf

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会掉头发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值