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

openGauss之物理备份(gs_basebackup)

原创 周波 云和恩墨 2022-06-27
2190

一、物理备份介绍

  通过对物理文件拷贝的方式对数据进行备份,以磁盘块为基本单位将数据从主机上复制到备机上,通过备份的数据文件及归档日志等文件,可以做到完全恢复。物理备份速度快,通常用于数据的备份与恢复,用于全量备份的场景。

二、gs_basebackup相关参数介绍

  • 备份相关参数
      -D 备份文件输出的目录
      -X 备份xlog日志的方式(fetch | stream)
      -F 指定备份文件的输出格式(plain | tar)
      -Z 指定备份压缩级别(只有输出格式为tar时才生效)

  • 连接相关参数
      -U 指定使用哪个用户进行备份操作
      -p 指定数据库服务监听的端口号
      -W 指定用户连接密码

三、实践操作

  我搭建的是一主一备,只需要备份备库即可,当发生故障或误操作导致数据丢失,可以使用备份文件进行数据恢复。
主节点:OG1 备节点:OG2
操作步骤如下:

(1)对备库进行全量物理备份

[omm@OG2 ~]$ gs_basebackup -D /backup -X fetch -F tar -Z 9 -p 15400
INFO:  The starting position of the xlog copy of the full build is: 0/440006E8. The slot minimum LSN is: 0/0.
[2022-02-25 15:43:13]:begin build tablespace list
[2022-02-25 15:43:13]:finish build tablespace list
[2022-02-25 15:43:22]:gs_basebackup: base backup successfully
#压缩级别应该根据实际情况设置,压缩级别越高压缩比越高
#压缩时间也越高
[omm@OG2 ~]$ ll /backup
total 5516
-rw------- 1 omm dbgrp 5644783 Feb 25 15:43 base.tar.gz
[omm@OG2 ~]$ du -sh /backup
5.4M	/backup

(2)模拟故障:连接主节点,将删除表

我这里通过备节点连接主节点进行删表操作,因为备节点是只读的,当然你可以直接在主库所在的主机节点,登录连接主库,然后进行表操作:

[omm@OG2 ~]$ gsql -d postgres -p 15400 -h 192.168.1.100 -U jack -W Test@123
openGauss=> \dt
                          List of relations
 Schema |  Name   | Type  | Owner |             Storage              
--------+---------+-------+-------+----------------------------------
 jack   | student | table | jack  | {orientation=row,compression=no}
(1 row)
openGauss=> drop table student;
DROP TABLE


#说明:因为主备之间的认证方式为互信,是不可以进行远程连接的,所以需要修改主库上
#上的配置文件pg_hba.conf。

(3)数据恢复

#关闭数据库
[omm@OG2 /backup]$ gs_om -t stop
#解压备份文件
[omm@OG2 /backup]$ gzip -d base.tar.gz 
[omm@OG2 /backup]$ ll
total 376004
-rw------- 1 omm dbgrp 385026560 Feb 25 15:43 base.tar
[omm@OG2 /backup]$ exit
logout
[root@OG2 ~]# mkdir /backup/data
[root@OG2 ~]# chown omm.dbgrp /backup/data
[root@OG2 ~]# su - omm
Last login: Fri Feb 25 14:56:43 CST 2022 on pts/0
[omm@OG2 ~]$ cd /backup/
[omm@OG2 /backup]$ ll
total 376004
-rw------- 1 omm dbgrp 385026560 Feb 25 15:43 base.tar
drwxr-xr-x 2 omm dbgrp         6 Feb 25 16:03 data
[omm@OG2 /backup]$ gs_tar -F base.tar -D data
#将原数据目录下的数据备份到其他位置
[omm@OG2 ~]$ cp -a /data/og2/* /data/backup/og2
[omm@OG1 ~]$ cp -a /data/og1/* /data/backup/og1

#删除主备数据库数据目录中的数据
[omm@OG2 ~]$ rm -rf /data/og2/*
[omm@OG1 ~]$ rm -rf /data/og1/*

#将解压的备份文件拷贝到相应的数据目录中
[omm@OG2 ~]$ cp -a /backup/data/* /data/og2
[omm@OG2 ~]$ rsync -avz /backup/data/* 10.0.0.100:/data/og1
#在主节点上,还要替换掉相应的配置文件
[omm@OG1 ~]$ cp /data/backup/og1/*.conf /data/og1

(4) 启动数据库进行检验

[omm@OG1 ~]$ gs_om -t start
[omm@OG1 ~]$ gs_om -t status --detail
[   Cluster State   ]

cluster_state   : Normal
redistributing  : No
current_az      : AZ_ALL

[  Datanode State   ]

    nodenode_ip         port      instance          state
------------------------------------------------------------------------
1  OG1 192.168.1.100   15400      6001 /data/og1   P Primary Normal
2  OG2 192.168.1.101   15400      6002 /data/og2   S Standby Normal
[omm@OG1 ~]$ gsql -p 15400 -d postgres -U jack -W Test@123
openGauss=> select * from student;
    sid     | sname  | sage 
------------+--------+------
 7702118013 | WangEr | 14
 7702118033 | Lisi   | 17
 7702118088 | 张五   | 21
(3 rows)

发现数据确实恢复了,gs_basebackup的简单操作就到此为止。

最后修改时间:2022-08-15 14:59:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论