首页 > 其他分享 >openGauss 逻辑备份恢复_openGauss课程_openGauss3.0.0

openGauss 逻辑备份恢复_openGauss课程_openGauss3.0.0

时间:2023-04-30 22:32:22浏览次数:59  
标签:12 gs dump 备份 09 openGauss3.0 momo24sw 15400 openGauss

一、opengauss 的背景和行业现状

2022 年,七大 openGauss 商业版发布,是基于 openGauss3.0 推出商业发行版

目前海量数据库 Vastbase 表现最佳,一直是 TOP 1

作者认为之所以海量数据库 Vastbase 目前无法被同行超越,和各家研发实力和技术背景有关


众所周知,opengauss 起源于 postgresql,在此基础上做了改良

海量数据库从 postgresql 就已经开始做商业版,一直做到 opengauss,经验最丰富,其他产品例如 MongoDB 是紧随其后 (在此不讨论其存在的意义),目前产品百花齐放,更显锦上添花


Vastbase G100 采用业界证明稳定高效的日志流复制技术实现集群内主备库的数据和状态传输,

并通过一主多备的部署和配置架构实现了多点可读、数据不丢失、异地灾备等关键高可用场景。


二、初始化实验环境

2.1创建几个数据库和用户

openGauss=# create database momo24sw;

openGauss=# create database remo18sw;

openGauss=# create database momo488;

openGauss=# create user momo4le with password 'MoMo@488';

CREATE ROLE

openGauss=# grant all privileges to momo4le;

ALTER ROLE


2.2创建2个表

[omm@momo488 ~]$ gsql -d momo24sw -p 15400 -U momo4le;

Password for user momo4le:

gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:19 commit 0 last mr  )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type "help" for help.


momo24sw=> create table t1 (x int,y int);

CREATE TABLE

momo24sw=> insert into t1 values (1,1);

INSERT 0 1

momo24sw=> select * from t1;

x | y

---+---

1 | 1

(1 row)

momo24sw=> create table t2 (x int,y int);

CREATE TABLE


[omm@momo488 ~]$ gsql -d remo18sw -p 15400 -U momo4le;

Password for user momo4le:

gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:19 commit 0 last mr  )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type "help" for help.


remo18sw=> create table t2 (x int,y int);

CREATE TABLE

remo18sw=> insert into t2 values (2,2);

INSERT 0 1

remo18sw=> select * from t2;

x | y

---+---

2 | 2

(1 row)


三、适用场景

3.1逻辑备份与恢复适合于数据量小的场景。

3.2可以备份单表和多表,单database和所有database。

3.3备份后的数据需要使用gsql或者gs_restore工具恢复。

3.4数据量大时,恢复需要较长时间。


四、逻辑备份工具

4.1gs_dump

纯文本格式数据恢复时间长。

归档格式数据恢复时间中等。

gs_dump可以创建四种不同的导出文件格式,通过**[-F或者–format=]**选项指定。


4.2gs_dumpall

数据恢复时间长。

使用gs_dumpall一次导出openGauss的所有数据库


五、gs_dump实践

5.1示例1:执行gs_dump,导出momo24sw数据库全量信息,导出的MoMo488_sl1.sql文件格式为纯文本格式。

[omm@momo488 ~]$ gs_dump -U momo4le -W MoMo@488 -f MoMo488_sl1.sql -p 15400 momo24sw -F p

gs_dump[port='15400'][momo24sw][2023-04-12 09:20:41]: The total objects number is 412.

gs_dump[port='15400'][momo24sw][2023-04-12 09:20:41]: [100.00%] 412 objects have been dumped.

gs_dump[port='15400'][momo24sw][2023-04-12 09:20:41]: dump database momo24sw successfully

gs_dump[port='15400'][momo24sw][2023-04-12 09:20:41]: total time: 2015  ms

[omm@momo488 ~]$ ls

MoMo488_sl1.sql


5.2示例2:执行gs_dump,导出momo24sw数据库全量信息,导出的MoMo488_sl2.tar文件格式为tar格式。

[omm@momo488 ~]$ gs_dump -U momo4le -W MoMo@488 -f MoMo488_sl2.tar -p 15400 momo24sw -F t

gs_dump[port='15400'][momo24sw][2023-04-12 09:21:35]: The total objects number is 412.

gs_dump[port='15400'][momo24sw][2023-04-12 09:21:35]: [100.00%] 412 objects have been dumped.

gs_dump[port='15400'][momo24sw][2023-04-12 09:21:35]: dump database momo24sw successfully

gs_dump[port='15400'][momo24sw][2023-04-12 09:21:35]: total time: 1696  ms

[omm@momo488 ~]$ ll

total 20K

drwx------ 3 omm dbgroup 4.0K Apr 12 08:56 gaussdb_tmp

