👈【上一篇】
💖The Begin💖 点点关注,收藏不迷路💖
【下一篇】👉

🔻 一、 openGauss数据库备份与恢复概述

数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全。该篇详细介绍了openGauss数据库备份恢复类型,以及多种备份恢复方案备份和恢复过程中提供数据的可靠性保障机制

🔰 1.1 备份与恢复类型

备份与恢复类型可分为逻辑备份与恢复、物理备份与恢复、闪回恢复。

🍁 一、逻辑备份与恢复:
🍀1、通过逻辑导出对数据进行备份,逻辑备份只能基于备份时刻进行数据转储,所以恢复时也只能恢复到备份时保存的数据

🍀2、对于故障点和备份点之间的数据,逻辑备份无能为力,适合备份那些很少变化的数据,当这些数据因误操作被损坏时,可以通过逻辑备份进行快速恢复。
🍀3、如果通过逻辑备份进行全库恢复,通常需要重建数据库,导入备份数据来完成,对于可用性要求很高的数据库,这种恢复时间太长,通常不被采用。
🍀4、由于逻辑备份具有平台无关性,所以更为常见的是,逻辑备份被作为一个数据迁移及移动的主要手段。

🍁 二、物理备份与恢复:
🍀1、通过物理文件拷贝的方式对数据库进行备份,以磁盘块为基本单位将数据从主机复制到备机。通过备份的数据文件及归档日志等文件,数据库可以进行完全恢复。
优缺点:
🍀2、物理备份速度快,一般被用作对数据进行备份和恢复,用于全量备份的场景。
🍀3、通过合理规划,可以低成本进行备份与恢复。

🍁 三、闪回恢复:
🍀1、利用回收站的闪回恢复删除的表。数据库的回收站功能类似于windows系统的回收站,将删除的表信息保存到回收站中。
🍀2、利用MVCC机制闪回恢复到指定时间点或者CSN点。

🔰 1.2 类型对比

在这里插入图片描述

🔻 二、 配置文件的备份与恢复

在openGauss使用过程中,如果静态配置文件无意损坏后,会影响openGauss感知openGauss拓扑结构和主备关系。

使用gs_om工具生成的静态配置文件,可以替换已经损坏的配置文件,保证openGauss的正常运行。

###🍀1、以用户omm登录数据库节点🍀###
[root@klgdj ~]# su - omm

###🍀2、在本服务器指定目录下生成配置文件,/opt/software/openGauss/cluster_config.xml为openGauss安装时的XML配置文件🍀###
[omm@klgdj ~]$ gs_om -t generateconf -X /opt/software/openGauss/cluster_config.xml --distribute

###🍀3、(可选)分别替换各节点主机存放数据库二进制文件的目录/opt/software/install/app/bin目录下损坏的静态配置文件🍀###
如:
[omm@klgdj ~]$ mv cluster_static_config_klgdj  /opt/software/install/app/bin/cluster_static_config

[omm@klgdj ~]$ 

在这里插入图片描述

🍀1、执行命令后,日志信息中会有新文件的存放的目录。一主两备会出现3个以主机名命名的配置文件,需要用这3个文件分别替换对应主机的配置文件。这里是单节点,所以只会生成一个文件。
[omm@klgdj ~]$ cd /opt/software/install/om/script/static_config_files在这里插入图片描述

🍀2、若不使用–distribute参数,需执行步骤将静态配置文件分配到对应节点;若使用–distribute参数,则会将生成的静态配置文件自动分配到对应节点,无需执行此步骤。
在这里插入图片描述

🔻 三、逻辑备份----gs_dump & gs_dumpall

🔰 3.1 gs_dump 概述

gs_dump可以创建四种不同的导出文件格式,通过**[-F或者–format=]**选项指定。
在这里插入图片描述

gs_dump可以将程序将文件压缩为目录归档或自定义归档导出文件,减少导出文件的大小。生成目录归档或自定义归档导出文件时,默认进行中等级别的压缩

gs_dump程序无法压缩已归档导出文件

🔰 3.2 使用gs_dump的注意事项

🍀1、禁止修改-F c/d/t 格式导出的文件和内容,否则可能无法恢复成功。对于-F p 格式导出的文件,如有需要,可根据需要谨慎编辑导出文件。

