opengauss数据导入导出

li_wt li_wt     2023-04-01     248

关键词:

1、数据导入导出 - INSERT 

⚫ 用户可以通过以下方式执行INSERT语句直接向openGauss数据库写入数据: 

 使用openGauss数据库提供的客户端工具向openGauss数据库写入数据。 

 通过JDBC/ODBC驱动连接数据库执行INSERT语句向openGauss数据库写入数据。 

⚫ openGauss数据库支持完整的数据库事务级别的增删改操作。INSERT是最简单的一种数 据写入方式,这种方式适合数据写入量不大,并发度不高的场景。


2、数据导入导出 – COPY FROM STDIN  

⚫ 用户可以使用以下方式通过COPY FROM STDIN语句直接向openGauss写入数据。 

 通过键盘输入向openGauss写入数据。通过COPY命令实现在表和文件之间拷贝数据。COPY FROM表示从一个文件拷贝数据到一个表,COPY TO表示把一个表的数据拷贝到一个文件。 

◼ COPY FROM/TO适合低并发,本地小数据量导入导出。 

 通过JDBC驱动的CopyManager接口从文件或者数据库向openGauss写入数据。此方法支持 COPY语法中copy option的所有参数。 

◼ CopyManager是 openGauss JDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。 

◼ CopyManager类位于org.postgresql.copy Package中,继承自java.lang.Object类。

⚫ COPY适用场景: 

 小数据量表以文本数据作为来源导入; 

 小数量表的导出; 

 查询结果集导出。 

⚫ COPY使用方法: 

 文本数据导入;

copy t1 from '/data/input/t1.txt' delimiter '^';

 表数据导出;

copy t1 to '/data/input/t1_output.txt' delimiter '^';

 查询结果集导出;

copy (select * from t1 where a2=1) to '/data/input/t1_output.txt' delimiter '^';


3、数据导入导出 – gsql 

⚫ openGauss的gsql工具提供了元命令\\copy进行数据导入导出。 

⚫ \\copy元命令语法


⚫ 说明: 

 在任何gsql客户端登录数据库成功后,可以使用该命令进行数据的导入/导出。但是与SQL的 COPY命令不同,该命令读取/写入的文件是本地文件,而非数据库服务器端文件;因此要操作 的文件的可访问性、权限等,都是受限于本地用户的权限。


4、数据导入导出 – gs_dump 

⚫ openGauss提供的gs_dump和gs_dumpall工具,能够帮助用户导出需要的数据库对象或 其相关信息。通过导入工具将导出的数据信息导入至需要的数据库,可以完成数据库信 息的迁移。 

 gs_dump支持导出单个数据库或其内的对象,而gs_dumpall支持导出openGauss中所有 数据库或各库的公共全局对象。

gs_dump 参数说明:



5、导出数据库 

⚫ openGauss支持使用gs_dump工具导出某个数据库级的内容,包含数据库的数据和所有 对象定义。可根据需要自定义导出如下信息: 

 导出数据库全量信息,包含数据和所有对象定义。使用导出的全量信息可以创建一个与当前库 相同的数据库,且库中数据也与当前库相同。 

 仅导出所有对象定义,包括:库定义、函数定义、模式定义、表定义、索引定义和存储过程定 义等。使用导出的对象定义,可以快速创建一个相同的数据库,但是库中并无原数据库的数据。 

 仅导出数据,不包含所有对象定义。 

⚫ 示例:使用gs_dump导出postgres数据库。

gs_dump -U jack -f /home/omm/backup/postgres_backup.tar -p 8000 postgres -F t


6、导出模式 

⚫ openGauss目前支持使用gs_dump工具导出模式级的内容,包含模式的数据和定义。 

⚫ 用户可通过灵活的自定义方式导出模式内容,不仅支持选定一个模式或多个模式的导出, 还支持排除一个模式或者多个模式的导出。可根据需要自定义导出如下信息: 

 导出模式全量信息,包含数据和对象定义。 

 仅导出数据,即模式包含表中的数据,不包含对象定义。 

 仅导出模式对象定义,包括:表定义、存储过程定义和索引定义等。 

⚫ 示例:使用gs_dump同时导出hr和public模式。

gs_dump -U jack -f /home/omm/backup/MPPDB_schema_backup -p 8000 human_resource -n hr -n public -F d


7、导出表 

⚫ openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列 和外表属于特殊的表。 

⚫ 用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支 持排除一个表或者多个表的导出。可根据需要自定义导出如下信息: 

 导出表全量信息,包含表数据和表定义。 

 仅导出数据,不包含表定义。 

 仅导出表定义。

⚫ 示例:使用gs_dump同时导出指定表hr.staffs和hr.employments。

gs_dump -U jack -f /home/omm/backup/MPPDB_table_backup -p 8000 human_resource -t hr.staffs -t hr.employments -F d


8、导出所有数据库 