-rw------- 1 omm dbgroup 2.1K Apr 12 08:55 MoMo488_sl1.sql

-rw------- 1 omm dbgroup  11K Apr 12 09:05 MoMo488_sl2.tar


5.3示例3:执行gs_dump,导出momo24sw数据库全量信息,导出的MoMo488_sl3.dmp文件格式为自定义归档格式。

[omm@momo488 ~]$ gs_dump -U momo4le -W MoMo@488 -f MoMo488_sl3.dmp -p 15400 momo24sw -F c

gs_dump[port='15400'][momo24sw][2023-04-12 09:22:12]: The total objects number is 412.

gs_dump[port='15400'][momo24sw][2023-04-12 09:22:12]: [100.00%] 412 objects have been dumped.

gs_dump[port='15400'][momo24sw][2023-04-12 09:22:12]: dump database momo24sw successfully

gs_dump[port='15400'][momo24sw][2023-04-12 09:22:12]: total time: 1677  ms

[omm@momo488 ~]$ ls

gaussdb_tmp  MoMo488_sl1.sql  MoMo488_sl2.tar  MoMo488_sl3.dmp


5.4示例4:执行gs_dump,导出momo24sw数据库全量信息,导出的MoMo488_sl4文件格式为目录格式。

[omm@momo488 ~]$ gs_dump -U momo4le -W MoMo@488 -f MoMo488_sl4 -p 15400 momo24sw -F d

gs_dump[port='15400'][momo24sw][2023-04-12 09:23:27]: The total objects number is 412.

gs_dump[port='15400'][momo24sw][2023-04-12 09:23:27]: [100.00%] 412 objects have been dumped.

gs_dump[port='15400'][momo24sw][2023-04-12 09:23:27]: dump database momo24sw successfully

gs_dump[port='15400'][momo24sw][2023-04-12 09:23:27]: total time: 1697  ms

[omm@momo488 ~]$  ls -l

total 28

drwx------ 3 omm dbgroup 4096 Apr 12 09:21 gaussdb_tmp

-rw------- 1 omm dbgroup 1225 Apr 12 09:20 MoMo488_sl1.sql

-rw------- 1 omm dbgroup 8704 Apr 12 09:21 MoMo488_sl2.tar

-rw------- 1 omm dbgroup 2144 Apr 12 09:22 MoMo488_sl3.dmp

drwx------ 2 omm dbgroup 4096 Apr 12 09:23 MoMo488_sl4


5.5示例5:执行gs_dump,导出momo24sw数据库信息,但不导出/home/omm/MoMo_temp_sl5.sql中指定的表信息。导出的MoMo488_sl5.sql文件格式为纯文本格式。

[omm@momo488 ~]$ cat /home/omm/MoMo_temp_sl5.sql

t2

[omm@momo488 ~]$  gs_dump -U momo4le -W MoMo@488 -p 15400 momo24sw --exclude-table-file=/home/omm/MoMo_temp_sl5.sql -f MoMo488_sl5.sql

gs_dump[port='15400'][momo24sw][2023-04-12 09:24:36]: The total objects number is 410.

gs_dump[port='15400'][momo24sw][2023-04-12 09:24:36]: [100.00%] 410 objects have been dumped.

gs_dump[port='15400'][momo24sw][2023-04-12 09:24:36]: dump database momo24sw successfully

gs_dump[port='15400'][momo24sw][2023-04-12 09:24:36]: total time: 2005  ms


5.6示例6:执行gs_dump,仅导出依赖于指定表t1的视图信息。然后创建新的t1表,再恢复依赖其上的视图。

[omm@momo488 ~]$ gs_dump -U momo4le -W MoMo@488 -s -p 15400 momo24sw -t PUBLIC.t1 --include-depend-objs --exclude-self -f MoMo488_sl6.sql -F p

gs_dump[port='15400'][momo24sw][2023-04-12 09:28:41]: The total objects number is 399.

gs_dump[port='15400'][momo24sw][2023-04-12 09:28:41]: [100.00%] 399 objects have been dumped.

gs_dump[port='15400'][momo24sw][2023-04-12 09:28:41]: dump database momo24sw successfully

gs_dump[port='15400'][momo24sw][2023-04-12 09:28:41]: total time: 1647  ms

[omm@momo488 ~]$ ls

gaussdb_tmp  MoMo488_sl1.sql  MoMo488_sl2.tar  MoMo488_sl3.dmp  MoMo488_sl4  MoMo488_sl5.sql  MoMo488_sl6.sql  MoMo_temp_sl5.sql


六、gs_dumpall实践

数据恢复时间长。

使用gs_dumpall一次导出openGauss的所有数据库

[omm@momo488 ~]$ gs_dumpall -U momo4le -W MoMo@488 -f momo4all.sql -p 15400

