金仓数据库KES物理备份操作

rman单机本地备份操作步骤

一、配置物理备份前提条件

1、创建备份目录

mkdir /home/kingbase/kbbr_repo

2、数据库开启归档

(1)修改配置文件kingbase.conf中参数:

archive_mode=on

archive_command=’’

(2)重启数据库

sys_ctl restart -D /home/kingbase/KingbaseES/V8/data

3、配置ssh免密登录

kingbase用户执行

ssh-keygen -t rsa

ssh-copy-id -i /home/kingbase/.ssh/id_rsa.pub kingbase@192.168.114.13

ssh-copy-id -i /home/kingbase/.ssh/id_rsa.pub root@192.168.114.13

二、配置物理备份

1、修改物理备份配置文件

vi /home/kingbase/KingbaseES/V8/Server/bin/sys_backup.conf

# 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="192.168.114.13" --本机物理IP

# 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="192.168.114.13" --本机物理IP,与_one_db_ip配置相同

# 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="/home/kingbase/kbbr_repo" --备份路径

# count of keep, over the count FULL-backup will be remove

_repo_retention_full_count=5 --全量备份保留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="/bin/rm"

_os_sed_cmd="/bin/sed"

_os_grep_cmd="/bin/grep"

# !!! these follow 4 parameter ONLY for single style

# data dir of single

_single_data_dir="/home/kingbase/KingbaseES/V8/data"

# bin dir of single

_single_bin_dir="/home/kingbase/KingbaseES/V8/Server/bin"

#_single_bin_dir="/home/kingbase/KingbaseES/V8/Server/bin"

# database user of single

_single_db_user="system"

# database port of single

_single_db_port="54321"

2、执行sys_backup.sh init备份初始化

cd /home/kingbase/KingbaseES/V8/Server/bin/

./sys_backup.sh init

——执行后会在备份文件路径 /home/kingbase/kbbr_repo 创建文件夹、文件、配置文件等,并备份一次全量数据。

3、执行sys_backup.sh start添加定时任务

cd /home/kingbase/KingbaseES/V8/Server/bin/

./sys_backup.sh start

——执行后会在定时任务中添加备份任务

4、查看定时任务

### 关于人大金仓数据库物理备份的方法 目前提供的引用主要涉及逻辑备份以及一些基础的安全配置相关内容[^1],并未直接提及具体的物理备份方法。然而,在人大金仓数据库(KingbaseES)中,物理备份通常是指通过文件级操作来实现数据保护的一种方式。 #### 什么是物理备份物理备份是对底层存储结构的复制过程,它不依赖于SQL语句或其他高层抽象机制。对于KingbaseES而言,其物理备份主要包括以下几个方面: - **全量备份**:将整个数据库实例的数据目录完全拷贝下来,这包括所有的表空间、WAL日志以及其他必要的元数据文件。 - **增量备份**:基于上一次全量或者增量备份的基础上记录变化部分的内容。这种策略可以减少所需磁盘空间并加快后续恢复速度。 为了实施有效的物理备份方案,建议遵循如下原则和技术要点: 1. **停止服务或启用只读模式** 在执行任何类型的物理备份之前,最好能够暂停写入活动或将系统切换至只读状态以防止数据损坏。如果无法停机,则需考虑使用在线热备技术[^2]。 2. **利用Write-Ahead Logging (WAL)** WAL是一种重要的事务管理特性,允许在不停止正常业务运行的情况下完成持续性的数据同步工作。通过定期归档这些日志条目并与周期性制作的基础快照相结合,即可构建完整的灾难恢复链条。 3. **压缩与传输优化** 对大型生产环境来说,原始二进制副本可能非常庞大难以处理。因此应该采用合适的算法对其进行压缩后再上传到远程位置保存起来,比如借助Docker容器化部署架构下的专用REPO节点作为目标仓库。 4. **加密措施保障安全性** 鉴于敏感信息泄露风险的存在,在实际应用过程中还应当重视信息安全层面的工作。例如运用`sys_encpwd`命令行工具生成经过哈希散列后的密码串存放到`.encpwd`隐藏文档里用于身份验证流程控制访问权限范围内的资源[^3]。 以下是简单的脚本样例展示如何创建基本的物理备份计划: ```bash #!/bin/bash BACKUP_DIR="/path/to/backup" DATA_DIR="/var/lib/kingbase/data" # Step to ensure no new transactions occur during backup. pg_ctlcluster 12 main stop --mode=fast || pg_ctlcluster 12 main start --mode=recovery_only tar czf "$BACKUP_DIR/full_backup_$(date +%Y%m%d%H%M%S).tgz" -C "$(dirname $DATA_DIR)" "$(basename $DATA_DIR)" find /path/to/wal/archives/* -type f -mtime +7 -exec rm {} \; ``` > 注意上述仅为示意代码片段,请根据实际情况调整路径参数及其他细节设定!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值