暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

基于BRM的mogdb备份恢复

由迪 2024-04-24
307

原作者:张鹏远

  • 适用范围
  • 一、备份
    • 1、创建brm目录
    • 2、把压缩包上传到/data/brm目录下
    • 3、解压压缩包
    • 4、配置brm初始化参数文件
    • 5、验证brm工具命令是否可以使用
    • 6 添加备份实例
    • 8 设置备份实例
    • 9 数据备份
    • 10 WAL备份
  • 二、部署与生产环境相同版本mogdb数据库
    • 1.生成公钥(root用户)
    • 2.编辑config.yaml
    • 3.部署前检查(root用户)
    • 4.部署数据库(root用户)
    • 5.检查
    • 6.数据库开启归档(omm用户)
  • 三、备份恢复
    • 1.brm配置 (拷贝生产环境brm.yaml文件)
    • 2.创建备份目录(root用户)
    • 3.测试环境数据库添加server
    • 4.查看添加服务
    • 5.解压备份至备份文件存放目录
    • 6.替换pg_probackup.conf文件(需与生产环境一致)
    • 7.查看备份
    • 8.全备恢复
    • 9.基于时间点恢复

适用范围

Mogdb 3.0.x\5.0.x

一、备份

根据对应的系统架构选择对应的压缩包上传到集群主机房的主节点上,然后在该节点上进行如下操作:

1、创建brm目录

mkdir -p /data/brm/

2、把压缩包上传到/data/brm目录下

3、解压压缩包

cd /data/brm
unzip brm_1.0.4_linux_arm64.zip
chown omm: -R brm

4、配置brm初始化参数文件

在/home/omm/下创建目录.brm并将配置文件复制到/home/omm/.brm目录下
mkdir -p /home/omm/.brm
cp /opt/brm/conf/brm.yaml /home/omm/.brm/
修改配置文件brm.yaml,指定备份文件存放的路径和日志存放路径,所写路径需要omm用户具有创建目录权限。
备份文件存放路径:/dbback/xc003
备份日志存放路径:/data/brm/brm.log

5、验证brm工具命令是否可以使用

查看当前工具版本。
/data/brm/brm version

6 添加备份实例

image.png
$ /data/brm/brm add-server --instance=xc003 --pgdata=/data/mogdb/data --pgdatabase=postgres --pgport=26000 --pguser=omm --retention-redundancy=7 --retention-window=0 --archive-dir=/data/mogarch

8 设置备份实例

image.png
$ /data/brm/brm set-server --instance=xc003 --pgdata=/data/mogdb/data --pgdatabase=postgres --pgport=26000 --retention-redundancy=7 --retention-window=0 --archive-dir=/data/mogarch

9 数据备份

image.png
/data/brm/brm backup --instance=xc003 --backup-mode=full --backup-pg-log --delete-expired --delete-wal --no-validate --expire-time=‘2024-01-01 00:00:00+03’ --merge-expired --no-sync --note=‘test’ --skip-block-validation --smooth-checkpoint --stream --temp-slot --threads=1 --progress

10 WAL备份

image.png
$ /data/brm/brm backup-wal --instance=mogdb --primary-host=1.254.100.10 --primary-host-password=mogdb!123456 --primary-host-user=omm

显示所有数据备份集
$ /data/brm/brm show-backup
显示单实例WAL备份集
$ /opt/brm/brm show-wal --instance=mogdb

注意:若需按时间点恢复,必须有基于全量或增量备份集恢复时间点的wal备份。

二、部署与生产环境相同版本mogdb数据库

1.生成公钥(root用户)

ssh-keygen -t rsa

2.编辑config.yaml

[root@te-mogdb-te2 soft]# cat test_cjgt.yaml

解释global:
 cluster_name: cjgt
 user: omm
 group: omm
 db_password: pTk6MTE3NDA1YmU9PT4/PUI8PkdIUFNnX1FvS0dzWGZ1MF9XdGFfSGFMSldOOWlqNHI2dmhTU0MwNlF6SE0=
 db_port: 26000
 base_dir: /opt/mogdb
db_servers:
 - host: 30.1.14.41
 role: primary
 az_name: AZ1
 az_priority: 1
 ssh_option:
 port: 22
 user: root
 key_file: /root/.ssh/id_rsa
cm_servers: []

3.部署前检查(root用户)

ptk checkos -f test_cjgt.yaml --gen-warning-fix

修复操作系统配置(root用户)

root_fix_os.2023.1208.165027.sh

4.部署数据库(root用户)

ptk install -f test_cjgt.yaml --pkg ./MogDB-3.0.3-openEuler-arm64.tar.gz

5.检查

解释[root@te-mogdb-te2 soft]# ptk ls
 cluster_name | id | addr | user | data_dir | db_version | create_time | comment 
---------------+------+------------------+------+-----------------+------------------------------+---------------------+----------
 cjgt | 6001 | 30.1.14.41:26000 | omm | /opt/mogdb/data | MogDB 3.0.3 (build 23ba838d) | 2023-12-08 16:51:15 |

6.数据库开启归档(omm用户)

