【openGauss数据库】--运维指南03--数据导出

news/2024/10/17 22:25:32/

【openGauss数据库】--运维指南03--数据导出

    • 🔻 一、openGauss导出数据
      • 🔰 1.1 概述
      • 🔰 1.2 导出单个数据库
        • 🔷 1.2.1 导出数据库
        • 🔷 1.2.2 导出模式
        • 🔷 1.2.3 导出表
      • 🔰 1.3 导出所有数据库
      • 🔰 1.4 导出全局对象
    • 🔻 二、总结—温故知新

在这里插入图片描述


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

🔻 一、openGauss导出数据

🔰 1.1 概述

openGauss提供的gs_dumpgs_dumpall工具,能够帮助用户导出需要的数据库对象或其相关信息。通过导入工具将导出的数据信息导入至需要的数据库,可以完成数据库信息的迁移。gs_dump支持导出单个数据库或其内的对象,而gs_dumpall支持导出openGauss中所有数据库或各库的公共全局对象

在这里插入图片描述

gs_dumpgs_dumpall通过对导出的数据文件加密导入时对加密的数据文件进行解密可以防止数据信息泄露,为数据库的安全提供保证。

  • 🧬 说明:

💠1、使用gs_dump加密的纯文本格式文件如果导出的数据库中包含存储过程,因gsql不支持解密导入存储过程和函数,因此如果导出的数据库中包含存储过程/函数需使用另外三种模式导出数据库,并使用gs_restore恢复。

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

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

  • 🧬 注意事项:

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

💠2、如果数据库中包含的对象数量(数据表、视图、索引)在50万以上,为了提高性能且避免出现内存问题,建议通过gs_guc工具设置数据库节点的如下参数(如果参数值大于如下建议值,则无需设置)。
gs_guc set -N all -I all -c 'max_prepared_transactions = 1000'
gs_guc set -N all -I all -c 'max_locks_per_transaction = 512'

若设置如上参数,则需重启数据库使参数生效。

gs_om -t stop && gs_om -t start

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

💠4、由于gs_dumpall读取所有数据库中的表,因此必须以openGauss管理员身份进行连接,才能导出完整文件。在使用gsql执行脚本文件导入时,同样需要管理员权限,以便添加用户和组,以及创建数据库。

🔰 1.2 导出单个数据库

🔷 1.2.1 导出数据库

🟢 1、以操作系统用户omm登录数据库主节点。
[root@klgdj ~]$ su - omm
     
🟢 2、使用gs_dump导出db_test01 数据库全量信息为tar归档格式。
[omm@klgdj back_up]$ gs_dump -U omm -f /home/omm/back_up/db_test01_backup.tar -p 15400 db_test01 -F t

在这里插入图片描述

  • 🧬 示例:

🟢 1、执行gs_dump,导出db_test01 数据库全量信息,导出文件格式为sql文本格式。
[omm@klgdj back_up]$ gs_dump -U omm -f /home/omm/back_up/db_test01_backup.sql -p 15400 db_test01 -F p
    在这里插入图片描述
   
🟢 2、执行gs_dump,仅导出db_test01 数据库中的数据,不包含数据库对象定义,导出文件格式为自定义归档格式。
[omm@klgdj back_up]$ gs_dump -U omm -f /home/omm/back_up/db_test01_data_backup.dmp -p 15400 db_test01 -a -F c
   
在这里插入图片描述
   
🟢 3、执行gs_dump,仅导出db_test01 数据库所有对象的定义,导出文件格式为sql文本格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_def_backup.sql -p 15400 db_test01 -s -F p
    在这里插入图片描述
   
🟢 4、执行gs_dump,仅导出db_test01 数据库的所有对象的定义,导出文件格式为文本格式,并对导出文件进行加密。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_def_backup02.sql -p 15400 db_test01 --with-encryption AES128 --with-key 123456#abcdef -s -F p
    在这里插入图片描述

  • 🧬 gs_dump 参数详解:

🩸 gs_dump -U jack -W abcd@123 -f /home/omm/back_up/userdatabase_backup.tar -p 8000 dbname -F t
在这里插入图片描述

