当前位置: 首页 > news >正文

KingbaseES物理备份还原之物理备份

        上周项目出差要求实现物理备份还原特性,今天唠唠怎么配置如何执行备份还原.主要是需要注意的几点,在操作过程中避坑就是了.

        KingbaseES版本:V009R004C011B003

        -->修改数据库配置参数

[V9R4C11B3@192-168-198-198 V8]$ vi /home/V9R4C11B3/ES/V8/data/kingbase.conf
[V9R4C11B3@192-168-198-198 V8]$ grep -r 'wal_level' /home/V9R4C11B3/ES/V8/data/kingbase.conf
[V9R4C11B3@192-168-198-198 V8]$ grep -r 'archive_mode' /home/V9R4C11B3/ES/V8/data/kingbase.conf

        -->启动数据库服务,配置物理备份

[V9R4C11B3@192-168-198-198 V8]$ sys_ctl -D /home/V9R4C11B3/ES/V8/data/ start
[V9R4C11B3@192-168-198-198 V8]$ vi /home/V9R4C11B3/ES/V8/Server/share/sys_backup.conf

        --sys_backup.conf配置文件相关参数如下:

_target_db_style="single"
_one_db_ip="192.168.198.198"
_repo_ip="192.168.198.198"
_stanza_name="V9R4C11B3"
_os_user_name="V9R4C11B3"
_repo_path="/home/V9R4C11B3/backup/rman/kbbr_repo"
_single_data_dir="/home/V9R4C11B3/ES/V8/data"
_single_bin_dir="/home/V9R4C11B3/ES/V8/Server/bin"
_use_scmd=off

        注意:_use_scmd参数在不使用KingbaseES集群通信工具sys_securecmdd时必须设置为off,或者自行配置并启动sys_securecmdd服务(单机没必要,集群纯耽误功夫).宗旨就是只要不禁用ssh,就不启用sys_securecmdd;_repo_path最后一级目录不能存在(是不能存在不是不能为空);_one_db_ip参数是为集群查看状态设置的,单机可忽略此参数;其他参数按照实际环境修改配置即可.

        -->创建物理备份存放路径,配置客户端system用户免密登录

[V9R4C11B3@192-168-198-198 V8]$ mkdir -p /home/V9R4C11B3/backup/rman/
[V9R4C11B3@192-168-198-198 V8]$ sys_encpwd  -H \* -P \* -D \* -U system -W 123456

        注意:此处sys_encpwd是必须要执行的,这是物理备份执行ksql免密连接数据库验证数据库服务是否正常运行时需要用到的;附带一句:配置三员,及三权分立的时候最好也把SSO和SAO用户配置下,能省去手动输入密码;最最最主要的是,当你不知道system密码的时候,可以通过数据库安装用户家目录下的.encpwd文件中的system:后面的编码找到system密码,具体操作:echo '编码'|base64 -d.

        -->执行物理备份初始化并启动物理备份定时任务

[V9R4C11B3@192-168-198-198 V8]$ bash /home/V9R4C11B3/ES/V8/Server/bin/sys_backup.sh init
[V9R4C11B3@192-168-198-198 V8]$ bash /home/V9R4C11B3/ES/V8/Server/bin/sys_backup.sh start
[V9R4C11B3@192-168-198-198 V8]$ crontab -l

        -->查看物理备份信息,并创建测试数据

[V9R4C11B3@192-168-198-198 V8]$ /home/V9R4C11B3/ES/V8/Server/bin/sys_rman --config=/home/V9R4C11B3/backup/rman/kbbr_repo/sys_rman.conf --stanza=V9R4C11B3 info
[V9R4C11B3@192-168-198-198 V8]$ ksql -Usystem -d mydb
mydb=# create table t1(c1 int,c2 varchar(10));
mydb=# insert into t1 values(1,'a'),(2,'b'),(3,'c');

     

      -->执行一次物理全量备份,并查看备份信息  

