ユーザーを作成するには、Greenplumはデータベース、ファイル・スペース、表スペース、データベース

以前の記事では、インストールGreenplumはデータベース、起動、シャットダウン、ステータスチェック、ログや他の操作を説明し、データベースが作成されている、データベースを使用する方法について説明します。慣例により、我々はテストユーザー、テーブルスペース、データベースを作成する必要があります。テストユーザーdbdreamを作成します。

1 postgres=# create role dbdream password 'dbdream' createdb login;
2 NOTICE:  resource queue required -- using default resource queue "pg_default"
3 CREATE ROLE

通常、ユーザーは十分ログイン特権基本与え、作成、ユーザーの構文を作成したレコードを作成していない、見にroleコマンドを作成する時間を\することができます。あなたは以下のようにpg_roles辞書によるユーザ情報のオープンデータベースを見ることができます。

1 postgres=# select rolname,oid from pg_roles;
2  rolname |  oid 
3 ---------+-------
4  gpadmin |    10
5  dbdream | 17197
6 (2 rows)

ユーザーを作成した後、あなたはまた、ユーザーにリモートログイン権限を付与するためにpg_hba.confファイルを変更する必要があります。

1 [gpadmin@mdw gpseg-1]$ vi pg_hba.conf
2 增加以下内容
3 host    all     dbdream         10.9.15.20/32   md5

力にそれを持って来るために-uコマンド設定ファイルgpstopをリロードした後、dbdreamユーザーは、データベースにリモートでアクセスすることができます。

1 [gpadmin@mdw gpseg-1]$ psql -d postgres -U dbdream -h 10.9.15.20 -p 5432
2 Password for user dbdream:
3 psql (8.2.15)
4 Type "help" for help.

あなたは、現在のログイン情報を表示するコマンドCONNINFOの\ Cコマンドまたは\を使用することができます。

1 postgres=> \c
2 You are now connected to database "postgres" as user "dbdream".

オペレーティングシステム層に作成されたファイルスペースのファイル・スペースを作成するには、表スペースの必要性を作成し、制御ファイルを作成し、通常は計画し、ディレクトリを作成する必要があり、ディレクトリがすでに存在して指定する必要があります。マスターセグメントと、すべてのノードを作成する必要があります。あなたは、現在のデータベース・テーブル・スペースとファイル・スペースの対応を表示するには、次のコマンドを使用することができます。

1 postgres=# select a.spcname,b.fsname from pg_tablespace a,pg_filespace b where spcfsoid=b.oid;
2   spcname   |  fsname  
3 ------------+-----------
4  pg_default | pg_system
5  pg_global  | pg_system

現在のデータベースのファイル・スペースだけをpg_segment、上記pg_defaultとpg_globalスペース2つのテーブルがあります。ディレクトリのマスターノードを作成するには、次の。

1 [gpadmin@mdw ~]$ mkdir -p /gpdb/gpdata/fspc_master

そして、gpsshコマンドマスターノードによってディレクトリのSegmentノードを作成します。

1 [gpadmin@mdw ~]$ gpssh -f /gpdb/app/config/seg_host -e 'mkdir -p /gpdb/gpdata/fspc_segment'
2 [sdw1] mkdir -p /gpdb/gpdata/fspc_segment
3 [sdw2] mkdir -p /gpdb/gpdata/fspc_segment
4 [sdw3] mkdir -p /gpdb/gpdata/fspc_segment

ディレクトリを作成したら、gpfilespaceコマンドでファイル・スペースを作成することができます。

1 gpadmin@mdw gpdata]$ gpfilespace
2 20160116:11:25:31:004066 gpfilespace:mdw:gpadmin-[INFO]:-
3 A tablespace requires a file system location to store its database
4 files. A filespace is a collection of file system locations for all components
5 in a Greenplum system (primary segment, mirror segment and master instances).
6 Once a filespace is created, it can be used by one or more tablespaces.
7  
8 20160116:11:25:31:004066 gpfilespace:mdw:gpadmin-[INFO]:-getting config
9 Enter a name for this filespace

名前だけから、表スペースの名前を入力しますが、最初のgp_で使用することはできません。

01 > fspc1
02  
03 Checking your configuration:
04 Your system has 1 hosts with 0 primary and 0 mirror segments per host.
05 Your system has 3 hosts with 1 primary and 0 mirror segments per host.
06  
07 Configuring hosts: [mdw]
08  
09 Configuring hosts: [sdw1, sdw2, sdw3]
10  
11 Please specify 1 locations for the primary segments, one per line:
12 primary location 1>

ここでは、セグメント入力ノードのファイル・スペースディレクトリ。

1 primary location 1> /gpdb/gpdata/fspc_segment
2  
3 Enter a file system location for the master
4 master location>

ここではいくつかのマスタ・ファイル・スペースのディレクトリを入力します。

1 master location> /gpdb/gpdata/fspc_master
2 20160116:11:27:21:004066 gpfilespace:mdw:gpadmin-[INFO]:-Creating configuration file...
3 20160116:11:27:21:004066 gpfilespace:mdw:gpadmin-[INFO]:-[created]
4 20160116:11:27:21:004066 gpfilespace:mdw:gpadmin-[INFO]:-
5 To add this filespace to the database please run the command:
6    gpfilespace --config /gpdb/gpdata/gpfilespace_config_20160116_112531

gpfilespaceコマンドが完了した後、最後の行の上にある設定ファイルを生成し、/ gpdb / gpdata / gpfilespace_config_20160116_112531、このファイルの内容を表示するが発見され、gpfilespaceコマンドの上にのみ設定ファイル・スペースを作成し、されていません実際のファイル・スペースを作成します。

