oracle12c之 表空間維護總結

張衝andy發表於2017-09-16

1.1、建立永久表空間

In the CDB:
SQL> CONNECT system@cdb1
SQL> CREATE TABLESPACE cdb_users DATAFILE
'/home/oracle/app/oracle/oradata/andycdb/cdb_users01.dbf'
SIZE 5M
autoextend off
segment space management auto 
extent management local;

In the PDB:
SQL> CONNECT system@PDB01
SQL> CREATE TABLESPACE pdb01_users DATAFILE
'/home/oracle/app/oracle/oradata/andycdb/pdb01/pdb01_users01.dbf'
SIZE 5M
autoextend off
segment space management auto 
extent management local;


建立表空間命令應該是熟悉的。在a中的行為的改變 CDB是在執行命令的容器中建立表空間。根中不應該有任何應用程式資料。任何應用程式資料都應該在 pdb分子。儘管您可以在根和PDBs中執行相同的表空間操作, 不過,所有物件都應該儲存在PDBs中。

1.2、 建立臨時表空間

In the CDB:
SQL> create temporary tablespace temp01 tempfile '/home/oracle/app/oracle/oradata/andycdb/temp02.dbf' size 5m 
autoextend off;

In the PDB:
[oracle@12c01 admin]$ sqlplus sys/oracle@pdb01 as sysdba
SQL> create temporary tablespace temp01 tempfile '/home/oracle/app/oracle/oradata/andycdb/pdb01/temp02.dbf' size 5m 
autoextend off;

1.3、 建立 UNDO 表空間
In the CDB:
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> create undo tablespace UNDOTBS2 datafile '/home/oracle/app/oracle/oradata/andycdb/undotbs02' size 5m reuse 
autoextend off
extent management local;

In the PDB:
SQL> show con_name
CON_NAME
------------------------------
PDB01
SQL> create undo tablespace UNDOTBS2 datafile '/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs02' size 5m 
autoextend off
extent management local;

2.1、分配預設永久表空間:

資料庫的預設表空間是資料庫屬性。改變預設的 作為CDB根容器的表空間,您必須以使用者的身份連線到根容器 適當的許可權,併發出ALTER DATABASE命令。這個操作不 更改PDBs的預設永久性表空間。

要更改PDB的預設表空間,您必須以使用者的身份連線到PDB 適當的許可權和釋出ALTER PLUGGABLE資料庫命令。當 連線到PDB、ALTER資料庫和ALTER PLUGGABLE資料庫 命令對PDB執行相同的修改。ALTER DATABASE命令是 允許向後相容性。

In the CDB:
SQL> CONNECT system@cdb1
SQL> ALTER DATABASE
DEFAULT TABLESPACE tbs_CDB_users;

In the PDB:

SQL> CONNECT pdb1_admin@pdbhr
SQL> ALTER PLUGGABLE DATABASE
DEFAULT TABLESPACE pdbhr_users;


2.2、指定預設的臨時表空間
In the CDB:
SQL> CONNECT system@cdb1
SQL> ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE temp_root;

In the PDB:
SQL> CONNECT pdb1_admin@pdbhr
SQL> ALTER PLUGGABLE DATABASE
DEFAULT TEMPORARY TABLESPACE local_temp;


補充:

容器資料庫建立新使用者並分配表空間時必須在沒有PDB的情況下進行或PDB與CDB有相同的表空間的時候進行,否則會報錯。如果是在PDB與CDB 有相同表空間的情況下給CDB使用者分配表空間,則分配CDB的表空間給使用者PDB的表空間並不受影響。而且,CDB使用者必須以‘C##’為開頭,否則創 建不了。

SQL> create user c##test identified by c##test default tablespace cdb_users temporary tablespace temp01;
create user c##test identified by c##test default tablespace cdb_users temporary tablespace temp01
*
ERROR at line 1:
ORA-65048: error encountered when processing the current DDL statement in
pluggable database PDB01
ORA-00959: tablespace 'CDB_USERS' does not exist

--更詳細表空間操作參考連線 (12c 表空間操作 絕大部分與 11g 操作類似 )
Oracle表空間維護總結 http://blog.csdn.net/zhang123456456/article/details/68931288
臨時表空間操作總結 http://blog.csdn.net/zhang123456456/article/details/76944407

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2145057/,如需轉載,請註明出處,否則將追究法律責任。

相關文章