学习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数据库的修改不会被导出。




