KingbaseES数据库物理备份还原sys_rman


数据库版本:KingbaseES V008R006C008B0014


        

简介

    sys_rman 是 KingbaseES 数据库中重要的物理备份还原工具,支持不同类型的全量备份、差异备份、增量备份,保证数据库在遇到故障时及时使用 sys_rman 来恢复到数据库先前状态。

        

文章目录如下

1. 备份前准备

1.1. 修改数据库配置

1.2. 备份配置说明

2. 非独立备份

2.1. 备份前准备

2.1.1. 配置备份参数

2.1.2. 初始化备份

2.2. 手动备份方法

2.2.1. 全量备份

2.2.2. 增量备份

2.2.3. 差异备份

2.3. 自动备份方法

2.3.1. 增加备份配置参数

2.3.2. 运行自动备份

2.3.3. 关闭自动备份

2.4. 管理备份

2.4.1. 查看备份列表

2.4.2. 按保留数清理备份

2.4.3. 按备份集名称清理

3. 非独立还原

3.1. 基于测试性质的还原

3.2. 基于最新备份的还原

3.3. 指定备份集还原

3.4. 指定事务ID还原

3.5. 指定时间点还原


        

1. 备份前准备

1.1. 修改数据库配置

保证数据库能够正常备份/还原,需要修改 data/kingbase.conf 以下几个参数后重启数据库生效

archive_mode = on    # 归档模式(on:表示在现有数据库节点上备份还原、always:表示在数据库节点外专门搭建一台用于备份的服务器)
archive_command = '/bin/cp -f %p /home/yt/archive/%f'  # 未注释就行,初始化时自动修改
wal_level = logical  # 决定多少信息写入wal中

重启数据库命令

sys_ctl -D data restart

        

1.2. 备份配置说明

根据不同情况修改备份配置 share/sys_backup.conf,说明如下:

# 备份的数据库模式:  single/cluster/single-pro
_target_db_style="cluster"
# 主节点IP
_one_db_ip="192.168.28.37"
# 存储备份物理文件的IP
_repo_ip="192.168.28.37"
# 集群标签(不用修改)
_stanza_name="kingbase"
# 连接数据库的操作系统用户名
_os_user_name="yt"
# 操作系统存放的备份目录(需要一个不存在的目录,自动创建)
_repo_path="/home/yt/kbbr_repo"# 保留备份数,超出后自动清理(例如配置未5,那么保留备份的文件达到第6份时自动清理1份)
_repo_retention_full_count=5
# 每隔几天执行1次全量备份
_crond_full_days=7
# 每隔几天执行1次差异备份
_crond_diff_days=0
# 每隔几天执行1次增量备份
_crond_incr_days=1
# 自动全量备份的备份时间(2表示凌晨2点执行)
_crond_full_hour=2
# 自动差异备份的备份时间(6表示早上6点执行)
_crond_diff_hour=6
# 自动增量备份的备份时间(17表示下午17点执行)
_crond_incr_hour=17
# 限制带宽(nMb/s),0表示不限制
_band_width=0
# 系统命令(不修改)
_os_ip_cmd="/sbin/ip"
_os_rm_cmd="/bin/rm"
_os_sed_cmd="/bin/sed"
_os_grep_cmd="/bin/grep"#################### 单机配置 ####################
# 数据库data目录
_single_data_dir="/home/kingbase/ES/single/data"
# 数据库bin目录
_single_bin_dir="/home/kingbase/ES/single/Server/bin"
# 数据库用户名
_single_db_user="system"
# 数据库端口号
_single_db_port="54321"# on表示sys_securecmd通信, off表示SSH通信
_use_scmd=on# 快速执行sys_start_backup(y、n)
_start_fast=y
# 备份文件类型(none、gz)
_compress_type=none
# 如果未归档的WAL文件,超过此设置显示ERROR并破坏backup-init(128MB ~ 1024MB)
_non_archived_space=1024#加密存储库的密码类型
#_repo_cipher_type="aes-256-cbc"# 加密/解密存储库文件的密码
#_repo_cipher_pass="c3k5ODQyLg=="# 禁用归档文件统计(n、y)
_archive_statistics=n

                

