五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

云數(shù)據(jù)庫GaussDB如何創(chuàng)建和管理表空間?

背景信息

通過使用表空間,管理員可以控制一個數(shù)據(jù)庫安裝的磁盤布局。這樣有以下優(yōu)點:

1、如果初始化數(shù)據(jù)庫所在的分區(qū)或者卷空間已滿,又不能邏輯上擴展更多空間,可以在不同的分區(qū)上創(chuàng)建和使用表空間,直到系統(tǒng)重新配置空間。

2、表空間允許管理員根據(jù)數(shù)據(jù)庫對象的使用模式安排數(shù)據(jù)位置,從而提高性能。

3、一個頻繁使用的索引可以放在性能穩(wěn)定且運算速度較快的磁盤上,比如一種固態(tài)設備。

4、一個存儲歸檔的數(shù)據(jù),很少使用的或者對性能要求不高的表可以存儲在一個運算速度較慢的磁盤上。

5、管理員通過表空間可以設置占用的磁盤空間。用以在和其他數(shù)據(jù)共用分區(qū)的時候,防止表空間占用相同分區(qū)上的其他空間。

6、表空間可以控制數(shù)據(jù)庫數(shù)據(jù)占用的磁盤空間,當表空間所在磁盤的使用率達到90%時,數(shù)據(jù)庫將被設置為只讀模式,當磁盤使用率降到90%以下時,數(shù)據(jù)庫將恢復到讀寫模式。

7、表空間對應于一個文件系統(tǒng)目錄,采用如下命令創(chuàng)建一個對應/pg_location/mount1/path1的表空間,并指定最大可使用空間為500GB。

--創(chuàng)建表空間。CREATE TABLESPACE ds_location1 RELATIVE LOCATION '/pg_location/mount1/path1' MAXSIZE '500G';

通過MAXSIZE進行表空間配額管理對并發(fā)插入性能可能會有30%左右的影響,MAXSIZE指定每個DN的配額大小,每個DN實際的表空間容量和配額誤差在500MB以內(nèi)。請根據(jù)實際的情況確認是否需要設置表空間的最大值。

GaussDB自帶了兩個表空間:pg_default和pg_global。

1、表空間pg_default:用來存儲系統(tǒng)目錄對象、用戶表、用戶表index、和臨時表、臨時表index、內(nèi)部臨時表的默認空間。對應存儲目錄為實例數(shù)據(jù)目錄下的base目錄。

2、表空間pg_global:用來存放系統(tǒng)字典表。對應存儲目錄為實例數(shù)據(jù)目錄下的global目錄。


方式1:檢查pg_tablespace系統(tǒng)表。如下命令可查到系統(tǒng)和用戶定義的全部表空間。


GaussDB創(chuàng)建表及查詢操作步驟

· 創(chuàng)建表空間

1、執(zhí)行如下命令創(chuàng)建用戶jack。

postgres=# CREATE USER jack IDENTIFIED BY 'xxxxxxxxx';

當結(jié)果顯示為如下信息,則表示創(chuàng)建成功。

CREATE ROLE


2、執(zhí)行如下命令創(chuàng)建表空間。

postgres=# CREATE TABLESPACE fastspace RELATIVE LOCATION 'my_tablespace/tablespace1';

當結(jié)果顯示為如下信息,則表示創(chuàng)建成功。

CREATE TABLESPACE

其中“fastspace”為新創(chuàng)建的表空間,“CN和DN數(shù)據(jù)目錄/pg_location/my_tablespace/tablespace1”是用戶擁有讀寫權(quán)限的空目錄。


3、數(shù)據(jù)庫系統(tǒng)管理員執(zhí)行如下命令將“fastspace”表空間的訪問權(quán)限賦予數(shù)據(jù)用戶jack。

postgres=# GRANT CREATE ON TABLESPACE fastspace TO jack;

當結(jié)果顯示為如下信息,則表示賦予成功。

GRANT


· 在表空間中創(chuàng)建對象

如果用戶擁有表空間的CREATE權(quán)限,就可以在表空間上創(chuàng)建數(shù)據(jù)庫對象,比如:表和索引等。

以創(chuàng)建表為例。

方式1:執(zhí)行如下命令在指定表空間創(chuàng)建表。

postgres=# CREATE TABLE foo(i int) TABLESPACE fastspace;

當結(jié)果顯示為如下信息,則表示創(chuàng)建成功。

NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'i' as the distribution column by default.HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLE


方式2:先使用set default_tablespace設置默認表空間,再創(chuàng)建表。

postgres=# SET default_tablespace = 'fastspace';SETpostgres=# CREATE TABLE foo2(i int);NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'i' as the distribution column by default.HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLE

假設設置“fastspace”為默認表空間,然后創(chuàng)建表foo2。


· 查詢表空間

方式1:檢查pg_tablespace系統(tǒng)表。如下命令可查到系統(tǒng)和用戶定義的全部表空間。

postgres=# SELECT spcname FROM pg_tablespace;

方式2:使用gsql程序的元命令查詢表空間。

postgres=# \db


· 查詢表空間使用率

1、查詢表空間的當前使用情況。

postgres=# SELECT PG_TABLESPACE_SIZE('fastspace');

返回如下信息:

pg_tablespace_size -------------------- 2146304(1 row)

其中2146304表示表空間的大小,單位為字節(jié)。


12、計算表空間使用率。

表空間使用率=PG_TABLESPACE_SIZE/表空間所在目錄的磁盤大小。


· 修改表空間

執(zhí)行如下命令對表空間fastspace重命名為fspace。

postgres=# ALTER TABLESPACE fastspace RENAME TO fspace;ALTER TABLESPACE


· 刪除表空間

執(zhí)行如下命令刪除用戶jack。

postgres=# DROP USER jack CASCADE;DROP ROLE

執(zhí)行如下命令刪除表foo和foo2。

postgres=# DROP TABLE foo;postgres=# DROP TABLE foo2;

當結(jié)果顯示為如下信息,則表示刪除成功。

DROP TABLE

執(zhí)行如下命令刪除表空間fspace。

postgres=# DROP TABLESPACE fspace;DROP TABLESPACE


說明:用戶必須是表空間的owner或者系統(tǒng)管理員才能刪除表空間。

GaussDB優(yōu)質(zhì)文章錦集