openGauss提供了三种物理备份与恢复相关的工具:gs_backup、gs_basebackup和gs_probackup。
下面我参考官方文档,加以解释。用gs_probackup来进行操作数据备份恢复
1.配置。
[omm@opengauss ~]$ gs_guc reload -D /app/openGauss/install/data/dn -c "enable_cbm_tracking = on"
使用PTRACK增量备份,需在postgresql.conf中手动添加参数“enable_cbm_tracking = on”。-D后面携带的是$PGDATA的路径
需要根据实际安装环境替换。(输入echo $PGDATA,路径会出来)
也可以直接在postgresql.conf中手动添加参数“enable_cbm_tracking = on”,然后重启数据库。
-----------------------------------------------红色字体为根据实际情况需要改变的。
2.初始化备份路径。
[omm@opengauss ~]$ gs_probackup init -B /home/omm/probkp
可指定目录位置,会在指定路径下生成backups和wal两个文件夹
3.初始化备份实例
[omm@opengauss ~]$ gs_probackup add-instance -B /home/omm/probkp -D /app/openGauss/install/data/dn --instance instance_local
在备份路径_backup-path_内初始化一个新的备份实例(可自定义,把instance_local替换掉),并生成pg_probackup.conf配置文件,该文件保存了指定数据目录_pgdata-path_的gs_probackup设置。
##### INFO: Instance 'instance_local' successfully inited 成功显示这个
[root@opengauss ~]# find / -name pg_probackup.conf
/home/omm/probkp/backups/instance_local/pg_probackup.conf
[root@opengauss~]#more /home/omm/probkp/backups/instance_local/pg_probackup.conf
# Backup instance information
pgdata = /app/openGauss/install/data/dn
system-identifier = 3423356205360426
4.全备
将指定的连接、压缩、日志等相关设置添加到pg_probackup.conf配置文件中
[omm@opengauss~]$ gs_probackup set-config -B /home/omm/probkp --instance=instance_local
[omm@opengauss~]$ gs_probackup show-config -B /home/omm/probkp --instance=instance_local --format json
显示位于备份目录中的pg_probackup.conf配置文件的内容。
#可以通过指定–format=json选项,
#以json格式显示。默认情况下,显示为纯文本格式。
进行全备
[omm@opengauss~]$ gs_probackup backup -B /home/omm/probkp --instance instance_local -d postgres -b FULL -p 15400
gs_probackup backup: 这是调用 gs_probackup 工具的备份功能。
-B /home/omm/probkp: 这个选项指定了备份文件存储的位置,即 /home/omm/probkp 目录。
--instance instance_local: 这个选项指定了要备份的实例名称,这里是 instance_local
-d postgres: 这个选项指定了要备份的数据库名称,这里是 postgres 数据库。
-b FULL: 这个选项指定了备份类型为全量备份(FULL)。
-p 15400: 这个选项指定了 PostgreSQL 数据库服务器的端口号,这里是 15400
#记住备份ID,恢复的时候需要使用,backup ID:
#这里-d 指定要连接的数据库名称。该连接仅用于管理备份进程,因此您可以连接到任何现有的数据库 因为这是全被,即所有数据库都会备份,备单个是其他命令。
##查看备份情况
[omm@opengauss ~]$ gs_probackup show -B /home/omm/probkp --instance instance_local
5.增备
这里我们对数据库进行一些变更后再进行增量备份。
增量备份
gs_probackup backup -B /home/omm/probkp --instance instance_local -d postgres -b PTRACK -p 15400
gs_probackup show -B /home/omm/probkp
查看备份的记录
## 将增量备份和全量备份合并,将指定的增量备份与其父完全备份之间的所有增量备份合并到父完全备份。
父完全备份将接收所有合并的数据,而已合并的增量备份将作为冗余被删除
并所有增量备份到全备中,只需要指定最后一个增量备份的id
[omm@opengauss ~]$ gs_probackup merge -B /home/omm/probkp --instance instance_local -i SHBRWR
6.误删除
这里我们直接将一个库删除,然后使用合并后的备份文件恢复
[omm@opengauss ~]$ gsql -d postgres -p 15400
openGauss=# drop database dumpdb;
#登录和删除的库不要是同一个,不然删不掉。
7.恢复。
## 使用restore子命令前,应先停止gaussdb进程。
[omm@opengauss ~]$ gs_ctl stop -D /app/openGauss/install/data/dn
## 执行restore恢复到误删前的数据状态。
omm@opengauss ~]$ cd /app/openGauss/install/data/dn
[omm@opengauss ~]$ rm -rf * 这里上来就是rm全部,需谨慎考虑,慎重!!!测试无所谓
[omm@opengauss ~]$ gs_probackup restore -B /home/omm/probkp --instance instance_local -D /app/openGauss/install/data/dn
8.启动数据库登陆
[omm@opengauss ~]$ gs_ctl start -D /app/openGauss/install/data/dn
[omm@opengauss dn]$ gsql -d 数据库 -U 用户名 -p 15400
检查恢复情况
9.清理备份
[omm@opengauss ~]$ gs_probackup del-instance -B /home/omm/probkp --instance instance_local
属于全部删除,需从头再来
gs_probackup delete -B /home/omm/probkp -i 备份ID--instance instance_local
没了
———————————————————————————————————————
其他命令
1.查看版本
[omm@opengauss ~]$ gs_probackup version
2.远程备份
远程备份需要添加--remote-host参数,连接参数:-d,-p,-U,-W
gs_probackup backup -B /backup --instance OG2 -b FULL -d postgres -p 15400 -r
emote-host 10.10.10.101 -U user -W passwd
gs_probackup backup
: 这是调用gs_probackup
工具的备份命令。-B /backup
: 指定备份文件存储的目录为/backup
。--instance OG2
: 指定要备份的实例名称为OG2
。-b FULL
: 指定备份类型为全量备份(FULL)。-d postgres
: 指定一个数据库名称为postgres 仅用于管理备份进程
-p 15400
: 指定PostgreSQL数据库服务器监听的端口号为15400
。-remote-host 10.10.10.101
: 指定远程主机的IP地址为10.10.10.101
。-U user
: 指定用于连接数据库的用户名。-W passwd
: 指定用于连接数据库的密码。
---------非原创,加强解释