2. 非独立备份

  • 独立备份:指在数据库节点外单独使用一台用于备份的服务器(配置 archive_mode = always)
  • 非独立备份:指在现有数据库节点上进行备份还原(配置 archive_mode = on)

2.1. 备份前准备

2.1.1. 配置备份参数

 示例:单机配置需要修改的文件 share/sys_backup.conf

_target_db_style="single"
_repo_ip="备份IP"
_os_user_name="操作系统用户名"
_repo_path="备份目录"
_single_data_dir="数据库data目录"
_single_bin_dir="数据库bin目录"
_single_db_user="数据库用户名"
_single_db_port="数据库端口号"

        

2.1.2. 初始化备份

备份前需要初始化备份信息

sys_backup.sh init

系统提示 securecmdd 没有工作。这是因为我使用单机举例,没有启动 securecmdd 导致的错误。如果集群是基于 securecmdd 通信,那么备份就配置修改为 _use_scmd = on;如果是基于 ssh 通信,那么备份配置修改为 _use_scmd = off。

        

修改 share/sys_backup.conf 参数:

_use_scmd = off

初始化成功!

        

初始化完成后会自动修改数据库配置中 archive_command 参数:

并且会根据配置的备份目录生成一个文件夹(_repo_path=备份目录)。示例:

  • archive:归档WAL日志的目标目录
  • backup:保存各备份的目标目录
  • sys_rman.conf:运行时的配置文件(自动生成)

