【openGauss数据库】--运维指南02-逻辑备份与恢复
- 🔻 一、 openGauss数据库备份与恢复概述
- 🔰 1.1 备份与恢复类型
- 🔰 1.2 类型对比
- 🔻 二、 配置文件的备份与恢复
- 🔻 三、逻辑备份----gs_dump & gs_dumpall
- 🔰 3.1 gs_dump 概述
- 🔰 3.2 使用gs_dump的注意事项
- 🔰 3.3 逻辑备份---gs_dump
- 🔰 3.3.1 多个模式的转储
- 🔰 3.3.2 排除多个模式转储
- 🔰 3.3.3 指定转储的表(或视图、或序列、或外表)对象列表
- 🔰 3.3.4 排除转储的表(或视图、或序列、或外表)对象列表
- 🔰 3.4 gs_dumpall概述
- 🔰 3.5 使用gs_dumpall的注意事项
- 🔰 3.6 逻辑备份---gs_dumpall
- 🔻 四、逻辑恢复----gs_restore
- 🔰 4.1 导入多个模式
- 🔰 4.2 逻辑恢复
- 🔻 五、总结—温故知新
👈【上一篇】 |
💖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💖 点点关注,收藏不迷路💖
| 【下一篇】👉 |