🍀2、为了保证数据一致性和完整性,gs_dump会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁,gs_dump会等待锁释放后锁定表。如果无法在指定时间内锁定某个表,转储会失败。可以通过指定–lock-wait-timeout选项,自定义等待锁超时时间

🍀3、不支持加密导出存储过程和函数

🔰 3.3 逻辑备份—gs_dump

###🍀语法1🍀###
“DBNAME"前面不需要加短或长选项。“DBNAME指定要连接的数据库。
 例如: 不需要-d,直接指定"DBNAME”。
 
gs_dump -p port_number  postgres -f dump1.sql
###🍀创建备份文件存储目录
[omm@klgdj ~]$ mkdir back_up
###🍀逻辑备份
[omm@klgdj ~]$ gs_dump -p 15400  db_test01 -f /home/omm/back_up/db_test01.sql
gs_dump[port='15400'][db_test01][2023-06-30 00:50:00]: The total objects number is 474.
gs_dump[port='15400'][db_test01][2023-06-30 00:50:00]: [100.00%] 474 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-06-30 00:50:00]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-06-30 00:50:00]: total time: 6591  ms
[omm@klgdj ~]$ cd back_up/
[omm@klgdj back_up]$ ll
总用量 100
-rw------- 1 omm dbgrp 98460  6月 30 00:50 db_test01.sql
[omm@klgdj back_up]$ 
###🍀语法2🍀###
###🍀设置环境变量: PGDATABASE
export PGDATABASE=postgres 
gs_dump -p port_number -f dump1.sql
###🍀设置环境变量: PGDATABASE
[omm@klgdj back_up]$ export PGDATABASE=db_test01
###🍀逻辑备份
[omm@klgdj back_up]$ gs_dump -p 15400 -f /home/omm/back_up/db_test01_2023-07-01.sql
gs_dump[port='15400'][db_test01][2023-06-30 00:54:29]: The total objects number is 474.
gs_dump[port='15400'][db_test01][2023-06-30 00:54:29]: [100.00%] 474 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-06-30 00:54:29]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-06-30 00:54:29]: total time: 6453  ms
[omm@klgdj back_up]$ 
  • 逻辑备份结果

在这里插入图片描述

🔰 3.3.1 多个模式的转储

转储支持多个模式的转储。多次输入-n schemaname转储多个模式。

###🍀语法🍀###
gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -n sch1 -n sch2
####sch1和sch2会被转储。
openGauss=# \c db_test01
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "db_test01" as user "omm".
###🍀\dn 查看当前数据库有哪些模式🍀###
db_test01=# \dn
     List of schemas
      Name       | Owner 
-----------------+-------
 blockchain      | omm
 cstore          | omm
 db4ai           | omm
 db_test01       | zyl
 dbe_perf        | omm
 dbe_pldebugger  | omm
 dbe_pldeveloper | omm
 dbe_sql_util    | omm
 pkg_service     | omm
 public          | omm
 snapshot        | omm
 sqladvisor      | omm
 test            | zyl
 zyl01           | zyl01
(14 rows)

db_test01=# 
###🍀转储db_test01、test两个模式🍀###
[omm@klgdj back_up]$ gs_dump -p 15400 db_test01 -f /home/omm/back_up/bkp_shl2.sql -n db_test01 -n test

gs_dump[port='15400'][db_test01][2023-07-01 12:46:33]: The total objects number is 448.
gs_dump[port='15400'][db_test01][2023-07-01 12:46:33]: [100.00%] 448 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 12:46:33]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 12:46:33]: total time: 6646  ms
[omm@klgdj back_up]$ ll
总用量 88
-rw------- 1 omm dbgrp 89722  7月  1 12:46 bkp_shl2.sql
[omm@klgdj back_up]$ 
🔰 3.3.2 排除多个模式转储

在转储过程中,输入-N exclude schema name排除多个模式。

###🍀语法🍀###
gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -N sch1 -N sch2
###🍀转储排除db_test01、test两个模式🍀###
[omm@klgdj back_up]$ gs_dump -p 15400 db_test01 -f /home/omm/back_up/bkp_shl2.sql -N db_test01 -N test

