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

openGauss每日一练第14天 加油

原创 秀万 2021-12-20
323

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

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
–以sql文本格式导出backup数据库中对象的定义

gs_dump -f /home/omm/backup_database_define.sql backup -s -F p
–查看导出的数据

more /home/omm/backup_database_all.sql

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

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

课程作业

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(product_id integer,product_name char(30));
CREATE TABLE

tpcc=# insert into schema1.products values
tpcc-# (1,'computer'),
tpcc-# (2,'laptop'),
tpcc-# (3,'phone');
INSERT 0 3

tpcc=# select * from schema1.products;
 product_id |          product_name          
------------+--------------------------------
          1 | computer                      
          2 | laptop                        
          3 | phone                         
(3 rows)

tpcc=# \q
omm@modb:~$ 

复制

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

omm@modb:~$ gs_dump -f /home/omm/backup_database_tpcc_all.sql tpcc -F p
gs_dump[port='5432'][tpcc][2021-12-16 00:25:29]: The total objects number is 389.
gs_dump[port='5432'][tpcc][2021-12-16 00:25:29]: [100.00%] 389 objects have been dumped.
gs_dump[port='5432'][tpcc][2021-12-16 00:25:29]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-16 00:25:29]: total time: 98  ms
omm@modb:~$ cat backup_database_tpcc_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: schema1; Type: SCHEMA; Schema: -; Owner: omm
--

CREATE SCHEMA schema1;


ALTER SCHEMA schema1 OWNER TO omm;

SET search_path = schema1;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: products; Type: TABLE; Schema: schema1; Owner: omm; Tablespace: 
--

CREATE TABLE products (
    product_id integer,
    product_name character(30)
)
WITH (orientation=row, compression=no);


ALTER TABLE schema1.products OWNER TO omm;

--
-- Data for Name: products; Type: TABLE DATA; Schema: schema1; Owner: omm
--

COPY products (product_id, product_name) FROM stdin;
1       computer                      
2       laptop                        
3       phone                         
\.
;

--
-- PostgreSQL database dump complete
--

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


复制

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

omm@modb:~$ gs_dump -f /home/omm/backup_tpcc_schema1_define.sql tpcc -n schema1 -s -F p
gs_dump[port='5432'][tpcc][2021-12-16 00:27:20]: The total objects number is 379.
gs_dump[port='5432'][tpcc][2021-12-16 00:27:20]: [100.00%] 379 objects have been dumped.
gs_dump[port='5432'][tpcc][2021-12-16 00:27:20]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-16 00:27:20]: total time: 187  ms
omm@modb:~$ cat backup_tpcc_schema1_define.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: schema1; Type: SCHEMA; Schema: -; Owner: omm
--

CREATE SCHEMA schema1;


ALTER SCHEMA schema1 OWNER TO omm;

SET search_path = schema1;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: products; Type: TABLE; Schema: schema1; Owner: omm; Tablespace: 
--

CREATE TABLE products (
    product_id integer,
    product_name character(30)
)
WITH (orientation=row, compression=no);


ALTER TABLE schema1.products OWNER TO omm;

--
-- PostgreSQL database dump complete
--


复制

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

omm@modb:~$ gs_dump -f /home/omm/backup_database_tpcc_data.sql tpcc -a -F p
gs_dump[port='5432'][tpcc][2021-12-16 00:29:22]: dump database tpcc successfully
gs_dump[port='5432'][tpcc][2021-12-16 00:29:22]: total time: 80  ms
omm@modb:~$ cat backup_database_tpcc_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 = schema1;

--
-- Data for Name: products; Type: TABLE DATA; Schema: schema1; Owner: omm
--

COPY products (product_id, product_name) FROM stdin;
1       computer                      
2       laptop                        
3       phone                         
\.
;

--
-- PostgreSQL database dump complete
--

复制

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

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=# \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=# drop table schema1.products;
DROP TABLE
tpcc=# drop schema schema1;
DROP SCHEMA
tpcc=# \c postgres
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "postgres" as user "omm".
postgres=# drop database tpcc;
DROP DATABASE
postgres=# \q
omm@modb:~$ 


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

评论

天成
关注
暂无图片
获得了11次点赞
暂无图片
内容获得6次评论
暂无图片
获得了15次收藏
目录
  • 1.准备数据
  • 2.导出数据库
  • 3.导出模式
  • 4.导出表
  • 课程作业
    • 1.创建数据库tpcc,在数据库tpcc中创建模式schema1,在模式schema1中建表products
    • 2.使用gs_dump工具以文本格式导出数据库tpcc的全量数据
    • 3.使用gs_dump工具以文本格式导出模式schema1的定义
    • 4.使用gs_dump工具以文本格式导出数据库tpcc的数据,不包含定义
    • 5.删除表、模式和数据库