⚫ openGauss支持使用gs_dumpall工具导出所有数据库的全量信息,包含openGauss中每个数据库 信息和公共的全局对象信息。可根据需要自定义导出如下信息: 

 导出所有数据库全量信息,包含openGauss中每个数据库信息和公共的全局对象信息(包含角色和表空 间信息)。使用导出的全量信息可以创建与当前主机相同的一个主机环境,拥有相同数据库和公共全局 对象,且库中数据也与当前各库相同。

 仅导出数据,即导出每个数据库中的数据,且不包含所有对象定义和公共的全局对象信息。 

 仅导出所有对象定义,包括:表空间、库定义、函数定义、模式定义、表定义、索引定义和存储过程定 义等。使用导出的对象定义,可以快速创建与当前主机相同的一个主机环境,拥有相同的数据库和表空 间,但是库中并无原数据库的数据。 

⚫ 示例:使用gs_dumpall一次导出所有数据库信息。

gs_dumpall -U omm -f /home/omm/backup/MPPDB_backup.sql -p 8000


9、无权限角色导出数据 

⚫ gs_dump和gs_dumpall通过-U指定执行导出的用户帐户。如果当前使用的帐户不具备导 出所要求的权限时,会无法导出数据。此时,可在导出命令中设置--role参数来指定具备 权限的角色。在执行命令后,gs_dump和gs_dumpall会使用--role参数指定的角色,完 成导出动作。 

⚫ 示例:使用gs_dump导出human_resource数据库数据。 

 假设用户jack不具备导出数据库human_resource的权限,而角色role1具备该权限,要实现导 出数据库human_resource,可以在导出命令中设置--role角色为role1,使用role1的权限,完 成导出目的。

gs_dump -U jack -f /home/omm/backup/MPPDB_backup.tar -p 8000 human_resource --role role1 -- rolepassword abc@1234 -F t


数据导入导出 – gs_restore 

⚫ gs_restore是openGauss数据库提供的与gs_dump配套的导入工具。通过该工具,可将gs_dump 导出的文件导入至数据库。gs_restore支持导入的文件格式包含自定义归档格式、目录归档格式和 tar归档格式。 

⚫ gs_restore具备如下两种功能。 

 导入至数据库 

◼ 如果指定了数据库,则数据将被导入到指定的数据库中。其中,并行导入必须指定连接数据库的密码。 

 导入至脚本文件 

◼ 如果未指定导入数据库,则创建包含重建数据库所需的SQL语句脚本,并将其写入至文件或者标准输出。该脚本文 件等效于gs_dump导出的纯文本格式文件。 

⚫ gs_restore工具在导入时,允许用户选择需要导入的内容,并支持在数据导入前对等待导入的内容 进行排序。

gs_restore 参数说明



gs_restore 示例 

⚫ 使用gs_restore命令,从postgres整个数据库内容的导出文件中,将数据库的所有对象的 定义导入到backupdb。

gs_restore -U jack /home/omm/backup/MPPDB_backup.tar -p 8000 -d backupdb -s -e -c

⚫ 使 用 gs_restore 命 令 , 导 入 指 定 MPPDB_backup.dmp 文 件 ( 自 定 义 归 档 格 式 ) 中 postgres数据库的数据和对象定义。

gs_restore backup/MPPDB_backup.dmp -p 8000 -d backupdb

⚫ 使用gs_restore命令,将postgres数据库的所有对象的定义导入至backupdb数据库。导 入前,postgres存在完整的定义和数据,导入后,backupdb数据库只存在所有对象定义, 表没有数据。

gs_restore /home/omm/backup/MPPDB_backup.tar -p 8000 -d backupdb -s -e -c



10、ANALYZE 

⚫ 执行计划生成器需要使用表的统计信息,以生成最有效的查询执行计划,提高查询性能。因此数据导入完成后,建议执行ANALYZE语句生成最新的表统计信息。统计结果存储在 系统表PG_STATISTIC中。 

⚫ ANALYZE支持的表类型有行/列存表。ANALYZE同时也支持对本地表的指定列进行信息 统计。 

⚫ ANALYZE语法(以product_info表为例)。

postgres=# ANALYZE product_info; 

ANALYZE


VACUUM 

⚫ 如果导入过程中,进行了大量的更新或删除行时,应运行VACUUM FULL命令,然后运 行ANALYZE命令。大量的更新和删除操作,会产生大量的磁盘页面碎片,从而逐渐降低 查询的效率。VACUUM FULL可以将磁盘页面碎片恢复并交还操作系统。 

⚫ VACUUM FULL语法(以product_info表为例)。

postgres=# VACUUM FULL product_info; 

VACUUM

opengauss运维操作命令及其相关介绍(代码片段)

目录一、前言  二、常用运维相关命令1、第一组:openGauss启停2、第二组:openGauss状态查询3、第三组:openGauss实例主备切换4、第四组:openGauss备份与还原(数据导出/导入)5、第五组:openGauss常用gsql... 查看详情

数据库迁移系列从oracle迁移到opengauss实战分享(代码片段)

之前的迁移系列中我们介绍了Mysql到openGauss的迁移方法,本篇介绍使用Ora2og工具从Oracle到openGauss数据库的迁移。文章目录简介迁移前准备环境软件安装ora2og工具安装创建迁移项目配置ora2pg.conf测试迁移导出导入Ora2Pg不足FAQ简介... 查看详情

