暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第14天 | 数据导出

原创 pysql 2021-12-14
1150

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

作业打卡:


1.创建数据库tpcc,在数据库tpcc中创建模式schema1,在模式schema1中建表products





2.使用gs_dump工具以文本格式导出数据库tpcc的全量数据


3.使用gs_dump工具以文本格式导出模式schema1的定义



4.使用gs_dump工具以文本格式导出数据库tpcc的数据,不包含定义




5.删除表、模式和数据库




##################################################

实训练习

##################################################

1.1 准备数据

 

–数据存放在backup数据库中

 

create database backup;

\c backup

 

CREATE SCHEMA ds;

 


 

create table ds.t1(id int, name char(30));

insert into ds.t1 values(1 ,'xxxx');

 

 

CREATE TABLE customer_t

(  c_customer_sk             integer,   

  c_customer_id             char(5),    

  c_first_name              char(6),    

  c_last_name               char(8)

) ;

 

 

INSERT INTO customer_t VALUES    

(6885, 1, 'Joes', 'Hunter'),    

(4321, 2, 'Lily','Carter'),    

(9527, 3, 'James', 'Cook'),

(9500, 4, 'Lucy', 'Baker');

 


 

–退出数据库连接

\q

 

 

 

一.1.2 导出数据库

–以sql文本格式导出backup数据库全量信息

gs_dump -f /home/omm/backup_database_all.sql backup -F p

 


 

 

 

–以sql文本格式导出backup数据库中的数据,不包含数据库对象定义

gs_dump -f /home/omm/backup_database_data.sql backup -a -F p

 

 


 

omm@modb:~$ more /home/omm/backup_database_data.sql

--

-- PostgreSQL database dump

--

 

SET statement_timeout = 0;

SET xmloption = content;

SET client_encoding = 'UTF8';

SET standard_conforming_strings = on;

SET check_function_bodies = false;

SET client_min_messages = warning;

 

SET search_path = ds;

 

--

;

 

SET search_path = public;

--More--(55%)-- Data for Name: t1; Type: TABLE DATA; Schema: ds; Owner: omm

--

 

COPY t1 (id, name) FROM stdin;

1       xxxx                          

\.

 

--

-- Data for Name: customer_t; Type: TABLE DATA; Schema: public; Owner: omm

--

 

COPY customer_t (c_customer_sk, c_customer_id, c_first_name, c_last_name) FROM stdin;

6885    1       Joes    Hunter  

4321    2       Lily    Carter  

9527    3       James   Cook    

9500    4       Lucy    Baker   

\.

;

 

--

-- PostgreSQL database dump complete

--

 

 

–以sql文本格式导出backup数据库中对象的定义

gs_dump -f /home/omm/backup_database_define.sql backup -s -F p


 

–查看导出的数据

more /home/omm/backup_database_all.sql

 

omm@modb:~$ more /home/omm/backup_database_all.sql

--

-- PostgreSQL database dump

--

 

SET statement_timeout = 0;

SET xmloption = content;

SET client_encoding = 'UTF8';

SET standard_conforming_strings = on;

SET check_function_bodies = false;

SET client_min_messages = warning;

 

--

-- Name: ds; Type: SCHEMA; Schema: -; Owner: omm

--

 

CREATE SCHEMA ds;

 

 

ALTER SCHEMA ds OWNER TO omm;

 

SET search_path = ds;

 

SET default_tablespace = '';

--More--(22%)-- Name: customer_t; Type: TABLE; Schema: public; Owner: omm; Tablespace:

--

 

CREATE TABLE customer_t (

 

SET default_with_oids = false;

 

--

-- Name: t1; Type: TABLE; Schema: ds; Owner: omm; Tablespace:

--

 

CREATE TABLE t1 (

    id integer,

    name character(30)

)

WITH (orientation=row, compression=no);

 

 

ALTER TABLE ds.t1 OWNER TO omm;

 

SET search_path = public;

 

--

    c_customer_sk integer,

    c_customer_id character(5),

    c_first_name character(6),

    c_last_name character(8)

)

WITH (orientation=row, compression=no);

 

 

ALTER TABLE public.customer_t OWNER TO omm;

 

SET search_path = ds;

 

--

-- Data for Name: t1; Type: TABLE DATA; Schema: ds; Owner: omm

--

 

COPY t1 (id, name) FROM stdin;

1       xxxx                          

\.

;

 

SET search_path = public;

 

--

-- Data for Name: customer_t; Type: TABLE DATA; Schema: public; Owner: omm

--

 

COPY customer_t (c_customer_sk, c_customer_id, c_first_name, c_last_name) FROM stdin;

6885    1       Joes    Hunter  

4321    2       Lily    Carter  

9527    3       James   Cook    

9500    4       Lucy    Baker   

\.

;

 

--

-- Name: public; Type: ACL; Schema: -; Owner: omm

--

 

REVOKE ALL ON SCHEMA public FROM PUBLIC;

REVOKE ALL ON SCHEMA public FROM omm;

GRANT CREATE,USAGE ON SCHEMA public TO omm;

GRANT USAGE ON SCHEMA public TO PUBLIC;

 

 

--

-- PostgreSQL database dump complete

--

 

 

一.1.3 导出模式

–以sql文本格式导出backup数据库中ds模式的全量信息

gs_dump -f /home/omm/backup_schema_all.sql backup -n ds -F p

 


 

 

–以sql文本格式导出backup数据库中ds模式的数据

gs_dump -f /home/omm/backup_schema_data.sql backup -n ds -a -F p

 


 

 

–以sql文本格式导出backup数据库中ds模式的定义

gs_dump -f /home/omm/backup_schema_define.sql backup -n ds -s -F p


 

 

–查看导出的数据

more /home/omm/backup_schema_all.sql

 


 

1.4 导出表

 

–以sql文本格式导出backup数据库中表customer_t的全量信息

gs_dump -f /home/omm/backup_table_all.sql backup -t customer_t -F p

 


 

 

–以sql文本格式导出backup数据库中表customer_t的数据

gs_dump -f /home/omm/backup_table_data.sql backup -t customer_t -a -F p

 


 

–以sql文本格式导出backup数据库中表customer_t的定义

gs_dump -f /home/omm/backup_table_define.sql backup -t customer_t -s -F p

 


 

–查看导出的数据

more /home/omm/backup_table_all.sql


gs_dump和gs_dumpall通过对导出的数据文件加密,导入时对加密的数据文件进行解密,可以防止数据信息泄露,为数据库的安全提供保证。注意,使用gs_dump加密的纯文本格式文件,如果导出的数据库中包含存储过程,不支持使用gsql命令恢复文件,请使用另外三种模式导出数据库,并使用gs_restore恢复。

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

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

 

最后修改时间:2021-12-19 09:43:41
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论