[V9R4C11B3@192-168-198-198 V8]$ /home/V9R4C11B3/ES/V8/Server/bin/sys_rman --config=/home/V9R4C11B3/backup/rman/kbbr_repo/sys_rman.conf --stanza=V9R4C11B3 --archive-copy --type=full backup
[V9R4C11B3@192-168-198-198 V8]$ /home/V9R4C11B3/ES/V8/Server/bin/sys_rman --config=/home/V9R4C11B3/backup/rman/kbbr_repo/sys_rman.conf --stanza=V9R4C11B3 info

        -->追加创建测试数据,执行一次物理增量备份,并查看备份信息

[V9R4C11B3@192-168-198-198 V8]$ ksql -U system -d mydb
mydb=# create table t2(c1 int,c2 varchar(10));
mydb=# insert into t2 values(11,'aa'),(22,'bb'),(33,'cc');
[V9R4C11B3@192-168-198-198 V8]$ /home/V9R4C11B3/ES/V8/Server/bin/sys_rman --config=/home/V9R4C11B3/backup/rman/kbbr_repo/sys_rman.conf --stanza=V9R4C11B3 --archive-copy --type=incr backup >> /home/V9R4C11B3/ES/V8/Server/log/sys_rman_backup_incr.log 2>&1
[V9R4C11B3@192-168-198-198 V8]$ /home/V9R4C11B3/ES/V8/Server/bin/sys_rman --config=/home/V9R4C11B3/backup/rman/kbbr_repo/sys_rman.conf --stanza=V9R4C11B3 info

        物理备份工具就是开源的pgbackrest,具体哪个版本没仔细研究过.说实话,也并不是直接搬过来照抄编译使用的,在KingbaseES官方文档中,在物理备份时提出了粒度不同的两种增量物理备份方式:

        在pgbackrest官网(pgBackRest - Command Reference)中是没有基于块粒度的物理备份的.

        

        且在KingbaseES数据库物理备份定时任务也是基于文件粒度去执行增量备份的.感兴趣的可以试试基于块粒度的物理备份.个人感觉,最终的结果只是体现在备份结果集所占存储大小(page相当于pgbackrest官方的incr,而KingbaseES是将表文件都备份).

http://www.dtcms.com/a/106351.html

相关文章:

  • 单框架鸿蒙开发
  • 解决报错curl: (35) OpenSSL SSL_connect: 连接被对方重设 in connection to download.docker.com:443
  • JavaScript闭包
  • Python设计模式:责任链模式
  • JAVASE(十三)常用类(二)包装类、工具类Arrays类
  • 【案例分享】江苏某汽车制造厂水冷式制冷站AI节能优化方案
  • LVS-----DR模式
  • JAVA中JVM一次 GC的 流程
  • 电脑屏幕亮度随心控,在Windows上自由调整屏幕亮度的方法
  • 分布式数据一致性场景与方案处理分析|得物技术
  • 谷粒商城:Redisson
  • TiDB 可观测性解读(二)丨算子执行信息性能诊断案例分享
  • Linux网络编程socket服务器端模拟实现
  • JSP 指令
  • Python数据类型-dict
  • 第八届 蓝桥杯 嵌入式 省赛
  • 【ESP32-IDF 笔记】02-LED PWM 配置
  • 运维面试题(ORACLE数据库)--20250401
  • Cesium学习(未完继续)
  • 题解:AT_arc050_c [ARC050C] LCM 111
  • Android的安全问题 - 在 Android 源码的 system/sepolicy 目录中,区分 public、private 和 vendor的目的
  • Kotlin 作用域函数:apply、let、run、with、also
  • 掩码图像建模 (MIM) 中的对数似然与交叉熵
  • 品铂科技与宇都通讯UWB技术核心区别对比(2025年)
  • C++:位图和布隆过滤器
  • spring-ai-alibaba第三章ollama集成Tool
  • 【redis】缓存 更新策略(定期、实时生存),缓存预热、穿透、雪崩、击穿详解
  • ERP管理系统:Java+Vue,含源码及文档,一体化管理资源,优化流程,强化企业运营效率
  • React.memo()和 useMemo()的用法是什么,有哪些区别
  • CSS3学习教程,从入门到精通,CSS3 媒体查询实现响应式布局语法指南(21)