当前位置:网站首页>Greenplum6.x常用语句
Greenplum6.x常用语句
2022-07-07 06:01:00 【xcSpark】
一.创建目录
root用户登录四台服务器,每台都执行下面操作
[[email protected] tmp]# mkdir -p /datax/tbs_tmp
[[email protected] tmp]# mkdir -p /datax/tbs_tmp2
# 赋权限
[[email protected] tmp]# chown gpadmin:gpadmin /datax/*
二.创建库
gpadmin用户登录master机器
[[email protected] ~]$ psql -d postgres
psql (9.4.24)
Type "help" for help.
postgres=# create database gpdb encoding='UTF8';
CREATE DATABA
gpdb=# SELECT datname from pg_database;
datname
-----------
template1
template0
postgres
gpperfmon
gpdb
(5 rows)
postgres=# \q
三. 表空间
gpadmin用户登录master机器
每个 Greenplum 数据库系统都有以下默认表空间。
pg_global用于共享系统目录。
pg_default,默认表空间。由template1和template0数据库使用。这些表空间使用默认系统位置,即系统初始化时创建的数据目录位置。
要查看表空间信息,请使用pg_tablespace目录表获取表空间的对象 ID(OID),然后使用gp_tablespace_location()函数显示表空间目录。这是一个列出一个用户定义表空间的示例myspace:
[[email protected] tmp]# su - gpadmin
# 进入gpdb库
[[email protected] ~]$ psql -d gpdb
psql (9.4.24)
Type "help" for help.
# 创建表空间
gpdb=# create tablespace tbs_tmp location '/datax/tbs_tmp';
CREATE TABLESPACE
gpdb=# create tablespace tbs_tmp2 location '/datax/tbs_tmp2';
CREATE TABLESPACE
gpdb=#
########################## 查看表空间 #####################
gpdb=# SELECT oid, * FROM pg_tablespace ;
oid | spcname | spcowner | spcacl | spcoptions
-------+------------+----------+-------------------------------------+------------
1663 | pg_default | 10 | |
1664 | pg_global | 10 | |
16658 | tbs_tmp2 | 10 | |
16657 | tbs_tmp | 10 | {
gpadmin=C/gpadmin,guser=C/gpadmin} |
(4 rows)
#表空间的 OID myspace是16657 . 运行gp_tablespace_location()以显示由两个段实例和主实例组成的系统的表空间位置
gpdb=# SELECT * FROM gp_tablespace_location(16657);
gp_segment_id | tblspc_loc
---------------+----------------
0 | /datax/tbs_tmp
7 | /datax/tbs_tmp
2 | /datax/tbs_tmp
4 | /datax/tbs_tmp
1 | /datax/tbs_tmp
6 | /datax/tbs_tmp
5 | /datax/tbs_tmp
3 | /datax/tbs_tmp
-1 | /datax/tbs_tmp
(9 rows)
gpdb=#
#此查询使用gp_tablespace_location()目录gp_segment_configuration表来显示段实例信息以及myspace表空间的文件系统位置。
gpdb=# WITH spc AS (SELECT * FROM gp_tablespace_location(16657)) SELECT seg.role, spc.gp_segment_id as seg_id, seg.hostname, seg.datadir, tblspc_loc FROM spc, gp_segment_configuration AS seg WHERE spc.gp_segment_id = seg.content ORDER BY seg_id;
role | seg_id | hostname | datadir | tblspc_loc
------+--------+----------+-----------------------+----------------
p | -1 | mdw | /datax/master/gpseg-1 | /datax/tbs_tmp
m | -1 | smdw | /datax/master/gpseg-1 | /datax/tbs_tmp
p | 0 | sdw1 | /datax/primary/gpseg0 | /datax/tbs_tmp
m | 0 | sdw2 | /datax/mirror/gpseg0 | /datax/tbs_tmp
m | 1 | sdw2 | /datax/mirror/gpseg1 | /datax/tbs_tmp
p | 1 | sdw1 | /datax/primary/gpseg1 | /datax/tbs_tmp
m | 2 | sdw2 | /datax/mirror/gpseg2 | /datax/tbs_tmp
p | 2 | sdw1 | /datax/primary/gpseg2 | /datax/tbs_tmp
p | 3 | sdw1 | /datax/primary/gpseg3 | /datax/tbs_tmp
m | 3 | sdw2 | /datax/mirror/gpseg3 | /datax/tbs_tmp
m | 4 | sdw1 | /datax/mirror/gpseg4 | /datax/tbs_tmp
p | 4 | sdw2 | /datax/primary/gpseg4 | /datax/tbs_tmp
p | 5 | sdw2 | /datax/primary/gpseg5 | /datax/tbs_tmp
m | 5 | sdw1 | /datax/mirror/gpseg5 | /datax/tbs_tmp
m | 6 | sdw1 | /datax/mirror/gpseg6 | /datax/tbs_tmp
p | 6 | sdw2 | /datax/primary/gpseg6 | /datax/tbs_tmp
m | 7 | sdw1 | /datax/mirror/gpseg7 | /datax/tbs_tmp
p | 7 | sdw2 | /datax/primary/gpseg7 | /datax/tbs_tmp
(18 rows)
gpdb=#
指定表空间
SET default_tablespace = tbs_tmp;
CREATE TABLE foo(i int);
gpdb=# SET default_tablespace = tbs_tmp;
SET
gpdb=# CREATE TABLE foo(i int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'i' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
gpdb=#
删除表空间
注意:如果表空间不为空或者存储临时文件或事务文件,则不能删除表空间。
表空间所有者或超级用户有权限删除表空间。在删除所有使用该表空间的数据库中的所有对象之前,您不能删除该表空间。
DROP TABLESPACE xxx
四. 创建和管理模式schema
创建schema
gpdb=# create schema tmp_schema;
CREATE SCHEMA
要在模式中创建或访问对象,请编写由模式名称和表名组成的限定名称,并用句点分隔。例如
myschema.table
例如,您可以创建其他人拥有的模式,以将用户的活动限制在明确定义的名称空间中
CREATE SCHEMA
schemanameAUTHORIZATIONusername;
五. 用户角色
用户级角色被认为是可以登录数据库并发起数据库会话的数据库角色。因此,当您使用该命令创建新的用户级角色时CREATE ROLE,您必须指定LOGIN权限。例如:
CREATE ROLE jsmith WITH LOGIN;
创建角色
# guser无登录权限
gpdb=# create ROLE guser password 'guser';
NOTICE: resource queue required -- using default resource queue "pg_default"
CREATE ROLE
gpdb=# grant all on database gpdb to guser;
GRANT
# 有登录权限
gpdb=# create ROLE guser2 WITH LOGIN password 'guser2';
NOTICE: resource queue required -- using default resource queue "pg_default"
CREATE ROLE
gpdb=#
修改权限
ALTER ROLE
usernameWITH PASSWORD ‘passwd123’;
ALTER ROLE admin VALID UNTIL ‘infinity’;
ALTER ROLEusernameLOGIN;
ALTER ROLEusernameRESOURCE QUEUE que1;
ALTER ROLEusernameDENY DAY ‘Sunday’;
角色成员
将用户分组在一起以简化对象权限的管理通常很方便:这样,可以将权限授予或撤消整个组。
CREATE ROLE admin CREATEROLE CREATEDB;
GRANT组角色存在后,您可以使用andREVOKE命令添加和删除成员(用户角色)
GRANT admin TO user1, user2;
REVOKE admin FROM user3;
为了管理对象权限,您将只向组级角色授予适当的权限,然后成员用户角色继承组角色的对象权限。
GRANT ALL ON TABLE mytable TO admin;
GRANT ALL ON SCHEMA myschema TO admin;
GRANT ALL ON DATABASE mydb TO admin;
注意:角色属性LOGIN, SUPERUSER, CREATEDB, CREATEROLE,CREATEEXTTABLE和RESOURCE QUEUE永远不会像数据库对象的普通权限那样被继承。
用户成员实际上必须SET ROLE具有这些属性之一的特定角色才能使用该属性
SET ROLE admin;
例如
gpdb=# ALTER ROLE guser2 SUPERUSER LOGIN CREATEDB;
ALTER ROLE
gpdb=#
六. 赋权限
# 赋表空间权限给guser
gpdb=# GRANT CREATE ON TABLESPACE tbs_tmp TO guser;
GRANT
七. 创建表
CREATE TABLE foo(i int) TABLESPACE tbs_tmp;
八. 远程登录
修改文件
[[email protected] ~]$ vi /datax/master/gpseg-1/pg_hba.conf
# 增加内容
host all guser2 0.0.0.0/0 trust
使得配置生效
[[email protected] ~]$ gpstop -u
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Starting gpstop with args: -u
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Gathering information and validating the environment...
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 6.18.2 build commit:1242aadf0137d3b26ee42c80e579e78bd7a805c7'
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Signalling all postmaster processes to reload
.
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:-Some segment postmasters were not reloaded
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:- Host Datadir Port Status
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:- smdw /datax/master/gpseg-1 5432 u
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
[[email protected] ~]$
登录无效
重新执行如下无效
[[email protected] ~]$ pg_ctl reload -D /datax/master/gpseg-1/
server signaled
[[email protected] ~]$
usage:使用表空间存储数据库对象
#具有表空间权限的用户CREATE可以在该表空间中创建数据库对象,例如表、索引和数据库
# 格式:CREATE TABLE tablename(options) TABLESPACE spacename;
#在表空间space1中创建一个表
CREATE TABLE foo(i int) TABLESPACE tbs_tmp;
#您还可以使用该参数为不指定表空间的命令default_tablespace指定默认表空间:CREATE TABLECREATE INDEX
SET default_tablespace = space1;
CREATE TABLE foo(i int);
测试数据
gpadmin用户
[[email protected] ~]$ psql -d gpdb
psql (9.4.24)
Type "help" for help.
gpdb=# SET default_tablespace = tbs_tmp;
SET
gpdb=# CREATE TABLE foo(i int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'i' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
gpdb=#
# 插入16条数据
gpdb=# insert into foo values(100000);
INSERT 0
增加数据
gpdb=# select count(*) from foo;
count
---------
4854608
(1 row)
初始数据foo表16条, foo2为0条。
insert数据量如下
大小变化


