南大通用GBase 8c远程备份还原实践

原文链接:https://www.gbase.cn/community/post/5379

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

南大通用GBase 8c数据库支持用户通过备份服务器的方式对集群进行物理全量、增量备份和还原,还提供内置的gs_probackup工具来实现远程备份和还原,支持配置灵活的备份策略和方式,如增量备份、定期备份、远程备份和恢复。

gs_probackup 工具用于管理 GBase 8c 数据库备份和恢复,基于该工具可以进行对GBase 8c数据库实例的定期备份,以便网络或机器故障时能及时恢复数据。除了备份数据库内的数据之外,还可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump等文件。本文主要介绍如何通过gs_probackup工具配置GBase 8c数据库的远程备份策略。

0、环境说明

基于gs_probackup,在某测试环境下,将gbase数据库集群备份到备用机,并恢复到指定目录。

环境信息如下:

数据库服务器IP:172.16.71.58

备份服务器IP:172.16.200.108

1、备份部署

(1)在数据库服务器和备份服务器上配置gbase系统用户的双向免密登录。

登录数据库服务器172.16.71.58,并配置免密:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@gbase8c-iicp-db01 ~]$ ssh-keygen -t rsa

[gbase@gbase8c-iicp-db01 ~]$ ssh-copy-id -i gbase@172.16.200.108

登录备份服务器172.16.200.108,并配置免密:

[root@ZSC-GB8C-NODE1 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]$ ssh-keygen -t rsa

[gbase@ZSC-GB8C-NODE1 ~]$ ssh-copy-id -i gbase@172.16.71.58

(2)修改数据库参数,并规划归档日志目录

登录数据库服务器172.16.71.58,并修改参数:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@gbase8c-iicp-db01 ~]$  gs_guc reload -N all -I all -c "archive_mode=on"

[gbase@gbase8c-iicp-db01 ~]$  gs_guc reload -N all -I all -c "archive_timeout=1800"

[gbase@gbase8c-iicp-db01 ~]$  gs_guc reload -N all -I all -c "archive_command = 'scp %p gbase@172.16.200.108:/data/mpp/backup/zhck/archive_dir/%f'"

[gbase@gbase8c-iicp-db01 ~]$ gs_guc reload -N all -I all -c "enable_cbm_tracking=on"

参数说明:

archive_mode参数指定是否开启归档。

取值范围:on表示开启归档,off表示不启用归档

默认值:off

archive_timeout参数指定归档周期

取值范围:整型,0~1073741823,单位为秒,0表示禁用该功能。

默认值:0

archive_command参数用于设置归档WAL日志命令,建议归档路径为绝对路径。

取值范围:字符串

默认值:disabled(表示禁用该功能)

enable_cbm_tracking参数在增量备份时需要开启该参数。关闭该参数会导致备份失败。

取值范围:布尔值,on表示开启追踪功能,off表示关闭追踪功能。

默认值:off

(3)开启备份服务器的远程访问数据库的权限

登录数据库服务器172.16.71.58,并开启远程访问权限:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@gbase8c-iicp-db01 ~]$ gs_guc reload -N all -I all -h "host replication all 172.16.200.108/32 md5"

(4)数据库创建用于备份的用户及授权

登录备份服务器172.16.200.108,测试登录数据库是否正常,并创建备份用户:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@gbase8c-iicp-db01 ~]$  gsql -d postgres -h 172.16.71.58

postgres=# create user dba with password 'gbase,123' sysadmin;

postgres=# grant all privileges to dba;

(5)在备份服务器上创建归档目录

登录备份服务器172.16.200.108,创建备份归档目录:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# mkdir -p /data/mpp/backup/zhck/iicp

(6)初始化备份

切换gbase用户:

[root@gbase8c-iicp-db01 ~]# su - gbase

初始化备份路径_backup-path_中的备份目录,该目录将存储已备份的内容:

[gbase@ZSC-GB8C-NODE1 ~]#  gs_probackup init  -B /data/mpp/backup/zhck/iicp

在备份路径_backup-path_内初始化一个新的备份实例,并生成pg_probackup.conf配置文件:

[gbase@ZSC-GB8C-NODE1 ~]#  gs_probackup add-instance -B /data/mpp/backup/zhck/iicp -D /home/gbase/data/dn1 --instance=gbase_zhck --remote-host=172.16.71.58 --remote-user=gbase

将指定的连接、压缩、日志等相关设置添加到pg_probackup.conf配置文件中,假如预留30天备份,可恢复30天前的备份:

[gbase@ZSC-GB8C-NODE1 ~]# gs_probackup set-config -B /data/mpp/backup/zhck/iicp --instance=gbase_zhck --retention-redundancy=30 --retention-window=30

显示位于备份目录中的pg_probackup.conf配置文件的内容:

[gbase@ZSC-GB8C-NODE1 ~]#  gs_probackup show-config -B /data/mpp/backup/zhck/iicp --instance=gbase_zhck

(7)全量备份

执行进行全量备份:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# cd /data/mpp/backup/zhck

[gbase@ZSC-GB8C-NODE1 ~]# gs_probackup backup -B /data/mpp/backup/zhck/iicp -b FULL -h 172.16.71.58 -p 15432 -U gbase -W 'gbase,123' --instance=gbase_zhck --delete-expired -d postgres --remote-host=172.16.71.58 --remote-user=gbase