gs_dump[port='15400'][db_test01][2023-07-01 12:52:55]: The total objects number is 445.
gs_dump[port='15400'][db_test01][2023-07-01 12:52:56]: [100.00%] 445 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 12:52:56]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 12:52:56]: total time: 6764  ms
[omm@klgdj back_up]$ ll
总用量 12
-rw------- 1 omm dbgrp 8915  7月  1 12:52 bkp_shl2.sql
[omm@klgdj back_up]$ 
🔰 3.3.3 指定转储的表(或视图、或序列、或外表)对象列表

指定转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。

###🍀语法🍀###
gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -t schema1.table1 -t schema2.table2
###🍀指定转储db_test01、test两个模式的t_config表,,--schema public🍀###

[omm@klgdj back_up]$ gs_dump -p 15400 db_test01 -f /home/omm/back_up/bkp_shl2-02.sql -n db_test01.t_config -n test.t_config --schema public
gs_dump[port='15400'][db_test01][2023-07-01 13:52:18]: no matching schemas were found for pattern "db_test01.t_config"
gs_dump[port='15400'][db_test01][2023-07-01 13:52:18]: no matching schemas were found for pattern "test.t_config"
gs_dump[port='15400'][db_test01][2023-07-01 13:52:19]: The total objects number is 437.
gs_dump[port='15400'][db_test01][2023-07-01 13:52:19]: [100.00%] 437 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 13:52:19]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 13:52:19]: total time: 1495  ms
[omm@klgdj back_up]$ ll
🔰 3.3.4 排除转储的表(或视图、或序列、或外表)对象列表

不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-T选项来选择多个表,也可以使用通配符指定多个表对象。

当同时输入-t和-T时,会转储在-t列表中,而不在-T列表中的表对象。

###🍀语法🍀###
gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -T table1 -T table2
###🍀排除转储db_test0模式的t_config表,,--schema public🍀###
[omm@klgdj back_up]$ gs_dump -p 15400 db_test01 -f /home/omm/back_up/bkp_shl2-03.sql -T t_config -T t_area
gs_dump[port='15400'][db_test01][2023-07-01 13:59:05]: no matching tables were found for pattern "t_config"
gs_dump[port='15400'][db_test01][2023-07-01 13:59:05]: no matching tables were found for pattern "t_area"
gs_dump[port='15400'][db_test01][2023-07-01 13:59:07]: The total objects number is 478.
gs_dump[port='15400'][db_test01][2023-07-01 13:59:07]: [100.00%] 478 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 13:59:07]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 13:59:07]: total time: 1537  ms
[omm@klgdj back_up]$
----t_config 和t_area在转储过程中会被排除。
  • 有关示例

示例1:执行gs_dump,导出db_test01数据库全量信息,导出的db_test01_backup.sql文件格式为纯文本格式。
在这里插入图片描述

[omm@klgdj back_up]$ gs_dump -U omm -W zyl#2023 -f /home/omm/back_up/db_test01_backup.sql -p 15400 db_test01 -F p

gs_dump[port='15400'][db_test01][2023-07-01 14:04:35]: The total objects number is 478.
gs_dump[port='15400'][db_test01][2023-07-01 14:04:35]: [100.00%] 478 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 14:04:35]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 14:04:35]: total time: 1556  ms
[omm@klgdj back_up]$ ll
总用量 224
-rw------- 1 omm dbgrp   8795  7月  1 13:52 bkp_shl2-02.sql
-rw------- 1 omm dbgrp 100290  7月  1 13:59 bkp_shl2-03.sql
-rw------- 1 omm dbgrp   8915  7月  1 12:52 bkp_shl2.sql
-rw------- 1 omm dbgrp 100290  7月  1 14:04 db_test01_backup.sql
[omm@klgdj back_up]$ 

示例2:执行gs_dump,导出db_test01数据库全量信息,导出的db_test01_backup.tar文件格式为tar格式。
在这里插入图片描述

