open Gauss 数据库-05 openGauss数据库备份恢复指导手册

发文章是为了证明自己真的掌握了一个知识,同时给他人带来帮助,如有问题,欢迎指正,祝大家万事胜意! 

目录

前言

openGauss数据库备份恢复 

1 实验介绍

1.1 关于本实验

1.2 实验目的

2 实验前提

3 物理备份和恢复

3.1 实验前提

3.2 物理备份

3.3 物理备份恢复

4 逻辑备份和恢复

4.1 实验前提

4.2 gs_dump

4.2.1 介绍

4.2.2 注意事项

4.2.4 gs_dump 备份示例 2

4.2.5 gs_dump 备份示例 3

4.2.6 gs_dump 备份示例 4

4.2.6 gs_dump 备份示例 4

4.3 gs_dumpall

4.3.1 介绍

4.3.2 操作步骤

4.4 gs_restore

​​​​​​​4.4.1 介绍

4.4.2 gs_restore 导入示例 1

4.4.3 gs_restore 导入示例 2

4.4.4 gs_restore 导入示例 3

4.4.5 gs_restore 导入示例 4

4.4.6 gs_restore 导入示例 5


前言

我的环境:

设备名称 设备型号 软件版本
虚拟机 VMware VMware-workstation-full-17.5.1
操作系统 openEuler    openEuler 22.3LTS
数据库 openGauss   openGauss 5.0.0

 需要的工具,大家不用现在下,后面用到了再下也可以,如果需要相关文件,可以评论,其实大多数都是可以去官网下的哈,因为我只能通过网盘给大家,文件又有点大,网盘的速度大家都是清楚的哈哈,所以还是推荐大家去官网,如果实在找不到可以找我

openGauss数据库备份恢复 

1 实验介绍

1.1 关于本实验

本实验主要描述 openGauss 数据库支持的两种备份恢复类型、多种备份恢复方案,并能够在备
份和恢复过程中提供数据的可靠性保障机制。

1.2 实验目的

掌握 openGauss 数据库中逻辑备份与恢复方法;
掌握 openGauss 数据库物理备份与恢复的方法;
能够在备份和恢复过程中提供数据的可靠性保障机制。

2 实验前提

在对数据库进行备份前,对数据库进行如下操作:
步骤 1 切换到 omm 用户,以操作系统用户 omm 登录数据库主节点。
[root@node0 ~]# su - omm
Last login: Mon Apr  8 19:47:35 CST 2024 on tty1


Welcome to 5.10.0-153.12.0.92.oe2203sp2.x86_64

System information as of time: 	2024年 04月 08日 星期一 20:18:18 CST