1 [gpadmin@mdw gpdata]$ cat /gpdb/gpdata/gpfilespace_config_20160116_112531
2 filespace:fspc1
3 mdw:1:/gpdb/gpdata/fspc_master/gpseg-1
4 sdw1:2:/gpdb/gpdata/fspc_segment/gpseg0
5 sdw2:3:/gpdb/gpdata/fspc_segment/gpseg1
6 sdw3:4:/gpdb/gpdata/fspc_segment/gpseg2

这个文件可以自己创建并修改,真正创建文件空间需要运行刚才gpfilespace命令后的最后一行。

01 gpadmin@mdw gpdata]$ gpfilespace --config /gpdb/gpdata/gpfilespace_config_20160116_112531
02 20160116:11:29:19:004180 gpfilespace:mdw:gpadmin-[INFO]:-
03 A tablespace requires a file system location to store its database
04 files. A filespace is a collection of file system locations for all components
05 in a Greenplum system (primary segment, mirror segment and master instances).
06 Once a filespace is created, it can be used by one or more tablespaces.
07  
08 20160116:11:29:19:004180 gpfilespace:mdw:gpadmin-[INFO]:-getting config
09 Reading Configuration file: '/gpdb/gpdata/gpfilespace_config_20160116_112531'
10 20160116:11:29:19:004180 gpfilespace:mdw:gpadmin-[INFO]:-Performing validation on paths
11 ..............................................................................
12 20160116:11:29:19:004180 gpfilespace:mdw:gpadmin-[INFO]:-Connecting to database
13 20160116:11:29:19:004180 gpfilespace:mdw:gpadmin-[INFO]:-Filespace "fspc1" successfully created

这样才是真正创建完成文件空间,才能在数据库中查询到新建的文件空间信息。

1 postgres=# select * from pg_filespace;
2   fsname   | fsowner
3 -----------+---------
4  pg_system |      10
5  fspc1     |      10
6 (2 rows)

创建完文件空间,即可在文件空间上创建表空间,创建表空间必须使用support权限用户。

1 postgres-> \c postgres gpadmin
2 You are now connected to database "postgres" as user "gpadmin".
3  
4 postgres=# create tablespace tbs1 filespace fspc1;
5 CREATE TABLESPACE

非support权限用户要使用新建的表空间,必须要使用support用户对其授予操作权限才可以,否则会遇到下面的错误。

1 postgres=# \c dbdream dbdream
2 Password for user dbdream:
3 You are now connected to database "dbdream" as user "dbdream".
4  
5 dbdream=> create table t_test(id int,name varchar(10)) DISTRIBUTED BY(id);
6 ERROR:  permission denied for tablespace tbs1

要使用户默认就使用新建的表空间,需要设置用户的默认表空间。

1 postgres=# alter role dbdream set default_tablespace='tbs1';
2 ALTER ROLE

授权后,即可使用新建的表空间。

01 postgres-> \c postgres gpadmin
02 You are now connected to database "postgres" as user "gpadmin".
03  
04 dbdream=# grant all on tablespace tbs1 to dbdream;
05 GRANT
06  
07 dbdream=> create table t_test(id int,name varchar(10)) DISTRIBUTED BY(id);
08 CREATE TABLE
09 dbdream=> \d t_test
10            Table "public.t_test"
11  Column |         Type          | Modifiers
12 --------+-----------------------+-----------
13  id     | integer               |
14  name   | character varying(10) |
15 Distributed by: (id)
16 Tablespace: "tbs1"

具有createdb权限的用户,都可以创建数据库了,语法可以通过\h create database命令来查看,非常简单。比如下面这条命令就可以创建一个数据库。

1 postgres=> create database dbdream;
2 CREATE DATABASE

也可以在创建数据库时,指定数据库使用的默认表空间。

1 dbdream=# create database tt tablespace tbs1;
2 CREATE DATABASE

创建数据库的用户必须要有createdb权限或者support用户权限,这也是之前创建用户是为什么直接赋予了createdb权限,可以通过pg_database字典来查看数据库信息。

1 dbdream=# select datname,datdba,dattablespace from pg_database;
2   datname  | datdba |  dattablespace |
3 -----------+--------+----------------+
4  dbdream   |  17197 |           1663 |
5  postgres  |     10 |           1663 |
6  tt        |     10 |          17199 |
7  template1 |     10 |           1663 |
8  template0 |     10 |           1663 |
9 (5 rows)

datdba字段表示的是数据库的所有者(创建者),这里存的是用户的oid,10是gpadmin用户,17191是dbdream用户,可以通过pg_role字典来查看。dattablespace字段表示的是表空间。存的也是表空间的ID,1663是pg_default表空间,17199是新建的tbs1表空间,可以通过pg_tablespace字典开查看。

固定リンクの記事:http://www.dbdream.com.cn/2016/01/greenplum%e6%95%b0%e6%8d%ae%e5%ba%93%e5%88%9b%e5%bb% BA%E7%94%A8% E6%88%B7%E3%80%81%E6%96%87%E4%BB%B6%E7%A9%のBA%のE9%97%B4%以下のE3%80%81% E8%A1%A8%E7% A9%のBA%のE9%97%B4%以下のE3%80%81%のE6%95%B0%のE6の%の8D%のAEの%のE5の%のBA%93 / | 文字チュン、システムの安定性、および閉鎖ラインは目をロールバックしません!

dbdream 2016年1月1日からのログ

おすすめ

転載: www.cnblogs.com/xibuhaohao/p/11131064.html