openGauss中如何管理表空間

openGaussbaby發表於2024-03-28

openGauss 中如何管理表空間
在 openGauss 中,表空間是一個目錄,在物理資料和邏輯資料間提供了抽象的一層,為所有的資料庫物件分配儲存空間,裡面儲存的是它所包含的資料庫的各種物理檔案。由於表空間是一個目錄,僅是起到了物理隔離的作用,其管理功能依賴於檔案系統。

表空間可以存在多個,建立好之後,建立資料庫物件時可以指定該物件所屬的表空間。

建立表空間

執行如下命令建立使用者 jack。

openGauss=#CREATE USER jack IDENTIFIED BY 'Bigdata@123';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
執行如下命令建立表空間。

openGauss=#CREATE TABLESPACE fastspace RELATIVE LOCATION 'tablespace/tablespace_1';
CREATE TABLESPACE
資料庫系統管理員執行如下命令將“fastspace”表空間的訪問許可權賦予資料使用者 jack。

openGauss=#GRANT CREATE ON TABLESPACE fastspace TO jack;
GRANT
在表空間中建立物件

如果使用者擁有表空間的 CREATE 許可權,就可以在表空間上建立資料庫物件,比如:表和索引等。

以建立表為例。

執行如下命令在指定表空間建立表。

openGauss=# CREATE TABLE foo(i int) TABLESPACE fastspace;
CREATE TABLE
查詢表空間

檢查 pg_tablespace 系統表。如下命令可查到系統和使用者定義的全部表空間。

openGauss=# SELECT spcname FROM pg_tablespace;
spcname

pg_default
pg_global
fastspace
(3 rows)
修改表空間

openGauss=# ALTER TABLESPACE fastspace RENAME TO fspace;
ALTER TABLESPACE
刪除表空間

注意:表空間下存在物件(表)時,無法刪除。

openGauss=# DROP TABLESPACE fspace;
ERROR: tablespace "fspace" is not empty
openGauss=# drop table foo;
DROP TABLE
openGauss=# drop tablespace fspace;
DROP TABLESPACE

相關文章