🔷 1.2.2 导出模式

🟢 1、以操作系统用户omm登录数据库主节点。
[root@klgdj ~]$ su - omm
   
🟢 2、使用gs_dump同时导出db_test01public模式。
[omm@klgdj back_up]$ gs_dump -U omm -f /home/omm/back_up/db_test01_schema_backup -p 15400 db_test01 -n db_test01 -n public -F d
   
在这里插入图片描述

  • 🧬 示例:

🟢 1、执行gs_dump,导出db_test01的db_test01 模式全量信息,导出文件格式为文本格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_schema_backup.sql -p 15400 db_test01 -n db_test01 -F p
   
在这里插入图片描述
   
🟢 2、执行gs_dump,仅导出db_test01数据库的db_test01 模式的数据,导出文件格式为tar归档格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_schema_data_backup.tar -p 15400 db_test01 -n db_test01 -a -F t
   
在这里插入图片描述
   
🟢 3、执行gs_dump,仅导出db_test01数据库的 db_test01 模式的定义,导出文件格式为目录归档格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_schema_def_backup -p 15400 db_test01 -n db_test01 -s -F d
   
在这里插入图片描述
   
🟢 4、执行gs_dump,导出db_test01数据库时,排除public模式,导出文件格式为自定义归档格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_schema_exclude_public_backup.dmp -p 15400 db_test01 -N public -F c
   
在这里插入图片描述
   
🟢 5、执行gs_dump,同时导出db_test01数据库的db_test01public模式,且仅导出模式定义,导出文件格式为tar归档格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_schema_custom_backup.tar -p 15400 db_test01 -n db_test01 -n public -s -F t
   
在这里插入图片描述
   
🟢 6、执行gs_dump,导出db_test01数据库时,排除db_test01public模式,导出文件格式为自定义归档格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_schema_exclude_publicANDdb_test01_backup.dmp -p 15400 db_test01 -N db_test01 -N public -F c
   
在这里插入图片描述
   
🟢 7、执行gs_dump,导出db_test01模式下所有表(视图、序列和外表)和public模式中t_dept表,包含数据和表定义,导出文件格式为自定义归档格式。
[omm@klgdj back_up]$ gs_dump -f /home/omm/back_up/db_test01_backup02.dmp -p 15400 db_test01 -t db_test01.* -t public.t_dept-F c
   
在这里插入图片描述

  • 🧬 gs_dump 参数详解:

🩸 gs_dump -U jack -W abcd@123 -f /home/omm/back_up/userdatabase_backup.tar -p 8000 dbname -F t
在这里插入图片描述

🔷 1.2.3 导出表

🟢 1、以操作系统用户omm登录数据库主节点。
[root@klgdj ~]$ su - omm
     
🟢 2、使用gs_dump同时导出指定表db_test01.t_config和db_test01.t_area。
[omm@klgdj back_up]$ gs_dump -U omm -f /home/omm/back_up/db_test01_table_backup -p 15400 db_test01 -t db_test01.t_config -t db_test01.t_area -F d
   
在这里插入图片描述

  • 🧬 示例:

🟢 1、执行gs_dump,导出表db_test01.t_config的定义和数据,导出文件格式为文本格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_t_config_backup.sql -p 15400 db_test01 -t db_test01.t_config -F p
   
在这里插入图片描述
   
🟢 2、执行gs_dump,只导出表db_test01.t_config的数据,导出文件格式为tar归档格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_table_data_backup.tar -p 15400 db_test01 -t db_test01.t_config -a -F t
    在这里插入图片描述
   
🟢 3、执行gs_dump,导出表db_test01.t_config的定义,导出文件格式为目录归档格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_table_def_backup -p 15400 db_test01 -t db_test01.t_config -s -F d
    在这里插入图片描述
   
🟢 4、执行gs_dump,不导出表db_test01.t_config,导出文件格式为自定义归档格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_exclude_t_config_backup.dmp -p 15400 db_test01 -T db_test01.t_config -F c
    在这里插入图片描述
   