gs_dump[port='15400'][dbname='momo24sw'][2023-04-12 09:31:27]: The total objects number is 412.

gs_dump[port='15400'][dbname='momo24sw'][2023-04-12 09:31:27]: [100.00%] 412 objects have been dumped.

gs_dump[port='15400'][dbname='momo24sw'][2023-04-12 09:31:27]: dump database dbname='momo24sw' successfully

gs_dump[port='15400'][dbname='momo24sw'][2023-04-12 09:31:27]: total time: 1738  ms

gs_dump[port='15400'][dbname='momo488'][2023-04-12 09:31:29]: The total objects number is 408.

gs_dump[port='15400'][dbname='momo488'][2023-04-12 09:31:29]: [100.00%] 408 objects have been dumped.

gs_dump[port='15400'][dbname='momo488'][2023-04-12 09:31:29]: dump database dbname='momo488' successfully

gs_dump[port='15400'][dbname='momo488'][2023-04-12 09:31:29]: total time: 1784  ms

gs_dump[port='15400'][dbname='postgres'][2023-04-12 09:31:31]: The total objects number is 418.

gs_dump[port='15400'][dbname='postgres'][2023-04-12 09:31:31]: [100.00%] 418 objects have been dumped.

gs_dump[port='15400'][dbname='postgres'][2023-04-12 09:31:31]: dump database dbname='postgres' successfully

gs_dump[port='15400'][dbname='postgres'][2023-04-12 09:31:31]: total time: 2174  ms

gs_dump[port='15400'][dbname='remo18sw'][2023-04-12 09:31:34]: The total objects number is 410.

gs_dump[port='15400'][dbname='remo18sw'][2023-04-12 09:31:34]: [100.00%] 410 objects have been dumped.

gs_dump[port='15400'][dbname='remo18sw'][2023-04-12 09:31:34]: dump database dbname='remo18sw' successfully

gs_dump[port='15400'][dbname='remo18sw'][2023-04-12 09:31:34]: total time: 2080  ms

gs_dumpall[port='15400'][2023-04-12 09:31:34]: dumpall operation successful

gs_dumpall[port='15400'][2023-04-12 09:31:34]: total time: 8062  ms

[omm@momo488 ~]$ ls

gaussdb_tmp  MoMo488_sl1.sql  MoMo488_sl2.tar  MoMo488_sl3.dmp  MoMo488_sl4  MoMo488_sl5.sql  MoMo488_sl6.sql  momo4all.sql  MoMo_temp_sl5.sql


七、逻辑恢复工具

gs_restore

7.1gs_restore是openGauss提供的针对gs_dump导出数据的导入工具。通过此工具可由gs_dump生成的导出文件进行导入。

7.2gs_restore工具由操作系统用户omm执行。

7.3主要功能包含:

       7.3.1导入到数据库

                       如果连接参数中指定了数据库,则数据将被导入到指定的数据库中。其中,并行导入必须指定连接的密码。导入时生成列会自动更新,并像普通列一样保存。

       7.3.2导入到脚本文件

                       如果未指定导入数据库,则创建包含重建数据库所必须的SQL语句脚本并写入到文件或者标准输出。等效于直接使用gs_dump导出为纯文本格式。


八、gs_restore实践

8.1示例1:执行gs_restore,将导出的MoMo488_sl3.dmp文件(自定义归档格式)导入到momo24sw数据库。

openGauss=> drop database momo24sw;

DROP DATABASE

openGauss=> create database momo24sw;

CREATE DATABASE

[omm@momo488 ~]$ gs_restore -U momo4le -W MoMo@488 MoMo488_sl3.dmp -p 15400 -d momo24sw

start restore operation ...

table t1 complete data imported !

table t2 complete data imported !

Finish reading 10 SQL statements!

end restore operation ...

restore operation successful

total time: 105  ms


8.2示例2:执行gs_restore,将导出的MoMo488_sl2.tar文件(tar格式)导入到momo24sw数据库。

openGauss=> drop database momo24sw;

DROP DATABASE

openGauss=> create database momo24sw;

CREATE DATABASE

[omm@momo488 ~]$ gs_restore -U momo4le MoMo488_sl2.tar -p 15400 -d momo24sw


8.3示例3:执行gs_restore,将导出的MoMo488_sl4文件(目录格式)导入到momo24sw数据库。

openGauss=> drop database momo24sw;

DROP DATABASE

openGauss=> create database momo24sw;

CREATE DATABASE

[omm@momo488 ~]$ gs_restore  -U momo4le MoMo488_sl4 -p 15400 -d momo24sw


8.4示例4-1:执行gs_restore,使用自定义归档格式的MoMo488_sl3.dmp文件来进行如下导入操作。只导入PUBLIC模式下表t1的定义。

