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

openGauss每日一练第14天|学习心得

原创 Alex 2021-12-16
213

学习gs_dump导出数据,开始操作!

0.登录数据库环境

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.


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=# CREATE TABLE customer_t
backup-# backup(# ( c_customer_sk integer,
backup(# c_customer_id char(5),
c_first_name char(6),
backup(# c_last_name char(8)
backup(# ) ;
CREATE TABLE

backup-# INSERT INTO customer_t VALUES
(6885, 1, 'Joes', 'Hunter'),
backup-# (4321, 2, 'Lily','Carter'),
backup-# backup-# (9527, 3, 'James', 'Cook'),
(9500, 4, 'Lucy', 'Baker');
INSERT 0 4
backup=#
backup=#
backup=# \q

2.导出数据库
omm@modb:~$ gs_dump -f /home/omm/backup_database_all.sql backup -F p
gs_dump[port='5432'][backup][2021-12-16 14:47:42]: The total objects number is 391.
gs_dump[port='5432'][backup][2021-12-16 14:47:42]: [100.00%] 391 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-16 14:47:42]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:47:42]: total time: 113 ms
omm@modb:~$ gs_dump -f /home/omm/backup_database_data.sql backup -a -F p
gs_dump[port='5432'][backup][2021-12-16 14:47:49]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:47:49]: total time: 91 ms
omm@modb:~$ gs_dump -f /home/omm/backup_database_define.sql backup -s -F p
gs_dump[port='5432'][backup][2021-12-16 14:47:55]: The total objects number is 389.
gs_dump[port='5432'][backup][2021-12-16 14:47:55]: [100.00%] 389 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-16 14:47:55]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:47:55]: total time: 214 ms

查看数据如下

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 (
--More--(44%)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;

c_customer_sk integer,
c_customer_id character(5),
c_first_name character(6),
c_last_name character(8)
)
--
-- 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
--
omm@modb:~$

3.导出模式
omm@modb:~$ gs_dump -f /home/omm/backup_schema_all.sql backup -n ds -F p
gs_dump[port='5432'][backup][2021-12-16 14:48:35]: The total objects number is 380.
gs_dump[port='5432'][backup][2021-12-16 14:48:35]: [100.00%] 380 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-16 14:48:35]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:48:35]: total time: 98 ms
omm@modb:~$ gs_dump -f /home/omm/backup_schema_data.sql backup -n ds -a -F p
gs_dump[port='5432'][backup][2021-12-16 14:48:38]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:48:38]: total time: 87 ms
omm@modb:~$ gs_dump -f /home/omm/backup_schema_define.sql backup -n ds -s -F p
gs_dump[port='5432'][backup][2021-12-16 14:48:46]: The total objects number is 379.
gs_dump[port='5432'][backup][2021-12-16 14:48:46]: [100.00%] 379 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-16 14:48:46]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:48:46]: total time: 206 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
--

CREATE SCHEMA ds;


ALTER SCHEMA ds OWNER TO omm;

SET search_path = ds;

SET default_tablespace = '';

SET default_with_oids = false;
--More--(51%)-- Data for Name: t1; Type: TABLE DATA; Schema: ds; Owner: omm
--

COPY t1 (id, name) FROM stdin;
1 xxxx
\.
;


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

--
--
-- PostgreSQL database dump complete
--

omm@modb:~$


4.导出表
omm@modb:~$ gs_dump -f /home/omm/backup_table_all.sql backup -t customer_t -F p
gs_dump[port='5432'][backup][2021-12-16 14:49:30]: The total objects number is 379.
gs_dump[port='5432'][backup][2021-12-16 14:49:30]: [100.00%] 379 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-16 14:49:30]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:49:30]: total time: 81 ms

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-16 14:49:34]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:49:34]: total time: 73 ms

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-16 14:49:38]: The total objects number is 378.
gs_dump[port='5432'][backup][2021-12-16 14:49:39]: [100.00%] 378 objects have been dumped.
gs_dump[port='5432'][backup][2021-12-16 14:49:39]: dump database backup successfully
gs_dump[port='5432'][backup][2021-12-16 14:49:39]: total time: 191 ms
omm@modb:~$ 


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

SET search_path = public;

SET default_tablespace = '';

CREATE TABLE customer_t (
c_customer_sk integer,
--More--(47%)SET default_with_oids = false;

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

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;

--
-- 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
--

omm@modb:~$


作业
1.创建数据库tpcc,在数据库tpcc中创建模式schema1,在模式schema1中建表products
omm=# create database tpcc;
CREATE DATABASE
omm=# \c tpcc
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 alex;
CREATE SCHEMA

tpcc=# create table alex.products(id int, name char(30));
CREATE TABLE

tpcc=# insert into alex.products values(1 ,'xxxx');
INSERT 0 1

2.使用gs_dump工具以文本格式导出数据库tpcc的全量数据
tpcc-# \q
omm@modb:~$ gs_dump -f /home/omm/tpcc_database_all.sql tpcc -F p
gs_dump[port='5432'][tpcc][2021-12-16 15:07:18]: The total objects number is 389.
gs_dump[port='5432'][tpcc][2021-12-16 15:07:18]: [100.00%] 389 objects have been dumped.
gs_dump[port='5432'][tpcc][2021-12-16 15:07:18]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-16 15:07:18]: total time: 108 ms
omm@modb:~$

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

omm@modb:~$ gs_dump -f /home/omm/backup_schema_all.sql tpcc -n alex -F p
gs_dump[port='5432'][tpcc][2021-12-16 15:09:06]: The total objects number is 380.
gs_dump[port='5432'][tpcc][2021-12-16 15:09:06]: [100.00%] 380 objects have been dumped.
gs_dump[port='5432'][tpcc][2021-12-16 15:09:06]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-16 15:09:06]: total time: 96 ms

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

omm@modb:~$ gs_dump -f /home/omm/tpcc_database_data.sql tpcc -a -F p
gs_dump[port='5432'][tpcc][2021-12-16 15:11:02]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-16 15:11:02]: total time: 89 ms
omm@modb:~$

5.删除表、模式和数据库
omm=# drop table products;
DROP TABLE
omm=# drop schema alex;
ERROR: schema "alex" does not exist
omm=# drop schema schema1;
ERROR: schema "schema1" does not exist
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=# drop schema alex;
ERROR: cannot drop schema alex because other objects depend on it
DETAIL: table alex.products depends on schema alex
HINT: Use DROP ... CASCADE to drop the dependent objects too.
tpcc=# drop schema alex cascade;
NOTICE: drop cascades to table alex.products
tpcc=# DROP SCHEMA

tpcc=#
tpcc=# \c omm
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "omm" as user "omm".
omm=# drop database tpcc;
DROP DATABASE
omm=#


最后,作业的操作基本上跟练习题 一样,不会的,多看看练习上的操作!



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

评论