解释mkdir -p /data/mog_arch
gsql -r
alter system set archive_mode=on;
alter system set archive_dest='/data/mog_arch';

三、备份恢复

1.brm配置 (拷贝生产环境brm.yaml文件)

vi /home/omm/.brm/brm.yaml(omm用户)

解释没有启用

backup_user: omm

# 备份文件存放目录

backup_home: /nbusharespace/brmdata

# 日志目录

log_file: /var/log/brm/brm.log

# 日志级别

log_level: INFO

# 没有启用

lock_directory: /var/lib/run

# wal全局备份几次 default 1

wal_retention_redundancy: 1

# 是否允许主库进行备份. default:false

no_allow_primary_backup: false
network_limit_rate: 10m

# default on

enable_backup_wal_file_check: on

## 启动备份文件中心同步

#enable_backup_push: on

## 当前Brm节点名称,当enable_backup_center_push为on时此项为必填

#brm_node_name: 127.0.0.1:5434

## brm 备份文件集中存储配置

#backup_center:

# - host: 127.0.0.1

# port: 44332

# - host: 127.0.0.1

# port: 44333

2.创建备份目录(root用户)

解释mkdir -p /nbusharespace/brmdata

mkdir -p /var/log/brm

chown omm.omm /var/log/brm

chown -R omm.omm /nbusharespace

3.测试环境数据库添加server

/opt/soft/brm/brm add-server --instance=cjgt --pgdata=/opt/mogdb/data --pgdatabase=postgres --pgport=26000 --pguser=omm --retention-redundancy=1 --retention-window=0 --archive-dir=/data/mog_arch

4.查看添加服务

解释[omm@te-mogdb-te2 cjgt]$ /opt/soft/brm/brm list-server
time="2023-12-08 18:02:05.1179" level=info msg="Using config file:/home/omm/.brm/brm.yaml"
time="2023-12-08 18:02:05.128956" level=info msg="the gs_probackup path /opt/mogdb/app/bin/gs_probackup"
time="2023-12-08 18:02:05.536309" level=info msg="the gs_probackup version 3.0.3"
time="2023-12-08 18:02:05.536507" level=info msg="the gs_ctl path /opt/mogdb/app/bin/gs_ctl"
time="2023-12-08 18:02:05.555215" level=info msg="gs_ctl version "
instance PgData PgUser PgDatabase PgVersion  
cjgt /opt/mogdb/data omm postgres 3.0.3

5.解压备份至备份文件存放目录

解释全备
cd /nbusharespace/brmdata/backups/cjgt/
wget http://10.1.199.108:8081/repository/files/cjgt_fullbackup.20231207.tar
tar -xvf /opt/restore/cjgt_fullbackup.20231207.tar
解释wal归档
cd /nbusharespace/brmdata/wal/cjgt/
wget http://10.1.199.108:8081/repository/files/cjgt_walbackup.20231208061001.tar 
tar -xvf /opt/restore/archive/cjgt_walbackup.20231208061001.tar

6.替换pg_probackup.conf文件(需与生产环境一致)

vi /nbusharespace/brmdata/cjgt/pg_probackup.conf

解释Backup instance information

pgdata = /opt/mogdb/data
system-identifier = 2913499697176251241

# Connection parameters

pgdatabase = postgres
pgport = 26000
pguser = omm

# Retention parameters

retention-redundancy = 3
retention-window = 0
wal-depth = 0

# Remote access parameters

remote-proto = ssh
remote-port = 22
ssh-options = -i

7.查看备份

解释[omm@te-mogdb-te2 ~]$ /opt/soft/brm/brm list-backup
time="2023-12-08 18:03:10.158628" level=info msg="Using config file:/home/omm/.brm/brm.yaml"
time="2023-12-08 18:03:10.159033" level=info msg="the gs_probackup path /opt/mogdb/app/bin/gs_probackup"
time="2023-12-08 18:03:10.166895" level=info msg="the gs_probackup version 3.0.3"
time="2023-12-08 18:03:10.167046" level=info msg="the gs_ctl path /opt/mogdb/app/bin/gs_ctl"
time="2023-12-08 18:03:10.174458" level=info msg="gs_ctl version "
data source: local
====================================================================================================================================
 Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status 
====================================================================================================================================
 cjgt 9.2 S5AMSF 2023-12-07 19:10:10+08 FULL STREAM 1/0 314s 9GB 16MB 1.00 5C/9E000028 5C/9E028268 OK

8.全备恢复

停止测试环境数据库
ptk cluster stop -n cjgt

解释备份data文件
mv /opt/mogdb/data /opt/mogdb/data_bak

恢复全备
/opt/soft/brm/brm restore -i cjgt -b S5AMSF -D /opt/mogdb/data

9.基于时间点恢复

停止测试环境数据库
ptk cluster stop -n cjgt

解释备份data文件
mv /opt/mogdb/data /opt/mogdb/data_bak

时间点恢复
/opt/soft/brm/brm restore -i cjgt -D /opt/mogdb/data --recovery-target-time='2023-12-07 19:30:10+08'
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论