System load: 	0.64
Processes: 	204
Memory used: 	42.8%
Swap used: 	13.5%
Usage On: 	25%
IP address: 	192.168.28.131
Users online: 	2
To run a command as administrator(user "root"),use "sudo <command>".
步骤 2 连接 openGauss 数据库。
[omm@node0 ~]$ gsql -d postgres -p 15400 -r
gsql ((openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:37:13 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
步骤 3 创建 customer_t1 表。
openGauss=# DROP TABLE IF EXISTS customer_t1;
DROP TABLE
openGauss=# CREATE TABLE customer_t1 
openGauss-# ( 
openGauss(#  c_customer_sk integer, 
openGauss(#  c_customer_id char(5), 
openGauss(#  c_first_name char(6), 
openGauss(#  c_last_name char(8) 
openGauss(# );
CREATE TABLE
步骤 4 向表中插入数据。
openGauss=#  INSERT INTO customer_t1 (c_customer_sk, c_customer_id, c_first_name) VALUES 
openGauss-# (3769, 'hello', DEFAULT) , 
openGauss-# (6885, 'maps', 'Joes'), 
openGauss-# (4321, 'tpcds', 'Lily'), 
openGauss-# (9527, 'world', 'James');
INSERT 0 4
步骤 5 查看表中的数据。
openGauss=# select * from customer_t1;
 c_customer_sk | c_customer_id | c_first_name | c_last_name 
---------------+---------------+--------------+-------------
          3769 | hello         |              | 
          6885 | maps          | Joes         | 
          4321 | tpcds         | Lily         | 
          9527 | world         | James        | 
(4 rows)
步骤 6 创建 customer_t2
openGauss=# DROP TABLE IF EXISTS customer_t2;
NOTICE:  table "customer_t2" does not exist, skipping
DROP TABLE
openGauss=# CREATE TABLE customer_t2 
openGauss-# ( 
openGauss(#  c_customer_sk integer, 
openGauss(#  c_customer_id char(5), 
openGauss(#  c_first_name char(6), 
openGauss(#  c_last_name char(8) 
openGauss(# );
CREATE TABLE
步骤 7 向表中插入数据
openGauss=#  INSERT INTO customer_t2 (c_customer_sk, c_customer_id, c_first_name) VALUES 
openGauss-# (3769, 'hello', DEFAULT) , 
openGauss-# (6885, 'maps', 'Joes'), 
openGauss-# (9527, 'world', 'James');
INSERT 0 3
步骤 8 查看表中数据。
openGauss=# select * from customer_t2;
 c_customer_sk | c_customer_id | c_first_name | c_last_name 
---------------+---------------+--------------+-------------
          3769 | hello         |              | 
          6885 | maps          | Joes         | 
          9527 | world         | James        | 
(3 rows)
步骤 9 创建用户 lucy
openGauss=# DROP user IF EXISTS LUCY;
NOTICE:  role "lucy" does not exist, skipping
DROP ROLE
openGauss=# CREATE USER lucy WITH PASSWORD  "Bigdata@123";
CREATE ROLE
步骤 10 切换到 Lucy 用户
openGauss=# \c - lucy
Password for user lucy: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "postgres" as user "lucy".
步骤 11 创建 lucy shema 的表。
openGauss=> DROP TABLE IF EXISTS lucy.mytable;
NOTICE:  table "mytable" does not exist, skipping
DROP TABLE
openGauss=> CREATE TABLE mytable (firstcol int);
CREATE TABLE
步骤 12 向表中插入数据
openGauss=> INSERT INTO mytable values (100);
INSERT 0 1
步骤 13 查看表中数据
openGauss=> SELECT * from mytable;
 firstcol 
----------
      100
(1 row)
步骤 14 退出数据库:

openGauss=> \q
[omm@node0 ~]$ 

物理备份和恢复

openGauss 部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。 openGauss
提供了 gs_basebackup 工具做基础备份。 gs_basebackup 工具由操作系统用户 omm 执行。

3.1 实验前提

在数据库备份之前创建存储备份文件的文件夹。
步骤 1 切换到 omm 用户,以操作系统用户 omm 登录数据库主节点。

[root@node0 ~]# su - omm
Last login: Sat Apr 13 23:05:21 CST 2024 on tty1


Welcome to 5.10.0-153.12.0.92.oe2203sp2.x86_64

System information as of time: 	2024年 04月 13日 星期六 23:14:02 CST

System load: 	0.01
Processes: 	198
Memory used: 	37.9%
Swap used: 	9.5%
Usage On: 	25%
IP address: 	192.168.28.131
Users online: 	2
To run a command as administrator(user "root"),use "sudo <command>".
[omm@node0 ~]$ 
步骤 2 创建存储备份文件的文件夹。
[omm@node0 ~]$ mkdir -p /home/omm/physical/backup
[omm@node0 ~]$ 

3.2 物理备份

步骤 1 如果数据库服务没有启动,就启动数据库服务 ( 务必以操作系统用户 omm 启动数据库服务, 如果没有请切换用户)
[omm@node0 ~]$ gs_om -t start;
Starting cluster.
=========================================
[SUCCESS] node0:
[2024-04-13 23:16:40.080][8226][][gs_ctl]: gs_ctl started,datadir is /opt/huawei/install/data/dn 
[2024-04-13 23:16:40.086][8226][][gs_ctl]:  another server might be running; Please use the restart command
=========================================
Successfully started.
步骤 2 将数据库进行物理备份。
[omm@node0 ~]$ gs_basebackup -D /home/omm/physical/backup -p 15400
INFO:  The starting position of the xlog copy of the full build is: 0/3000028. The slot minimum LSN is: 0/0. The disaster slot minimum LSN is: 0/0. The logical slot minimum LSN is: 0/0.
[2024-04-13 23:18:08]:begin build tablespace list
[2024-04-13 23:18:08]:finish build tablespace list
[2024-04-13 23:18:08]:begin get xlog by xlogstream
                                                                              [2024-04-13 23:18:08]: check identify system success
                                                                              [2024-04-13 23:18:08]: send START_REPLICATION 0/3000000 success
                                                                              [2024-04-13 23:18:08]: keepalive message is received
                                                                              [2024-04-13 23:18:08]: keepalive message is received
[2024-04-13 23:18:13]:gs_basebackup: base backup successfully
参数 -D directory 表示备份文件输出的目录, 必选项
步骤 3 切换到存储备份文件夹查看备份文件。
[omm@node0 ~]$ cd /home/omm/physical/backup
[omm@node0 backup]$ ls
backup_label        pg_ident.conf  pg_xlog
base                pg_llog        postgresql.conf
cacert.pem          pg_location    postgresql.conf.bak
global              pg_logical     postgresql.conf.guc.bak
gswlm_userinfo.cfg  pg_multixact   postgresql.conf.lock
mot.conf            pg_notify      postmaster.pid.lock
pg_clog             pg_replslot    server.crt
pg_csnlog           pg_serial      server.key
pg_ctl.lock         pg_snapshots   server.key.cipher
pg_errorinfo        pg_stat_tmp    server.key.rand
pg_hba.conf         pg_tblspc      undo
pg_hba.conf.bak     pg_twophase
pg_hba.conf.lock    PG_VERSION

3.3 物理备份恢复

当数据库发生故障时需要从备份文件进行恢复。因为 gs_basebackup 是对数据库按二进制进行
备份,因此恢复时可以直接拷贝替换原有的文件, 或者直接在备份的库上启动数据库。
说明:
若当前数据库实例正在运行,直接从备份文件启动数据库可能会存在端口冲突,这时,需
要修配置文件的 port 参数,或者在启动数据库时指定一下端口。
若当前备份文件为主备数据库,可能需要修改一下主备之间的复制连接。即配置文件中的
postgre.conf 中的 replconninfo1 replconninfo2 等。
当数据库发生问题需要从备份进行恢复时,步骤如下:
步骤 1 停止 openGauss(( 务必以操作系统用户 omm 停止数据库服务,如果没有请切换用户 )
[omm@node0 backup]$ gs_om -t stop;
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
End stop cluster.
[omm@node0 backup]$ 
步骤 2 清理原库中的所有或部分文件
查看数据库节点文件夹名称 ( 文件夹名称是数据库安装时定义的,不同数据可能不同 )
[omm@node0 ~]$ cd /opt/huawei/install/data
[omm@node0 data]$ ls
dn
查看文件列表如下:
[omm@node0 data]$ cd dn
[omm@node0 dn]$ ls
backup_label.old    pg_ident.conf  postgresql.conf
base                pg_llog        postgresql.conf.bak
cacert.pem          pg_location    postgresql.conf.guc.bak
gaussdb.state       pg_logical     postgresql.conf.lock
global              pg_multixact   postmaster.opts
gswlm_userinfo.cfg  pg_notify      postmaster.pid
mot.conf            pg_replslot    postmaster.pid.lock
pg_clog             pg_serial      server.crt
pg_csnlog           pg_snapshots   server.key
pg_ctl.lock         pg_stat_tmp    server.key.cipher
pg_errorinfo        pg_tblspc      server.key.rand
pg_hba.conf         pg_twophase    undo
pg_hba.conf.bak     PG_VERSION
pg_hba.conf.lock    pg_xlog
删除文件,对数据库文件进行破坏。
[omm@node0 dn]$ rm -rf *
[omm@node0 dn]$ ls
[omm@node0 dn]$ 
删除文件后,列表为空
[omm@node0 dn]$ rm -rf *
[omm@node0 dn]$ ls
[omm@node0 dn]$ 
删除文件后,列表为空
步骤 3 使用数据库系统用户权限从备份中还原需要的数据库文件, "/opt/huawei/install/data/d n "
dn 是数据库节点文件夹名称,不同数据库可能不同请查看确认。
[omm@node0 dn]$ cp -r /home/omm/physical/backup/. /opt/huawei/install/data/dn
[omm@node0 dn]$ 
备份时间大概需要几分钟,恢复后文件列表如下
[omm@node0 dn]$ cd /opt/huawei/install/data/dn
[omm@node0 dn]$ ls
backup_label        pg_ident.conf  pg_xlog
base                pg_llog        postgresql.conf
cacert.pem          pg_location    postgresql.conf.bak
global              pg_logical     postgresql.conf.guc.bak
gswlm_userinfo.cfg  pg_multixact   postgresql.conf.lock
mot.conf            pg_notify      postm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值