【openGauss数据库】--运维指南02-逻辑备份与恢复

news2024/11/18 3:26:28

【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💖 点点关注,收藏不迷路💖
【下一篇】👉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/707039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Uipath Excel 实战01-自动生成流水号最佳方法

Uipath RPA 自动生成流水号最佳方法,提高RPA 性能,速度毫秒级。通过本案例将学会Excel 写入单元格、Excel 自动填充公式、Excel 自动调整列范围、保存Excel 文件以及使用Excel 函数。 公式参考: Excel公式参考: Excel CONCATENAT…

动态规划——地下城游戏

题目链接 leetcode在线oj题——地下城游戏 题目描述 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健…

chatgpt赋能python:线上免费Python教程推荐

线上免费Python教程推荐 Python作为一门简单易学的编程语言,在各个行业和领域都越来越受欢迎。很多人想学Python,但是可能因为费用等问题而卡住了。今天,我们来介绍一些免费的Python教程,帮助那些想要学习Python但没有预算的人。…

上手vue2的学习笔记2之安装vue的踩坑经历

上一篇笔记 上手vue2的学习笔记1之了解前端三剑客,简单介绍了学习vue框架之前应该具备的基础知识和四个我认为非常有用的学习链接,建议大家动手实践一下,更多深刻的理解前端三剑客之间的关系。 这一篇笔记主要介绍我在安装vue过程中遇到的坑…

华为FIT痩AP旁挂式隧道组网实验(一)

拓扑图 实验设备型号ACAC6005S1S5700S2S3700APAP2050DNAP4AP2050DNAR1AR200 没有配置好之前,是没有这个AP范围圈的 配置流程 接入交换机创建VLAN,配置对应端口的链路类型,放行vlan,开启端口隔离 # 与AP连接的接口(0/0/2) [S2]vlan batch 100 101 [S2]int e0/0/2 [S2-Ethern…

Android中关于SharedPreference参数的问题

文章目录 一、前言二、问题背景三、问题定位四、问题解决 一、前言 在上周开发时遇到一个问题,记录一下: 首先描述一下应用场景: 使用sharedPreference进行存储,命名为a.xml,这里简称为a文件有两个服务,一…

海思nnie 部署环境 搭建流程

文章目录 在windows上安装 Ruyi studio 软件MinG-64 安装运行软件在windows上安装 Ruyi studio 软件 Hi3559A的资料包 链接:https://pan.baidu.com/s/1rQcXvLW6ruSxIs4C9cMSCg 提取码:zsq5 从百度网盘下载软件 有很多个版本, 这里我选择的是SVP_PC.part2的版本 解压后得到:…

[爬虫]解决机票网站文本混淆问题-实战讲解

前言 最近有遇到很多小伙伴私信向我求助,遇到的问题基本上都是关于文本混淆或者是字体反爬的问题。今天给大家带来其中一个小伙伴的实际案例给大家讲讲解决方法 📝个人主页→数据挖掘博主ZTLJQ的主页 ​​ 个人推荐python学习系列: ☄️爬虫J…

YOLOv8训练和预测

目录 1.源码下载 2.环境配置 3. 数据集准备 4.训练配置 5.训练时遇到的错误 1.源码下载 GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > CoreML > TFLite 2.环境配置 运行环境需要的包和YOLOv5/v7一样,这里不…

C语言:移位操作注意事项

移位操作&#xff1a;因为操作符的原因&#xff0c;注意加括号。还有没必要在移位的时候进行&#xff08;uint32_t&#xff09;转换。 测试程序如下&#xff1a; #include <string.h> #include <stdlib.h> #include <stdio.h> #include <stdint.h>i…

javaweb学习3

javascript入门 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script type"text/javascript"> // <!-- 可以在head和body嵌入script执行顺序从上而…

KEIL5-MDK配色方案

改字体 复制如下代码&#xff0c;替换原有文件内容 global.prop文件&#xff1a;D:Keil_v5\UV4\global.prop # properties for all file types indent.automatic1 virtual.space0 view.whitespace0 view.endofline0 code.page0 caretline.visible0 highlight.matchingbraces1 …

【深度学习】日常笔记8

过拟合是指模型在训练集上表现良好&#xff0c;但在验证集和测试集上表现不佳的现象。这是因为模型在训练过程中过度学习了训练数据中的噪声和细节&#xff0c;而忽略了更一般的特征和规律&#xff0c;导致模型泛化能力不足。 具体来说&#xff0c;当模型在训练集上进行训练时&…

some files could not be transferre Xcode14.3打包问题

方法1: Command空格 搜索 该项目的 source“ ( r e a d l i n k " (readlink " (readlink"{source}”)" 替换为source“ ( r e a d l i n k − f " (readlink -f " (readlink−f"{source}”)" 即可。 方法2:切换Xcode 版本&#xff0…

C++面向对象丨4. 文件操作

操作系统&#xff1a;Windows IDE&#xff1a;Visual Studio 2019 文章目录 1 文本文件1.1 写文件1.2 写文件实例1.3 读文件1.4 读文件实例 2 二进制文件2.1 写文件2.2 写文件实例2.2 读文件2.4 读文件实例 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会…

计算机图形硬件(二) 5 - 1 视频显示设备

现在&#xff0c;计算机图形学的功能与应用已经得到了广泛承认&#xff0c;大量的图形硬件和软件系统已经应用到了几乎所有的领域。通用计算机甚至许多手持计算器也已经普遍具备二维及三维应用的图形功能。在个人计算机上也可以配用多种交互输人设备及图形软件包。对于高性能应…

校园网网络命令拓扑命令+详解集合

各位读者好&#xff0c;我发现&#xff0c;最近的收藏量比较多&#xff0c;为了大家方便&#xff0c;添加了一些各部分图和细节。 目录 配置总流程 1、总体拓扑图网段 2、命令 &#xff08;1&#xff09;内网配置 1&#xff09;二层交换机配置VLAN命令&#xff1a; 2&#x…

RabbitMQ学习笔记7(小滴课堂)SpringBoot2.X+SpringAMQP整合Rabbit

我们使用在线创建项目的方式&#xff1a; 这样就能快速的创建我们的项目了。 然后我们要去绑定我们的队列和交换机&#xff1a; 然后我们去写我们的测试类去测试一下&#xff1a; 我们去运行一下&#xff1a; 我们的依赖包不要引入错了。 我们可以看到我们的交换机和我们的队…

计算机基本组成和冯诺依曼机

计算机基本组成和冯诺依曼机 计算机的基本组成 计算机硬件组成 软件与硬件的逻辑等价性 冯诺依曼计算机硬件结构 冯诺依曼计算机工作原理 程序存储控制原理 计算机采用二进制的优势 高电平与低电平电压波动受影响的可能性会降低&#xff0c;抗干扰能力强 什么是冯诺依曼计算机…

基于无监督学习-关联规则的风险评估模型:更精准的预测!

一、引言 乳腺癌被认为是全球最常见的女性恶性肿瘤之一&#xff0c;对患者和公共健康造成了巨大的负担。准确评估乳腺癌风险是预防、诊断和治疗该疾病的关键。然而&#xff0c;乳腺癌风险估计面临着一些挑战&#xff0c;如数据的限制性、模型的复杂性和准确性等。因此&#xff…