【参赛作品30】opengauss gs_basebackup实践

1年前 (2022) 程序员胖胖胖虎阿
109 0 0

本文作者:邹阳

详细参考 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;

【参赛作品30】opengauss gs_basebackup实践

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

查看当前使用的数据库

select current_catalog,current_database();

列出所有的数据库

\l

【参赛作品30】opengauss gs_basebackup实践

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

【参赛作品30】opengauss gs_basebackup实践

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

【参赛作品30】opengauss gs_basebackup实践

创建表空间

create tablespace mytbs RELATIVE LOCATION ‘tablespace/mytbs’;

创建测试表

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

【参赛作品30】opengauss gs_basebackup实践

gs_basebackup备份参数介绍

【参赛作品30】opengauss gs_basebackup实践

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

host replication rep1 172.16.100.0/24 sha256

【参赛作品30】opengauss gs_basebackup实践

修改参数后重启数据库

【参赛作品30】opengauss gs_basebackup实践

创建复制用户

–创建备份用户并放开权限(远程执行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

【参赛作品30】opengauss gs_basebackup实践

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

【参赛作品30】opengauss gs_basebackup实践

本机恢复

首先删除mydb

drop database mydb

【参赛作品30】opengauss gs_basebackup实践

将备份从备机传至主机

【参赛作品30】opengauss gs_basebackup实践

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

【参赛作品30】opengauss gs_basebackup实践

启动数据库

【参赛作品30】opengauss gs_basebackup实践

验证原数据库已经找回

【参赛作品30】opengauss gs_basebackup实践

备机恢复

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

【参赛作品30】opengauss gs_basebackup实践
备库停止数据库,并将主库的备份文件挪到数据库目录下

【参赛作品30】opengauss gs_basebackup实践

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

【参赛作品30】opengauss gs_basebackup实践

启动数据库,验证成功

【参赛作品30】opengauss gs_basebackup实践

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

版权声明:程序员胖胖胖虎阿 发表于 2022年11月25日 上午12:32。
转载请注明:【参赛作品30】opengauss gs_basebackup实践 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...