参考官网流程图(https://help.kingbase.com.cn/)

sys_rman 通过wal文件和数据文件来进行备份,但备份REPO与数据库实例处于同一个物理主机,冗余度较低。 

        

2.2. 手动备份方法

2.2.1. 全量备份

  • 全量备份是对所有数据文件进行一次备份,产生的备份集可以单独地构成还原的基础。

手动执行全量备份命令如下:

sys_rman--config=/kbbr_repo/sys_rman.conf  # 自动生成的配置文件--stanza=kingbase--archive-copy--type=full    # 类型为全量备份backup

        

备份完成后会在备份目录生成相对对应的备份目录(名称格式:日期-时间)

cd ./kbbr_repo/backup/kingbase

        

2.2.2. 增量备份

  • 增量备份是依赖于上一次全量备份及中间变化的备份,针对上一个备份有变化的数据文件进行一次备份,产生的备份集配合依赖的全量备份集及串行依赖备份集构成还原的基础。
  • 必须先执行全量备份才能操作增量备份。

增量备份又分为:

  • 文件粒度:当某个数据文件的一个数据块发生变化后,增量备份将拷贝整个数据文件
  • 块粒度:当某个数据文件的一个数据块发生变化后,块增量备份只拷贝变化的数据块

手动执行增量备份(文件粒度)命令如下:

sys_rman--config=/kbbr_repo/sys_rman.conf  # 自动生成的配置文件--stanza=kingbase--archive-copy--type=incr    # 类型为全量备份backup

        

 手动执行增量备份(块粒度)命令如下:

sys_rman--config=/kbbr_repo/sys_rman.conf  # 自动生成的配置文件--stanza=kingbase--archive-copy--type=page    # 类型为全量备份backup

        

2.2.3. 差异备份

  • 差异备份也是依赖于上一次全量备份,针对此全量备份有变化的数据文件进行一次备份,产生的备份集配合依赖的全量备份集构成还原的基础。
  • 必须先执行全量备份才能操作差异备份。

手动执行差异备份命令如下:

sys_rman--config=/kbbr_repo/sys_rman.conf  # 自动生成的配置文件--stanza=kingbase--archive-copy--type=diff    # 类型为全量备份backup

        

2.3. 自动备份方法

2.3.1. 增加备份配置参数

在目录《2.1.1》的基础上增加备份的自动时间 share/sys_backup.conf

# 保留备份数,超出后自动清理(例如配置未5,那么保留备份的文件达到第6份时自动清理1份)
_repo_retention_full_count=5# 每隔几天执行1次全量备份
_crond_full_days=3
# 每隔几天执行1次差异备份
_crond_diff_days=2
# 每隔几天执行1次增量备份
_crond_incr_days=1# 自动全量备份的备份时间(2表示凌晨2点执行)
_crond_full_hour=2
# 自动差异备份的备份时间(8表示早上8点执行)
_crond_diff_hour=8
# 自动增量备份的备份时间(17表示下午17点执行)
_crond_incr_hour=17

增加参数完成后不需要再次初始化,因为启动自动备份时间是读取 share/sys_backup.conf

        

2.3.2. 运行自动备份

初始化完成后直接运行

sys_backup.sh start

自动备份方法是基于系统的定时任务来实现,通过Linux命令 crontab -l 可以查看

启动自动备份后,通过命令反馈的日志信息可以得知,备份日志存放到:

  • log/sys_rman_backup_full.log
  • log/sys_rman_backup_diff.log
  • log/sys_rman_backup_incr.log

        

2.3.3. 关闭自动备份

关闭的方法也很简单,直接执行

sys_backup.sh stop

        

2.4. 管理备份

2.4.1. 查看备份列表

sys_rman--config=/kbbr_repo/sys_rman.conf  # 自动生成的备份配置--stanza=kingbaseinfo

头部说明 

  • full backup:全量备份信息
  • incr backup:增量备份信息
  • diff backup:差异备份信息

信息说明

  • timestamp start/stop:备份的开始/结束时间点
  • wal start/stop:备份开始/结束时的WAL日志文件
  • database size:数据库的运行时磁盘容量
  • database backup size:数据库的备份容量
  • backup set size:当前备份集的容量
  • backup size:当前备份集的实际磁盘容量,包含压缩因素和依赖备份集冗余

        

2.4.2. 按保留数清理备份

这种方法通常是在备份配置文件 share/sys_backup.conf 中的这个参数

_repo_retention_full_count=5  # 保留备份数量

初始化后会自动将参数配置到 kbbr_repo/sys_rman.conf 中,所以我们直接修改 kbbr_repo/sys_rman.conf 即可:例如只保留2份备份,那么修改为

_repo_retention_full_count=2

【示例】

1、先查看全量备份数

./bin/sys_rman --config=/home/yt/kbbr_repo/sys_rman.conf --stanza=kingbase info |grep 'full backup'

这里保留了4份

        

2、修改 kbbr_repo/sys_rman.conf

_repo_retention_full_count=2

        

3、手动清理

./bin/sys_rman --config=/home/yt/kbbr_repo/sys_rman.conf --stanza=kingbase expiresys_rman--config=/home/yt/kbbr_repo/sys_rman.conf--stanza=kingbaseexpire

        

4、查询剩余备份集

./bin/sys_rman --config=/home/yt/kbbr_repo/sys_rman.conf --stanza=kingbase info |grep 'full backup'

保留最新的2份

        

2.4.3. 按备份集名称清理

备份集名称就是查询备份列表时显示的名称:

sys_rman--config=/kbbr_repo/sys_rman.conf  # 自动生成的备份配置--stanza=kingbaseinfo

这里存在2份全量备份集,名称就是 full backup 后面的"20240526-060502F"

        

手动清理最后一份

sys_rman--config=/home/yt/kbbr_repo/sys_rman.conf--stanza=kingbaseexpire--set=20240422-194416F

注意:可以清理最新的备份集,但是不能全部清理,必须保留1个

        

3. 非独立还原

非独立还原对应前面的非独立备份,基于前面备份集来还原数据。

3.1. 基于测试性质的还原

  • 这种方式是指定新的 data 目录和临时禁止归档WAL文件
sys_rman--config=/home/yt/kbbr_repo/sys_rman.conf  # 配置文件绝对路径--stanza=kingbase--kb1-path=/home/yt/data_new # 还原的新data路径--archive-mode=off           # 临时禁制归档wal文件restore

还原后生成新的 data 目录,启动新 data 即可使用

        

3.2. 基于最新备份的还原

这种方法是将最新的备份集还原到数据库实例的 data 目录下(还原前需要关闭当前数据库实例),需要将原本 data 修改名称,还原自动生成 data 目录

sys_rman--config=/home/yt/kbbr_repo/sys_rman.conf  # 配置文件绝对路径--stanza=kingbaserestore

        

3.3. 指定备份集还原

如果不指定时间,工具将隐式地指定时间为备份集结束时间的后一秒

sys_rman --config=/home/yt/kbbr_repo/sys_rman.conf--stanza=kingbase--set='20200519-031336F'restore

指定时间,工具将验证指定时间是否晚于备份集结束时间

sys_rman--config=/home/yt/kbbr_repo/sys_rman.conf--stanza=kingbase--set='20200519-031336F'--type=time--target='2020-05-19 16:28:17'restore

        

3.4. 指定事务ID还原

sys_rman--config=/home/yt/kbbr_repo/sys_rman.conf--stanza=kingbase--type=xid--target='445566'--set='20210611-011416F_20210611-023050I'restore

使用指定的xid还原到特定状态,必须同时指定该xid之前的备份集,才能够恢复到该xid 

        

3.5. 指定时间点还原

sys_rman--config=/home/yt/kbbr_repo/sys_rman.conf--stanza=kingbase--type=time--target='2020-05-07 16:28:17'restore

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘爬虫技术:从请求到存储的全方位解析

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、爬虫初探:请求与响应 二、数据解析:从混乱中提炼价值 三、数据…

Megatron-LM源码系列(八): Context Parallel并行

1. Context Parallel并行原理介绍 megatron中的context并行(简称CP)与sequence并行(简称SP)不同点在于,SP只针对Layernorm和Dropout输出的activation在sequence维度上进行切分,CP则是对所有的input输入和所有的输出activation在sequence维度上进行切分&…

M00238-固定翼无人机集群飞行仿真平台MATLAB完整代码含效果

一个小型无人机集群仿真演示平台,使用matlab和simulink搭建。 给出的例子是5架的,当然如果你愿意花时间,也可以把它扩展到10架,20架甚至更多。 输入:5架飞机的规划路径 输出:每架无人机每个时刻的13个状态量…

Docker环境安装并使用Elasticsearch

1、拉取es docker pull elasticsearch:7.10.12、查看镜像 docker images3、启动es docker run -d --name esearch -p 9200:9200 -p 9300:9300 elasticsearch:7.10.14、如果启动ES时出现一下问题 Unable to find image docker.elastic.co/elasticsearch/elasticsearch:7.10.…

python max_min标准化

python max_min标准化 max_min标准化sklearn实现max_min标准化手动实现max_min标准化 max_min标准化 Max-Min标准化(也称为归一化或Min-Max Scaling)是一种将数据缩放到特定范围(通常是0到1)的标准化方法。这种方法通过线性变换将…

用PhpStudy在本地电脑搭建WordPress网站教程(2024版)

对新手来说,明白了建站3要素后,如果直接购买域名、空间去建站,因为不熟练,反复测试主题、框架、插件等费时费力,等网站建成可能要两三个月,白白损失这段时间的建站费用。那么新手怎么建测试网站来练手呢&am…

06.部署jpress

安装mariadb数据 yum -y install mariadb-server #启动并设置开启自启动 systemctl start mariadb.service systemctl enable mariadb.service数据库准备 [rootweb01 ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id…

OpenAI 再次刷新认知边界:GPT-4 颠覆语音助手市场,流畅度直逼真人互动?

前言 近日,美国人工智能研究公司 OpenAI 发布了其最新旗舰模型 GPT-4o,这一革命性的进展不仅标志着人工智能领域的新突破,更预示着即将步入一个全新的交互时代?GPT-4o 的发布,对于我们来说,意味着人工智能…

冯喜运:5.28黄金今日走势分析及黄金原油操作策略

【黄金消息面分析】:周一(5月27日)美盘时段,现货黄金止跌回稳,缓慢回升,盘中最高触及2358.4美元。美国商品期货交易委员会(Commodity Futures Trading Commission)的最新交易数据显示,对黄金的投…

空压机的热回收原理介绍

空压机运行时会产生大量的压缩热,通常这部分能量通过机组的风冷或水冷系统释放到大气当中。压缩机的热回收是持续降低空气系统损耗,提高客户生产力的必要手段。 余热回收的节能技术目前研究很多,但大多只针对喷油螺杆式空压机的油路改造而言…

Eureka全面解析:轻松实现高效服务发现与治理!

一、引言 Eureka是Netflix开源的一款服务发现框架,它提供了一种高效的服务注册和发现机制,适用于大规模分布式系统。本文将详细介绍Eureka的相关知识。 二、Eureka简介 Eureka是一个基于REST的服务发现框架,它提供了一种简单的服务注册和发…

如果创办Google

本文是一篇演讲稿,来自于《黑客与画家》一书的作者保罗*格雷厄姆,被称为硅谷创业之父。这是他为14至15岁的孩子们做的一次演讲,内容是关于如果他们将来想创立一家创业公司,现在应该做些什么。很多学校认为应该向学生们传授一些有关…

ADS基础教程15 - 设计加密保护IP

设计加密保护IP 一、引言二、IP的生成与调用1.IP生成2.IP的调用 一、引言 介绍如何ADS中如何对设计好的原理图进行加密形成IP,然偶进行调用的过程。 二、IP的生成与调用 1.IP生成 (1)选择一个已经调试好的原理图,在菜单栏中选择Tools–>Encode De…

python中import的搜索路径

文章目录 前言 一 python中import的搜索路径1. python中import的搜索路径先判断是否内置模块根据sys.path查找1.1 脚本当前目录和所属项目目录1.2 环境变量1.3 标准库1.4 .pth 文件1.5 第三方库 2. 解决ModuleNotFoundError 前言 码python时经常会遇到找不到包或者找不到模块的…

OpenWrt 23.05 安装之后默认空间小 磁盘扩容 教程 软路由实测 系列六

1 安装fdisk opkg update opkg install fdisk #查看磁盘 rootOpenWrt:~# fdisk -l GPT PMBR size mismatch (246303 ! 250069679) will be corrected by write. The backup GPT table is not on the end of the device. Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 25006…

开源远程协助:分享屏幕,隔空协助!

🖥️ 星控远程协助系统 🖱️ 一个使用Java GUI技术实现的远程控制软件,你现在就可以远程查看和控制你的伙伴的桌面,接受星星的指引吧! 支持系统:Windows / Mac / Linux 🌟 功能导览 &#x1f…

【Flutter】KeyAnimatedList组件

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月28日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

10个最佳人物素材网站推荐,免费获取第一个PNG文件!

人物素材是设计中应用最广泛的元素之一。无论是网页设计还是移动终端设计,人物素材的插画设计都比文字信息更容易吸引用户的注意力。作为内容呈现,还可以增加设计的艺术属性。为了节省大家寻找人物素材的时间成本,本文立即为大家整理了10个宝…

Java 实验12 线程同步与通信

(一)实验目的 1、掌握JAVA中多线程的实现方法; 2、重点掌握多线程的同步与通信机制; 3、熟悉JAVA中有关多线程同步与通信的方法 ; 4、能使用多线程机制解决实际应用中的线程同步与通信问题。 (二&…

行为设计模式之职责链模式

文章目录 概述原理代码实现小结 概述 职责链模式(chain of responsibility pattern) 定义: 避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求.将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止. 在职责链模式中&…