[omm@klgdj back_up]$ gs_dump -U omm -W zyl#2023 -f /home/omm/back_up/db_test01_backup.tar -p 15400 db_test01  -F t
gs_dump[port='15400'][db_test01][2023-07-01 14:13:12]: The total objects number is 478.
gs_dump[port='15400'][db_test01][2023-07-01 14:13:12]: [100.00%] 478 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 14:13:12]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 14:13:12]: total time: 1573  ms
[omm@klgdj back_up]$ ll
总用量 608
-rw------- 1 omm dbgrp   8795  7月  1 13:52 bkp_shl2-02.sql
-rw------- 1 omm dbgrp 100290  7月  1 13:59 bkp_shl2-03.sql
-rw------- 1 omm dbgrp   8915  7月  1 12:52 bkp_shl2.sql
-rw------- 1 omm dbgrp 100290  7月  1 14:04 db_test01_backup.sql
-rw------- 1 omm dbgrp 140288  7月  1 14:13 db_test01_backup.tar
[omm@klgdj back_up]$ 

示例3:执行gs_dump,导出db_test01数据库全量信息,导出的db_test01_backup.dmp文件格式为自定义归档格式。
在这里插入图片描述

[omm@klgdj back_up]$ gs_dump -U omm -W zyl#2023 -f /home/omm/back_up/db_test01_backup.dmp -p 15400 db_test01  -F c
gs_dump[port='15400'][db_test01][2023-07-01 14:14:09]: The total objects number is 478.
gs_dump[port='15400'][db_test01][2023-07-01 14:14:09]: [100.00%] 478 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 14:14:09]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 14:14:09]: total time: 1523  ms
[omm@klgdj back_up]$ ll
总用量 652
-rw------- 1 omm dbgrp   8795  7月  1 13:52 bkp_shl2-02.sql
-rw------- 1 omm dbgrp 100290  7月  1 13:59 bkp_shl2-03.sql
-rw------- 1 omm dbgrp   8915  7月  1 12:52 bkp_shl2.sql
-rw------- 1 omm dbgrp  42765  7月  1 14:14 db_test01_backup.dmp
-rw------- 1 omm dbgrp 100290  7月  1 14:04 db_test01_backup.sql
-rw------- 1 omm dbgrp 140288  7月  1 14:13 db_test01_backup.tar
[omm@klgdj back_up]$ 

示例4:执行gs_dump,导出db_test01数据库全量信息,导出的db_test01_backup文件格式为目录格式。在这里插入图片描述

[omm@klgdj back_up]$ gs_dump -U omm -W zyl#2023 -f /home/omm/back_up/db_test01_backup -p 15400 db_test01 -F d
gs_dump[port='15400'][db_test01][2023-07-01 14:16:49]: The total objects number is 478.
gs_dump[port='15400'][db_test01][2023-07-01 14:16:49]: [100.00%] 478 objects have been dumped.
gs_dump[port='15400'][db_test01][2023-07-01 14:16:49]: dump database db_test01 successfully
gs_dump[port='15400'][db_test01][2023-07-01 14:16:49]: total time: 1572  ms
[omm@klgdj back_up]$ ll
总用量 652
-rw------- 1 omm dbgrp   8795  7月  1 13:52 bkp_shl2-02.sql
-rw------- 1 omm dbgrp 100290  7月  1 13:59 bkp_shl2-03.sql
-rw------- 1 omm dbgrp   8915  7月  1 12:52 bkp_shl2.sql
drwx------ 2 omm dbgrp    227  7月  1 14:16 db_test01_backup
-rw------- 1 omm dbgrp  42765  7月  1 14:14 db_test01_backup.dmp
-rw------- 1 omm dbgrp 100290  7月  1 14:04 db_test01_backup.sql
-rw------- 1 omm dbgrp 140288  7月  1 14:13 db_test01_backup.tar
[omm@klgdj back_up]$ 

🔰 3.4 gs_dumpall概述

🍀1、gs_dumpall是openGauss用于导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据以及openGauss所有数据库公共的全局对象。

🍀2、gs_dumpall工具由操作系统用户omm执行。

🍀3、gs_dumpall工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。

🍀4、gs_dumpall工具支持导出完整一致的数据。例如,T1时刻启动gs_dumpall导出openGauss数据库,那么导出数据结果将会是T1时刻该openGauss数据库的数据状态,T1时刻之后对openGauss的修改不会被导出。

🍀5、gs_dumpall时=生成列不会被转储

🍀6、gs_dumpall在导出openGauss所有数据库时分为两部分:

1、gs_dumpall自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组、表空间以及属性(例如,适用于数据库整体的访问权限)信息
2、gs_dumpall通过调用gs_dump来完成openGauss中各数据库的SQL脚本文件导出,该脚本文件包含将数据库恢复为其保存时的状态所需要的全部SQL语句
以上两部分导出的结果为纯文本格式的SQL脚本文件,使用gsql运行该脚本文件可以恢复openGauss数据库。

🔰 3.5 使用gs_dumpall的注意事项

🍀1、禁止修改导出的文件和内容,否则可能无法恢复成功
🍀2、为了保证数据一致性和完整性,gs_dumpall会对需要转储的表设置共享锁。如果某张表在别的事务中设置了共享锁,gs_dumpall会等待此表的锁释放后锁定此表。如果无法在指定时间内锁定某张表,转储会失败。用户可以通过指定–lock-wait-timeout选项,自定义等待锁超时时间。
🍀3、由于gs_dumpall读取所有数据库中的表,因此必须以openGauss管理员身份进行连接,才能导出完整文件在使用gsql执行脚本文件导入时,同样需要管理员权限,以便添加用户和组以及创建数据库
🍀4、gs_dumpall仅支持纯文本格式导出。所以只能使用gsql恢复gs_dumpall导出的转储内容。

🔰 3.6 逻辑备份—gs_dumpall

  • 有关示例

使用gs_dumpall一次导出openGauss的所有数据库。
在这里插入图片描述

[omm@klgdj back_up]$ gs_dumpall -f /home/omm/back_up/ALLDB_backup.sql -p 15400
gs_dump[port='15400'][dbname='db_test01'][2023-07-01 14:30:06]: The total objects number is 478.
gs_dump[port='15400'][dbname='db_test01'][2023-07-01 14:30:06]: [100.00%] 478 objects have been dumped.
gs_dump[port='15400'][dbname='db_test01'][2023-07-01 14:30:06]: dump database dbname='db_test01' successfully
gs_dump[port='15400'][dbname='db_test01'][2023-07-01 14:30:06]: total time: 1697  ms
gs_dump[port='15400'][dbname='klzhyyt'][2023-07-01 14:30:07]: The total objects number is 427.
gs_dump[port='15400'][dbname='klzhyyt'][2023-07-01 14:30:07]: [100.00%] 427 objects have been dumped.
gs_dump[port='15400'][dbname='klzhyyt'][2023-07-01 14:30:07]: dump database dbname='klzhyyt' successfully
gs_dump[port='15400'][dbname='klzhyyt'][2023-07-01 14:30:07]: total time: 1606  ms
gs_dump[port='15400'][dbname='postgres'][2023-07-01 14:30:09]: The total objects number is 479.
gs_dump[port='15400'][dbname='postgres'][2023-07-01 14:30:09]: [100.00%] 479 objects have been dumped.
gs_dump[port='15400'][dbname='postgres'][2023-07-01 14:30:09]: dump database dbname='postgres' successfully
gs_dump[port='15400'][dbname='postgres'][2023-07-01 14:30:09]: total time: 1941  ms
gs_dumpall[port='15400'][2023-07-01 14:30:09]: dumpall operation successful
gs_dumpall[port='15400'][2023-07-01 14:30:09]: total time: 5309  ms
[omm@klgdj back_up]$ ll
总用量 856
-rw------- 1 omm dbgrp 210967  7月  1 14:30 ALLDB_backup.sql
-rw------- 1 omm dbgrp   8795  7月  1 13:52 bkp_shl2-02.sql
-rw------- 1 omm dbgrp 100290  7月  1 13:59 bkp_shl2-03.sql
-rw------- 1 omm dbgrp   8915  7月  1 12:52 bkp_shl2.sql
drwx------ 2 omm dbgrp    227  7月  1 14:16 db_test01_backup
-rw------- 1 omm dbgrp  42765  7月  1 14:14 db_test01_backup.dmp
-rw------- 1 omm dbgrp 100290  7月  1 14:04 db_test01_backup.sql
-rw------- 1 omm dbgrp 140288  7月  1 14:13 db_test01_backup.tar
[omm@klgdj back_up]$ 

🔻 四、逻辑恢复----gs_restore

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