🟢 5、执行gs_dump,同时导出两个表db_test01.t_config和db_test01.t_area,导出文件格式为文本格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_table_backup02.sql -p 15400 db_test01 -t db_test01.t_config -t db_test01.t_area -F p
   
在这里插入图片描述
   
🟢 6、执行gs_dump,导出时,排除两个表db_test01.t_config和db_test01.t_area,导出文件格式为文本格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_exclude_t_configANDt_area_backup.sql -p 15400 db_test01 -T db_test01.t_config -T db_test01.t_area -F p

在这里插入图片描述

🟢 7、执行gs_dump,导出表db_test01.t_config的定义和数据,只导出表db_test01.t_area的定义,导出文件格式为tar归档格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_table_backup3.tar -p 15400 db_test01 -t db_test01.t_config -t db_test01.t_area --exclude-table-data db_test01.t_area -F t
在这里插入图片描述

🟢8、执行gs_dump,导出表db_test01.t_config的定义和数据,并对导出文件进行加密,导出文件格式为文本格式。
[omm@klgdj backup]$ gs_dump -f /home/omm/backup/db_test01_t_config_backup4.sql -p 15400 db_test01 -t db_test01.t_config --with-encryption AES128 --with-key abcdefg_?1234567 -F p
在这里插入图片描述

🟢9、执行gs_dump,导出db_test01模式下所有表(包括视图、序列和外表)和public模式中t_dept表,包含数据和表定义,导出文件格式为自定义归档格式。
gs_dump -f /home/omm/backup/db_test01_table_backup5.dmp -p 15400 db_test01 -t db_test01.* -t public.t_dept -F c

在这里插入图片描述

🟢10、执行gs_dump,仅导出db_test01数据库依赖于public模式下的t_user表对象的视图信息,导出文件格式为目录归档格式。
gs_dump -U omm -f /home/omm/backup/public_t_user_view_backup6 -p 15400 db_test01 -t public.t_user --include-depend-objs --exclude-self -F d

在这里插入图片描述

🔰 1.3 导出所有数据库

openGauss支持使用gs_dumpall工具导出所有数据库的全量信息,包含openGauss中每个数据库信息和公共的全局对象信息

🟢 1、以操作系统用户omm登录数据库主节点。
[root@klgdj ~]$ su - omm
     
🟢 2、使用gs_dumpall一次导出所有数据库信息。
[omm@klgdj back_up]$ gs_dumpall -U omm -f /home/omm/backup/DBALL_backup.sql -p 15400
   
在这里插入图片描述

  • 🧬 示例:

🟢 1、执行gs_dumpall,导出所有数据库全量信息(omm用户为管理员用户),导出文件为文本格式。执行命令后,会有很长的打印信息,最终出现total time即代表执行成功。示例中将不体现中间的打印信息。
[omm@klgdj backup]$ gs_dumpall -U omm -f /home/omm/backup/DBALL_backup02.sql -p 15400
   
在这里插入图片描述
   
🟢 2、执行gs_dumpall,仅导出所有数据库定义(omm用户为管理员用户),导出文件为文本格式。执行命令后,会有很长的打印信息,最终出现total time即代表执行成功。示例中将不体现中间的打印信息。
[omm@klgdj backup]$ gs_dumpall -U omm -f /home/omm/backup/DBALL_def_backup.sql -p 15400 -s
   
在这里插入图片描述
   
🟢 3、执行gs_dumpall,仅导出所有数据库中数据,并对导出文件进行加密,导出文件为文本格式。执行命令后,会有很长的打印信息,最终出现total time即代表执行成功。示例中将不体现中间的打印信息。
[omm@klgdj backup]$ gs_dumpall -f /home/omm/backup/DBALL_data_backup.sql -p 15400 -a --with-encryption AES128 --with-key abcdefg_?1234567
   
在这里插入图片描述

🔰 1.4 导出全局对象

openGauss支持使用gs_dumpall工具导出所有数据库公共的全局对象,包含数据库用户和组、表空间及属性(例如:适用于数据库整体的访问权限)信息

🟢 1、以操作系统用户omm登录数据库主节点。
[root@klgdj ~]$ su - omm
     