[omm@momo488 ~]$ gs_restore -U momo4le -W MoMo@488 MoMo488_sl3.dmp -p 15400 -d momo24sw -e -c -s -n public -t t1

start restore operation ...

Finish reading 10 SQL statements!

end restore operation ...

restore operation successful

total time: 31  ms


momo24sw=> \dt

                        List of relations

Schema | Name | Type  |  Owner  |             Storage              

--------+------+-------+---------+----------------------------------

public | t1   | table | momo4le | {orientation=row,compression=no}

(1 row)


momo24sw=> select * from t1;

x | y

---+---

(0 rows)


8.5示例4-2:执行gs_restore,使用自定义归档格式的MoMo488_sl3.dmp文件来进行如下导入操作。只导入PUBLIC模式下表t1的数据。

[omm@momo488 ~]$ gs_restore -U momo4le -W MoMo@488 MoMo488_sl3.dmp -p 15400 -d momo24sw -e -a -n public -t t1

start restore operation ...

table t1 complete data imported !

Finish reading 10 SQL statements!

end restore operation ...

restore operation successful

total time: 22  ms

momo24sw=> select * from t1;

x | y

---+---

1 | 1

(1 row)


本文参考官方文档

https://docs.opengauss.org/zh/

https://docs.vastdata.com.cn/zh/


标签:12,gs,dump,备份,09,openGauss3.0,momo24sw,15400,openGauss
From: https://blog.51cto.com/u_13808894/6238337

相关文章

  • Linux下用tar完整拷贝/备份目录
    保留软连接、createtime、accesstime、modifytime、permission信息以拷贝/mnt/myhome/username到/mnt/newhome/username为例:cd/mnt/myhometar-cf-username|(cd/mnt/newhome&&tar-xpf-)管道符前的tar将文件夹username打包为tar归档文件,并将其输出到......
  • 运用rman备份集搭建物理备库
    文档课题:运用rman备份集搭建物理备库.主库:192.168.133.110+oracle11.2.0.4+centos7.9主机名:leo-oracle-11g备库:192.168.133.113+oracle11.2.0.4+centos7.9主机名:leo-oracle-11gdg场景描述:最初的备库环境为主库的克隆.1、环境处理--对克隆的备库进行相关处理,如删......
  • SQLServer 批量备份与还原
    在现在都讲究自动化管理的时代,传统的界面操作备份还原的做法不仅浪费时间和精力,而且还很容易出错,并且这次完成后,下次再有这样的要求,必须又重头开始(估计做5次就能做得人狂吐);于是,我们需要一套应对这种频繁操作、耗时、耗精力的通用处理方法,所以以下批处理脚本就诞生了。    脚本......
  • openGauss分布式安装_搭建_快速部署openGauss3.0.0分布式(openGauss课程)
    一、opengauss的背景和行业现状2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同行超越,和各家研发实力和技术背景有关 众所周知,opengauss起源于postgre......
  • openGauss5.0.0企业版一主一备一级联安装指南(openGauss课程)
    一、opengauss的背景和行业现状2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同行超越,和各家研发实力和技术背景有关众所周知,opengauss起源于postgresql,在......
  • openGauss之物理备份与恢复实践操作(openGauss课程openGauss3.0.0)
    一、opengauss的背景和行业现状 2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同行超越,和各家研发实力和技术背景有关 众所周知,opengauss起源于postgresql,在此基......
  • 数据库还原失败System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数
    https://www.shuzhiduo.com/A/1O5EbK6yd7/高版本可以兼容低版本的数据库哎。所以低版本可以直接还原到高版本。过程中提示数据库还原失败System.Data.SqlClient.SqlError:无法执行BACKUPLOG,因为当前没有数据库备份,按照链接中的第二个方法解决了: 在还原的界面中,取消勾选还......
  • 快速上手Linux核心命令(九):文件备份与压缩
    目录tar打包备份gzip压缩或解压文件zip打包和压缩文件unzip解压zip文件scp远程文件复制rsync文件同步工具这期呢主要说一说Linux中文件备份与压缩命令,一共6个命令。这6个命令都是平常工作中非常非常常用的。tar打包备份1、简介tar可以将多个文件压缩打包、压缩。是......
  • gitLab数据备份、恢复和迁移
    自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上。备份、迁移、恢复、升级过程如下一、gitlab备份备份前gitlab的项目如图所示 1.1修改仓库存储位置gitlab通过rpm包安装后,默认存储位置在/var/opt/gitlab/git-dat......
  • MySQL(二)备份与还原
    一.MySQL备份1.本地备份1.win+r后输入cdm2.命令行界面输入命令mysqldump-uroot-p 数据库名>存放备份sql文件的全目录,eg:  mysqldump-uroot-pbooksystem> D:\backup\booksystem.sql3.控制台没有输出~等待~结束完成2.异......