master节点有tbs_tmp目录
sdw2的gpseg0
最终的大小比较
状态
边栏推荐
- Snyk dependency security vulnerability scanning tool
- Virtual address space
- 如何在HarmonyOS应用中集成App Linking服务
- Rainbow 5.7.1 supports docking with multiple public clouds and clusters for abnormal alarms
- PVTV2--Pyramid Vision TransformerV2学习笔记
- 21 general principles of wiring in circuit board design_ Provided by Chengdu circuit board design
- Opencv learning notes 1 -- several methods of reading images
- Tips for using jeditabletable
- National SMS center number inquiry
- Opencv learning note 5 - gradient calculation / edge detection
猜你喜欢

Practice of implementing cloud native Devops based on rainbow library app

如何在HarmonyOS应用中集成App Linking服务

Data type - floating point (C language)

Xcit learning notes
![[Yu Yue education] higher vocational English reference materials of Nanjing Polytechnic University](/img/e2/519a5267cd5425a83434d2da65ebe6.jpg)
[Yu Yue education] higher vocational English reference materials of Nanjing Polytechnic University

In go language, function is a type

23 Chengdu instrument customization undertaking_ Discussion on automatic wiring method of PCB in Protel DXP

Give full play to the wide practicality of maker education space

Are you holding back on the publicity of the salary system for it posts such as testing, development, operation and maintenance?

Count sort (diagram)
随机推荐
redis故障处理 “Can‘t save in background: fork: Cannot allocate memory“
AVL平衡二叉搜索树
登山小分队(dfs)
Teach you how to select PCB board by hand (II)
Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
Implement your own dataset using bisenet
opencv之图像分割
Exercise arrangement 2.10, 11
One click installation of highly available Nacos clusters in rainbow
23 Chengdu instrument customization undertaking_ Discussion on automatic wiring method of PCB in Protel DXP
Obsidan之数学公式的输入
Calling the creation engine interface of Huawei game multimedia service returns error code 1002, error message: the params is error
Rainbow combines neuvector to practice container safety management
2 - 3 arbre de recherche
Openvscode cloud ide joins rainbow integrated development system
Opencv learning notes 1 -- several methods of reading images
ES6_ Arrow function
Installation and configuration of PLSQL
Upload an e-office V9 arbitrary file [vulnerability recurrence practice]
21 general principles of wiring in circuit board design_ Provided by Chengdu circuit board design