原作者:张鹏远
- 适用范围
- 一、备份
- 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 添加备份实例

$ /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 设置备份实例

$ /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 数据备份

/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备份

$ /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'




