0.导出数据方案
1️⃣ gs_dump
gs_dump --help
-f, --file=FILENAME output file or directory name
-F, --format=c|d|t|p output file format (custom, directory, tar,plain text (default))
-a, --data-only dump only the data, not the schema
-n, --schema=SCHEMA dump the named schema(s) only
-s, --schema-only dump only the schema, no data
-t, --table=TABLE dump the named table(s) only
导出文件格式 -F, --format=c|d|t|p
output file format (custom, directory, tar,plain text (default))
2️⃣
COPY适用场景:小数据量表以文本数据作为来源导入;小数量表的导出;查询结果集导出。
gsql工具提供了元命令\copy:读取/写入的文件是本地文件,而非数据库服务器端文件;因此要操作的文件的可访问性、权限等,都是受限于本地用户的权限。
gs_dump工具:导出某个数据库级的内容,包含数据库的数据和所有对象定义
gs_dumpall工具:导出所有数据库的全量信息,包含openGauss中每个数据库信息和公共的全局对象信息。
1.创建数据库tpcc,在数据库tpcc中创建模式schema1,在模式schema1中建表products
create database tpcc;
\c tpcc
CREATE SCHEMA schema1;
create table schema1.products(id int, name char(30));
insert into schema1.products values(1 ,'xxxx');
2.使用gs_dump工具以文本格式导出数据库tpcc的全量数据
gs_dump -f /home/omm/tpcc_database_all.sql tpcc -F p
more /home/omm/tpcc_database_all.sql
3.使用gs_dump工具以文本格式导出模式schema1的定义
gs_dump -f /home/omm/tpcc_schema1_define.sql tpcc -n schema1 -s -F p
more /home/omm/tpcc_schema1_define.sql
4.使用gs_dump工具以文本格式导出数据库tpcc的数据,不包含定义
gs_dump -f /home/omm/tpcc_database_data.sql tpcc -a -F p
more /home/omm/tpcc_database_all.sql
5.删除表、模式和数据库
gsql -r
\c tpcc
drop table schema1.products;
drop schema schema1;
drop database tpcc; --报错
\c omm
drop database tpcc;