❤️‍如何使用pgloader迁移mysql数据库至opengauss❤️‍(代码片段)

...r在两种情况下都使用PostgreSQL的COPY协议高效的传输数据。openGauss兼容PostgreSQL的通信协议以及绝大部分语法,可使用pgloa 查看详情

数据库原理实验(opengauss)使用jdbc连接数据库(代码片段)

...是否放开三、下载并安装JDK四、配置JDK环境变量五、连接openGauss并执行java代 查看详情

opengauss数据库源码解析系列文章——数据安全技术(上)(代码片段)

...理源码解析中“9.6数据安全技术”的相关精彩内容介绍。openGauss采用了多种加密解密技术来提升数据在各个环节的安全性。9.6.1数据加解密接口用户在使用数据库时,除了需要基本的数据库安全之外,还会对导入的数据进... 查看详情

参赛作品101充实opengauss每日一练21天学习完成大总结

作者:秀万学习感受很高心参加这次的openGauss在线实训课程,讲师们非常专业的从课程openGauss的基础到高级功能把openGauss呈现到大家面前,并能过了课后练习的方法让大家及时所学知识,让以后在工作中遇到的问... 查看详情

oracle数据库的导入与导出

文章目录1、oracle数据库导入与导出需要注意2、导出数据格式介绍3、传统方式exp(导出)和(imp)导入3.1命令执行方式3.2命令格式3.3导出数据3.3.1示例3.4导入数据3.4.1导入数据4使用PL/SQLDeveloper实现数据导入与导出4.1导出... 查看详情

猿创征文|使用docker部署opengauss国产数据库(代码片段)

猿创征文|使用Docker部署openGauss国产数据库一、openGauss介绍1.openGauss简介2.openGauss产品定位3.支持的架构和操作系统版本二、检查宿主机环境1.检查系统版本2.检查Docker状态三、下载openGauss镜像1.进入docker官方镜像仓库2.openGauss镜像介... 查看详情

基于expdp,impdp实现oracle数据的导入导出(代码片段)

数据的导入与导出文章目录数据的导入与导出1.EXPDP导出【注意】**导出表**导出模式导出表空间导出全数据库2.IMPDP导入数据导入表导入模式导入表空间导入全数据库数据泵导出使用工具EXPDP将数据库对象的元数据(对象结构)或数... 查看详情

oracle数据的导入导出(两种方法三种方式)

大概了解数据库中数据的导入导出。在oracle中,导入导出数据的方法有两种,一种是使用cmd命令行的形式导入导出数据,另一种是使用PL/SQL工具导入导出数据。1,使用cmd命令行导入导出数据  1.1整库导出    整库导出:ex... 查看详情

一opengauss概述

一、什么是openGaussopenGauss是一款开源的关系型数据库管理系统,它具有多核高性能、全链路安全性、智能运维等企业级特性。openGauss内核早期源自开源数据库PostgreSQL,融合了华为在数据库领域多年的内核经验,在架构、事务、... 查看详情

成批导入导出数据

(六)成批导入导出数据假设已经存在teaching数据库,存在一张Student表,如图:右键teaching->任务->导入数据下一步->数据源(MicrosoftExcel)->文件路径导入表->下一步(选择哪个数据库)下一步->复制一个或多个表或视图的数据下... 查看详情

6-06数据的导入与导出

导入数据:从SQLSever的外部数据源中检索数据,然后将数据插入到SQLSever表中的过程。导出数据:将SQLSever 中的数据导出指定格式的过程。导入数据注意实项:与插入数据的顺序相同,有主外键关系的,先导入主表中的数据,... 查看详情

数据库导入导出

  查看详情

数据库导入导出expdp,impdp(代码片段)

数据库操作(1)数据库导入导出expdp,impdp在导入导出数据库的时候,经常会用到exp和imp,在数据量小的情况下可以随意使用,但是当数据量大,表中数据有百万,千万条的时候,就要等好久好久好久。。oracle官方肯定也考虑到... 查看详情

oracle如何只导出导入索引?

参考技术A一、使用PLSQL导出导入ORACLE数据库:1、打开plsql-->工具----》导出用户对象(可以导出表结构和序列、视图)ps:如果上面不选中"包括所有者",这样到导出的表结构等就不包含所有者,这样就可以将A所有者的表结构... 查看详情

oraclesqldeveploper数据库的导入导出

oraclesqldeveploper数据库的导入导出怎么操作,还有里面的触发器和序列这些要怎么导出呢,好像没有一次性直接导出然后直接可以导入的地方,求大神指点了你好,PL/SQLDeveloper可以导出的,分两种:1、导出对象:工具-》导出用户... 查看详情

navicat导入导出

当我们对mysql数据库进行了误操作,造成某个数据表中的部分数据丢失时,肯定就要利用备份的数据库,对丢失部分的数据进行导出、导入操作了。Navicat工具正好给我们提供了一个数据表的导入导出功能。 1.导出数据表 &... 查看详情