当前位置:网站首页>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
最终的大小比较
状态
边栏推荐
- 【微信小程序:缓存操作】
- 数据库存储---表分区
- In go language, function is a type
- Other 7 features of TCP [sliding window mechanism ▲]
- 【踩坑】nacos注册一直连接localhost:8848,no available server
- Installation and configuration of PLSQL
- 南京商品房买卖启用电子合同,君子签助力房屋交易在线网签备案
- Through the "last mile" of legal services for the masses, fangzheng Puhua labor and personnel law self-service consulting service platform has been frequently "praised"
- Go语言中,函数是一种类型
- MySQL introduction - crud Foundation (establishment of the prototype of the idea of adding, deleting, changing and searching)
猜你喜欢

登山小分队(dfs)

iptables 之 state模块(ftp服务练习)

A single game with goods increased by 100000, and the rural anchor sold men's clothes on top of the list?

Opencv learning note 3 - image smoothing / denoising

数据分片介绍

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

一种适用于应用频繁测试下快速查看Pod的日志的方法(grep awk xargs kuberctl)

Input and output of floating point data (C language)

调用华为游戏多媒体服务的创建引擎接口返回错误码1002,错误信息:the params is error

The field value in Splunk subquery fuzzy matching CSV is*
随机推荐
ES6_ Arrow function
Several ways of lambda used in functions in kotlin (higher-order functions)
Using nocalhost to develop microservice application on rainbow
Tronapi-波场接口-源码无加密-可二开--附接口文档-基于ThinkPHP5封装-作者详细指导-2022年7月6日-新手快速上手-可无缝升级tp6版本
Leetcode 1984. Minimum difference in student scores
Virtual address space
对API接口或H5接口做签名认证
Ebpf cilium practice (1) - team based network isolation
Input and output of floating point data (C language)
23 Chengdu instrument customization undertaking_ Discussion on automatic wiring method of PCB in Protel DXP
Splunk query CSV lookup table data dynamic query
2-3查找樹
Data type - integer (C language)
Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
Redis summary
XCiT学习笔记
Practice of combining rook CEPH and rainbow, a cloud native storage solution
In go language, function is a type
GOLand idea intellij 无法输入汉字
基本数据类型和string类型互相转化