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

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

原创 lqkitten 2021-12-14
452

学习目标

学习openGauss导出数据

课程学习
连接数据库

#第一次进入等待15秒
#数据库启动中…

su - omm
gsql -r

1.准备数据
–数据存放在backup数据库中

omm=# create database backup;
CREATE DATABASE
omm=# \c backup
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "backup" as user "omm".
backup=# CREATE SCHEMA ds;
CREATE SCHEMA
backup=# create table ds.t1(id int, name char(30));
CREATE TABLE
backup=# insert into ds.t1 values(1 ,'xxxx');
INSERT 0 1
backup=# backup-# CREATE TABLE customer_t
(  c_customer_sk             integer,   
backup(#   c_customer_id             char(5),    
backup(#   c_first_name              char(6),    
backup(#   c_last_name               char(8) 
backup(# ) ;
CREATE TABLE
backup=# INSERT INTO customer_t VALUES    
backup-# backup-# (6885, 1, 'Joes', 'Hunter'),    
(4321, 2, 'Lily','Carter'),    
backup-# (9527, 3, 'James', 'Cook'),
backup-# (9500, 4, 'Lucy', 'Baker');
INSERT 0 4

–退出数据库连接

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

omm@modb:~$ gs_dump -f /home/omm/backup_database_all.sql backup -F p
gs_dump[port='5432'][backup][2021-12-14 10:00:01]: The total objects number is 391.
gs_dump[port='5432'][backup][2021-12-14 10:00:01]: [100.00%] 391 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-14 10:00:01]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:00:01]: total time: 107  ms

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


omm@modb:~$ gs_dump -f /home/omm/backup_database_data.sql backup -a -F p
gs_dump[port='5432'][backup][2021-12-14 10:01:00]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:01:00]: total time: 82  ms 

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

omm@modb:~$ gs_dump -f /home/omm/backup_database_define.sql backup -s -F p
gs_dump[port='5432'][backup][2021-12-14 10:01:41]: The total objects number is 389.
gs_dump[port='5432'][backup][2021-12-14 10:01:41]: [100.00%] 389 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-14 10:01:41]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:01:41]: total time: 190  ms

–查看导出的数据


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 = '';
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;

--
-- Name: customer_t; Type: TABLE; Schema: public; Owner: omm; Tablespace: 
--

CREATE TABLE customer_t (
    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
--

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

omm@modb:~$ gs_dump -f /home/omm/backup_schema_all.sql backup -n ds -F p
gs_dump[port='5432'][backup][2021-12-14 10:03:29]: The total objects number is 380.
gs_dump[port='5432'][backup][2021-12-14 10:03:29]: [100.00%] 380 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-14 10:03:29]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:03:29]: total time: 89  ms

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

omm@modb:~$ gs_dump -f /home/omm/backup_schema_data.sql backup -n ds -a -F p
gs_dump[port='5432'][backup][2021-12-14 10:04:11]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:04:11]: total time: 79  ms

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

omm@modb:~$ gs_dump -f /home/omm/backup_schema_define.sql backup -n ds -s -F p
gs_dump[port='5432'][backup][2021-12-14 10:04:43]: The total objects number is 379.
gs_dump[port='5432'][backup][2021-12-14 10:04:43]: [100.00%] 379 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-14 10:04:43]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:04:43]: total time: 184  ms

–查看导出的数据


omm@modb:~$ more /home/omm/backup_schema_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
--

ALTER SCHEMA ds OWNER TO omm;

SET search_path = ds;

SET default_tablespace = '';

CREATE SCHEMA ds;

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

omm@modb:~$ gs_dump -f /home/omm/backup_table_all.sql backup -t customer_t -F p
gs_dump[port='5432'][backup][2021-12-14 10:05:41]: The total objects number is 379.
gs_dump[port='5432'][backup][2021-12-14 10:05:41]: [100.00%] 379 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-14 10:05:41]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:05:41]: total time: 73  ms

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

omm@modb:~$ gs_dump -f /home/omm/backup_table_data.sql backup -t customer_t -a -F p 
gs_dump[port='5432'][backup][2021-12-14 10:09:22]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:09:22]: total time: 66  ms

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

omm@modb:~$ gs_dump -f /home/omm/backup_table_define.sql backup -t customer_t -s -F p 
gs_dump[port='5432'][backup][2021-12-14 10:10:08]: The total objects number is 378.
gs_dump[port='5432'][backup][2021-12-14 10:10:08]: [100.00%] 378 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-14 10:10:08]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-14 10:10:08]: total time: 169  ms

–查看导出的数据


more /home/omm/backup_table_all.sql

课程作业

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

omm=# create database tpcc;
CREATE DATABASE
omm=# \c tpcc
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "tpcc" as user "omm".
tpcc=# create schema schema1;
CREATE SCHEMA
tpcc=# create table schema1.products(id int,name char(10));
CREATE TABLE
tpcc=# insert into schema1.products values (1,'2223'),(2,'port');
INSERT 0 2
tpcc=# \q

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

omm@modb:~$ gs_dump -f /home/omm/tpcc.sql tpcc -F p 
gs_dump[port='5432'][tpcc][2021-12-14 10:15:06]: The total objects number is 389.
gs_dump[port='5432'][tpcc][2021-12-14 10:15:06]: [100.00%] 389 objects have been dumped.
gs_dump[port='5432'][tpcc][2021-12-14 10:15:06]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-14 10:15:06]: total time: 98  ms

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

omm@modb:~$ gs_dump -f /home/omm/tpcc.sql tpcc -F p -s
gs_dump[port='5432'][tpcc][2021-12-14 10:15:53]: The total objects number is 388.
gs_dump[port='5432'][tpcc][2021-12-14 10:15:53]: [100.00%] 388 objects have been dumped.
gs_dump[port='5432'][tpcc][2021-12-14 10:15:53]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-14 10:15:53]: total time: 188  ms

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

omm@modb:~$ gs_dump -f /home/omm/tpcc.sql tpcc -F p -a
gs_dump[port='5432'][tpcc][2021-12-14 10:16:49]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-14 10:16:49]: total time: 79  ms

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


omm@modb:~$ gsql -d tpcc -c "drop table schema1.products;"
DROP TABLE
omm@modb:~$ gsql -d tpcc -c "drop schema schema1;"
DROP SCHEMA
omm@modb:~$ gsql -c "drop database tpcc;"
DROP DATABASE
omm@modb:~$ gsql -d backup -c "drop schema ds cascade;"
NOTICE:  drop cascades to table ds.t1
DROP SCHEMA
omm@modb:~$ gsql -c "drop database backup;"
DROP DATABASE
omm@modb:~$ gsql -r
gsql ((openGauss 2.0.0 build 78689da9) compiled at 2021-03-31 21:03:52 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

omm=# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges 
-----------+-------+----------+-------------+-------------+-------------------
 omm       | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 template1 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
(4 rows)

omm=# \q

数据库tpcc ,backup已删除

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

评论