🍀2、gs_restore工具由操作系统用户omm执行
🍀3、gs_restore默认是以追加的方式进行数据导入。为避免多次导入造成数据异常,在进行导入时,建议使用“-c”参数,在重新创建数据库对象前,清理(删除)已存在于将要还原的数据库中的数据库对象。

  • 主要功能包含:

1、导入到数据库

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

2、导入到脚本文件

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

🔰 4.1 导入多个模式

多次输入-n _schemaname_可以导入多个模式。

###🍀语法🍀###
gs_restore -h host_name -p port_number -d postgres -n sch1 -n sch2 backup/MPPDB_backup.tar
sch1和sch2会被导入。
[omm@klgdj back_up]$ gs_restore -p 15400 -d db_test01  -n db_test01 -n test /home/omm/back_up/db_test01_backup.tar 
start restore operation ...
table smbh_bhcfg_bc_b complete data imported !
table smbh_bhcfg_bc_bp complete data imported !
table smbh_bhcfg_bh_info complete data imported !
table t_area complete data imported !
table t_config complete data imported !
table t_xmjbxx_info complete data imported !
table t_config complete data imported !
100 SQL statements read in !
Finish reading 101 SQL statements!
end restore operation ...
restore operation successful
total time: 140  ms
[omm@klgdj back_up]$ 
🔰 4.2 逻辑恢复
  • 有关示例

特例: 执行gsql程序,使用如下选项导入由gs_dump/gs_dumpall生成导出文件夹(纯文本格式)的db_test01_backup.sql文件到db_test01数据库。
在这里插入图片描述

gsql -d db_test01 -p 15400 -W zyl#2023 -f /home/omm/back_up/db_test01_backup.sql

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

gs_restore -W zyl#2023 /home/omm/back_up/db_test01_backup.dmp -p 15400 -d db_test01

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

gs_restore  /home/omm/back_up/db_test01_backup.tar -p 15400 -d db_test01

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

gs_restore  /home/omm/back_up/db_test01_backup -p 15400 -d db_test01

示例4: 执行gs_restore,使用自定义归档格式的MPPDB_backup.dmp文件来进行如下导入操作。 导入PUBLIC模式下所有对象的定义和数据。在导入时会先删除已经存在的对象,如果原对象存在跨模式的依赖则需手工强制干预。

[omm@klgdj back_up]$ gs_restore /home/omm/back_up/db_test01_backup.dmp -p 15400 -d db_test01 -e -c -n PUBLIC
start restore operation ...
100 SQL statements read in !
Finish reading 101 SQL statements!
end restore operation ...
restore operation successful
total time: 9  ms
[omm@klgdj back_up]$ 

示例5: 执行gs_restore,使用自定义归档格式的db_test01_backup.dmp文件来进行如下导入操作。只导入db_test01模式下表t_config的定义,不导入t_config表数据。

[omm@klgdj back_up]$ gs_restore /home/omm/back_up/db_test01_backup.dmp -p 15400 -d db_test01 -e -c -s -n db_test01 -t t_config
start restore operation ...
100 SQL statements read in !
Finish reading 101 SQL statements!
end restore operation ...
restore operation successful
total time: 28  ms
[omm@klgdj back_up]$ 

示例6: 执行gs_restore,使用自定义归档格式的db_test01_backup.dmp文件来进行如下导入操作。只导入db_test01模式下表t_config的数据。

[omm@klgdj back_up]$ gs_restore /home/omm/back_up/db_test01_backup.dmp -p 15400 -d db_test01 -e -a -n db_test01 -t t_config
start restore operation ...
table t_config complete data imported !
100 SQL statements read in !
Finish reading 101 SQL statements!
end restore operation ...
restore operation successful
total time: 12  ms
[omm@klgdj back_up]$ 

🔻 五、总结—温故知新

❓ 通过该章你将了解到openGauss数据库有关备份及恢复类型,各类型之间区别
❓ openGauss数据库---配置文件的备份与恢复
❓ openGauss数据库---逻辑备份gs_dump & gs_dumpall有关操作
❓ openGauss数据库---逻辑恢复gs_restore有关操作

👈【上一篇】
💖The End💖 点点关注,收藏不迷路💖
【下一篇】👉
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