(8)增量备份

执行全量备份:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# cd /data/mpp/backup/zhck

[gbase@ZSC-GB8C-NODE1 ~]# gs_probackup backup -B /data/mpp/backup/zhck/iicp -b PTRACK -h 172.16.71.58 -p 15432 -U gbase -W 'gbase,123' --instance=gbase_zhck --delete-expired -d postgres  --remote-host=172.16.71.58 --remote-user=gbase

2、数据恢复

本文示例恢复到当前主机的单独目录。在实际生产环境下,当集群出现误操作或其他因素导致数据损坏,当原集群可以启动情况下,数据恢复均不建议直接在原恢复,否则可能造成数据库的二次破坏。建议恢复到其他节点后,核对数据完成后再将数据导入生产集群。

2.1、全量恢复

(1)查看备份

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# cd /data/mpp/backup/zhck

[gbase@ZSC-GB8C-NODE1 ~]#  gs_probackup show -B /data/mpp/backup/zhck/iicp

查看备份,如下图所示:

(2)在数据库服务器上创建一个恢复目录,用于数据恢复。 在实际生产环境中建议恢复到其他服务器,如预发布或准生产环境。

登录数据库服务器172.16.71.58,并创建恢复目录:

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# mkdir /data/mpp/backup/zhck/restore_test -p

(3)例如,恢复到2024-12-04 19:04:47的全量备份到数据库服务器172.16.71.58

[gbase@ZSC-GB8C-NODE1 ~]# gs_probackup restore -B /data/mpp/backup/zhck/iicp -D /data/mpp/backup/zhck/restore_test -l=SNYUPG --instance=gbase_zhck --remote-host=172.16.71.58 --remote-user=gbase

例如返回如下信息:

(4)修改数据库端口,防止和当前数据库冲突

登录数据库服务器172.16.71.58

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# cd /data/mpp/backup/zhck/restore_test

查看配置文件中的端口:

[gbase@gbase8c-iicp-db01 restore_test]$ cat  postgresql.conf

...

port = 15432

...

(5)启动数据库

登录数据库服务器172.16.71.58

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@gbase8c-iicp-db01 restore_test]$ gs_ctl  start -D /data/mpp/backup/zhck/restore_test...

例如返回如下信息:

(6)登录数据库核验数据

登录数据库服务器172.16.71.58

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@gbase8c-iicp-db01 restore_test]$ gsql -d postgres -p 15432 -r

2.2、基于时间点的增量恢复

同样恢复到当前主机的单独目录,在实际生产环境下,当集群出现误操作或其他因素导致数据损坏,当原集群可以启动情况下,数据恢复均不建议直接在原恢复,否则可能造成数据库的二次破坏。建议恢复到其他节点后,核对数据完成后再将数据导入生产集群。

(1)查看备份

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# cd /data/mpp/backup/zhck

[gbase@ZSC-GB8C-NODE1 ~]#  gs_probackup show -B /data/mpp/backup/zhck/iicp

查看备份,如下图所示:

(2)合并增量备份SNYUUR到SNYUPG

[gbase@ZSC-GB8C-NODE1 zhck]$ gs_probackup merge -B /data/mpp/backup/zhck/iicp --instance=gbase_zhck -i SNYUUR --progres

(3)拷贝归档日志到备份的wal目录,是否有该步骤,需要根据备份情况而定。 如果wal的归档目录已经设定的是归档到物理备份的wal目录,则跳过该步骤。

[gbase@ZSC-GB8C-NODE1 gbase_zhck]$ cp /data/mpp/backup/zhck/archive_dir/*  /data/mpp/backup/zhck/iicp/wal/gbase_zhck/

(4)查看备份

(5)恢复到指定时间点2024-12-04 19:00:00到数据库服务器172.16.71.58服务器的/data/mpp/backup/zhck/restore_test目录

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# cd /data/mpp/backup/zhck

[gbase@ZSC-GB8C-NODE1 zhck]$  gs_probackup restore -B /data/mpp/backup/zhck/iicp -D /data/mpp/backup/zhck/restore_test --instance=gbase_zhck --remote-host=172.16.71.58 --remote-user=gbase --recovery-target-time='2024-12-04 19:00:00'

(6)修改数据库端口,防止和当前数据库冲突

登录数据库服务器172.16.71.58

[root@gbase8c-iicp-db01 ~]# su - gbase

[gbase@ZSC-GB8C-NODE1 ~]# cd /data/mpp/backup/zhck/restore_test

查看配置文件中的端口:

[gbase@gbase8c-iicp-db01 restore_test]$ cat  postgresql.conf

...

port = 15432

...

(7)启动数据库

[gbase@gbase8c-iicp-db01 restore_test]$ gs_ctl  start -D /data/mpp/backup/zhck/restore_test...

(8)登录数据库核验数据,无误则数据恢复完成。

结语

综上所述,GBase 8c数据库产品的备份恢复功能在保障数据安全性和可靠性方面发挥着重要作用。同时,为了满足不同用户的需求和场景,产品还提供了更加灵活多样的备份策略和介质选择。因此,选择GBase 8c数据库产品在迎合备份恢复功能的特点和优势的用户关注的同时,确保了数据的安全性和可靠性,以及数据库系统的稳定运行。

原文链接:https://www.gbase.cn/community/post/5379

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容