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

opengauss gs_basebackup实践

原创 邹阳 2021-07-10
1872

详细参考 https://gitee.com/opengauss/docs 中的备份与恢复篇

https://gitee.com/opengauss/docs/blob/master/content/zh/docs/Administratorguide/%E5%A4%87%E4%BB%BD%E4%B8%8E%E6%81%A2%E5%A4%8D.md

以下文字摘至官方文档。

openGauss部署成功后,在数据库的运行过程中,往往会遇到各种问题及异常状态。

openGauss提供了gs_basebackup工具用作基础的物理备份。它可以实现对数据文件的二进制拷贝备份,其实现原理使用了复制协议。

远程执行gs_basebackup时,需要使用系统管理员账户。

Ø备份的前提条件

1.备份客户端可以正常连接openGauss数据库;

2.pg_hba.conf中需要配置允许复制链接,且该连接必须由一个系统管理员建立;

3.如果xlog传输模式为stream模式,则需要配置max_wal_senders的数量, 至少有一个可用;

4.如果xlog传输模式为fetch模式,则需要把wal_keep_segments参数设置得足够高,确保在备份完毕之前日志不会被移除;

Tips**:**

1.gs_basebackup 支持全量备份,不支持增量;

2.gs_basebackup 支持简单备份格式和压缩备份格式;

3.gs_basebackup 在备份包含绝对路径的表空间时,不能在同一台机器上进行备份,会产生冲突;

4.若打开增量检测点功能且打开双写, gs_basebackup也会备份双写文件;

5.若pg_xlog目录为软链接,备份时将不会建立软链接,会直接将数据备份到目的路径的pg_xlog目录下;

6.备份过程中收回用户的备份权限,可能导致备份失败,或者备份数据不可用。

一、环境简介

两台主机分别为 node01 node02 分别安装opengauss 2.0 opengauss2.0.1 数据库

二、主库中创建新数据库,并备份恢复至备库

CREATE DATABASE mydb WITH ENCODING ‘GBK’ template = template0;

image20210707182235155.png

使用该数据库并创建表空间、表

查看当前使用的数据库

select current_catalog,current_database();

列出所有的数据库

\l

image20210708163732041.png

\c <要使用的数据库名称> 连接mydb

image20210708163915384.png

\db 查询对应的数据库下的表空间

image20210708164101815.png

创建表空间

create tablespace mytbs RELATIVE LOCATION ‘tablespace/mytbs’;

创建测试表

create table table_in_mytbs_ts (col1 char(10)) tablespace mytbs;

image20210708170539527.png

gs_basebackup备份参数介绍

image20210710140932539.png

在主库修改pg_hba.conf 配置添加配置

host replication rep1 172.16.100.0/24 sha256

image20210710141553860.png

修改参数后重启数据库

image20210710142554436.png

创建复制用户

–创建备份用户并放开权限(远程执行gs_basebackup时,需要使用系统管理员账户)

postgres=# create user rep1 with sysadmin identified by ‘huawei@1234’;

在备库创建备份

su - omm

gs_basebackup -D /home/omm/gs_bak -h 172.16.100.26 -p 26000 -U rep1 -W

image20210710143331004.png

可以看到备份其实是将目录做了拷贝

image20210710143413887.png

本机恢复

首先删除mydb

drop database mydb

image20210710152158022.png

将备份从备机传至主机

image20210710152658230.png

将数据库原目录改名,并将备份目录改成原数据库目录的名字

image20210710152800332.png

启动数据库

image20210710152910645.png

验证原数据库已经找回

image20210710152953781.png

备机恢复

修改备份文件中的postgresql.conf IP地址

image20210710153241580.png
备库停止数据库,并将主库的备份文件挪到数据库目录下

image20210710153418909.png

修改目录,将数据库原目录改名,将备份目录改名为数据库目录

image20210710153455102.png

启动数据库,验证成功

image20210710153627215.png

小贴士,实践验证,opengauss 2.0 中创建的库,可以在opengauss 2.0.1 中正常打开。文中的node01 为2.0 node02 为 2.0.1

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

评论