🟢 2、使用gs_dumpall导出表空间对象信息
[omm@klgdj back_up]$ gs_dumpall -U omm -f /home/omm/backup/DBALL_tablespace.sql -p 15400 -t
   
在这里插入图片描述

  • 🧬 示例:

🟢 1、执行gs_dumpall,导出所有数据库的公共全局表空间信息和用户信息(omm用户为管理员用户),导出文件为文本格式。
[omm@klgdj backup]$ gs_dumpall -U omm -f /home/omm/backup/DBALL_globals.sql -p 15400 -g
   
在这里插入图片描述
   
🟢 2、执行gs_dumpall,导出所有数据库的公共全局表空间信息(omm用户为管理员用户),并对导出文件进行加密,导出文件为文本格式。
[omm@klgdj backup]$ gs_dumpall -U omm -f /home/omm/backup/DBALL_tablespace02.sql -p 15400 -t --with-encryption AES128 --with-key abcdefg_?1234567
   
在这里插入图片描述
   
🟢 3、执行gs_dumpall,导出所有数据库的公共全局用户信息(omm用户为管理员用户),导出文件为文本格式。
[omm@klgdj backup]$ gs_dumpall -U omm -f /home/omm/backup/DBALL_user.sql -p 15400 -r
    在这里插入图片描述

🔻 二、总结—温故知新

❓ 该章详细介绍了openGauss数据库使用gs_dump和gs_dumpall命令导出数据(导出单个数据库&导出所有数据库)。

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

http://www.ppmy.cn/news/755084.html

相关文章

微信朋友圈设计原理

转自:http://www.woshipm.com/pd/2701264.html 当你一秒钟拍了张自拍,一个小时修了下图,然后打开朋友圈,点击发送的那一刻,后台到底有多少工作在进行着? 我们太习以为常,没有意识到这背后还会…

2019一键清空朋友圈_批量清理朋友圈说说

2019微信怎批量删除朋友圈 2019微信一键清空朋方法对于微信一键清空朋友法很多人复杂的一条条的删除,是批量也是难以全选,微信很多时候都没有那么全面,主要是害怕一些人一不小心点着什么就全部清空了,为了防止这样的第且能够很多功…

还在为微信朋友圈的大量广告而苦恼吗?一文教你如何清除微信朋友圈的广告!!!

还在为微信朋友圈的大量广告而苦恼吗?一文教你如何清除微信朋友圈的广告!!! 大家好,我叫亓官劼(q guān ji ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期…

微信朋友圈删除后服务器还有吗,删了的朋友圈还可以找回来吗

演示工具: 手机型号:iphone12 系统版本:ios14 软件版本:微信7.0.20 删除的朋友圈动态不能找回来。删除是从网络服务器上面把此信息删除了,是无法找回的,而已删除掉以后,好友那边此条动态也是同步…

微信悄悄更新:朋友圈不喜欢的评论可以删除了

Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨周小白 来源丨TechWeb(TechWeb) https://mp.weixin.qq.com/s/a5rjW2x17UwQvVt_IRSDYQ 近日,有…

微信朋友圈十周年,你设置了三天可见吗?

2022年4月11日晚间,有网友发现微信悄悄上线了“农场”功能,只需几步操作就可以在状态里养鸡鸭鹅等各种小动物了。消息一出,网友们纷纷开始动手尝试,通过各种搭配打造具有自己特色的微信农场。 不到一天的时间,#微信农场…

微信朋友圈

1.微信朋友圈点赞 2.微信朋友圈 功能测试 1、朋友圈发送功能 1)只发送文本 a、考虑文本长度:1-1500字符(该数据为百度数据)、超出最大字符长度b、考虑文本类型:纯中文、纯数字、纯字母、纯字符、纯表情(微信…

记录下最近做的东西微信小程序仿微信朋友圈 支持点赞取消点赞,评论回复评论删除评,删除朋友圈 发布朋友圈查看@消息等功能

请添加图片描述 <movable-area class"w100_ h100_"><scroll-view scroll-y"true" refresher-enabled"true" bindrefresherrefresh"bindNewDataList" bindscrolltolower"bindAddDataList" refresher-triggered&q…