oracle pdb 表空间,Oracle 12c CDB 和 PDB 表空间管理和配置 说明
注:本文謝絕轉載。
1??管理CDB中的表空間
CDB表空間的管理和non-CDB 表空間的管理一樣,CDB 也有一個實例,在安裝的時候指定。
--查看表空間:
SQL> select instance_name fromv$instance;
INSTANCE_NAME
----------------
Cndba
SQL> col file_name for a50
SQL> selecttablespace_name,file_id,file_name from dba_data_files;
TABLESPACE_NAME?????????????????? FILE_ID FILE_NAME
------------------------------ ------------------------------------------------------------
USERS?????????????????????????????????? 6 /u01/app/oracle/oradata/cndba/users01.dbf
UNDOTBS1??????????????????????????????? 4/u01/app/oracle/oradata/cndba/undotbs01.dbf
SYSAUX????????????????????????????????? 3/u01/app/oracle/oradata/cndba/sysaux01.dbf
SYSTEM????????????????????????????????? 1 /u01/app/oracle/oradata/cndba/system01.dbf
--切換container:
SQL> set lin 140
SQL> select con_id, dbid, guid, name ,open_mode from v$pdbs;
CON_ID?????? DBID GUID???????????????????????????? NAME???????? OPEN_MODE
---------- ------------------------------------------ ------------ ----------
2 4088301206 F7C1E3C96BBF0585E0430A01A8C05459 PDB$SEED???? READ ONLY
3? 426143573F7C209EB1DFC0854E0430A01A8C0B787 PDBCNDBA????READ WRITE
4 1231796139 F812DE1B6A8F363AE0430A01A8C0C759 PCNDBA2????? READ WRITE
SQL> alter session setcontainer=pcndba2;
Session altered.
SQL> selecttablespace_name,file_id,file_name from dba_data_files;
TABLESPACE_NAME????? FILE_ID FILE_NAME
----------------- ------------------------------------------------------------
SYSTEM??????????????????? 12/u01/app/oracle/oradata/cndba/pcndba2/system01.dbf
SYSAUX??????????????????? 13/u01/app/oracle/oradata/cndba/pcndba2/sysaux01.dbf
USERS???????????????????? 14/u01/app/oracle/oradata/cndba/pcndba2/pcndba2_users01.dbf
--表空間具體操作示例
SQL> alter session setcontainer=CDB$ROOT;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> CREATE TABLESPACE dave
2??? DATAFILE‘/u01/app/oracle/oradata/cndba/pcndba2/dave01.dbf‘ SIZE 1M
3??? AUTOEXTEND ON NEXT 1M;
Tablespace created.
SQL> ALTER TABLESPACE dave ADD
2??? DATAFILE‘/u01/app/oracle/oradata/cndba/pcndba2/dave02.dbf‘ SIZE 1M
3??? AUTOEXTEND ON NEXT 1M;
Tablespace altered.
--查看:
SQL> selecttablespace_name,file_id,file_name from dba_data_files;
TABLESPACE_NAME?????????????????? FILE_ID FILE_NAME
------------------------------ ------------------------------------------------------------
SYSTEM?????????????????????????????????1/u01/app/oracle/oradata/cndba/system01.dbf
SYSAUX????????????????????????????????? 3/u01/app/oracle/oradata/cndba/sysaux01.dbf
UNDOTBS1??????????????????????????????? 4/u01/app/oracle/oradata/cndba/undotbs01.dbf
USERS??????????????????????????????????6/u01/app/oracle/oradata/cndba/users01.dbf
DAVE?????????????????????????????????? 16/u01/app/oracle/oradata/cndba/pcndba2/dave02.dbf
DAVE?????????????????????????????????? 15/u01/app/oracle/oradata/cndba/pcndba2/dave01.dbf
--drop表空間:
SQL> drop tablespace dave includingcontents and datafiles;
Tablespace dropped.
SQL> selecttablespace_name,file_id,file_name from dba_data_files;
TABLESPACE_NAME?????????????????? FILE_ID FILE_NAME
------------------------------ ------------------------------------------------------------
SYSTEM????????????????????????????????? 1/u01/app/oracle/oradata/cndba/system01.dbf
SYSAUX????????????????????????????????? 3/u01/app/oracle/oradata/cndba/sysaux01.dbf
UNDOTBS1??????????????? ????????????????4/u01/app/oracle/oradata/cndba/undotbs01.dbf
USERS?????????????????????????????????? 6/u01/app/oracle/oradata/cndba/users01.dbf
2??管理PDB的表空間
PDB 表空間的管理和CDB一樣,只需要切換到正確的container即可。
SQL> select name,open_mode from v$pdbs;
NAME????????? ?????????????????OPEN_MODE
------------------------------ ----------
PDB$SEED?????????????????????? READ ONLY
PDBCNDBA?????????????????????? READ WRITE
PCNDBA2??????????????????????? READ WRITE
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter session setcontainer=pcndba2;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
PCNDBA2
SQL> col tablespace_name for a15
SQL> col file_name for a60
SQL> selecttablespace_name,file_id,file_name from dba_data_files;
TABLESPACE_NAME??? FILE_ID FILE_NAME
--------------- ----------------------------------------------------------------------
SYSTEM????????????????? 12/u01/app/oracle/oradata/cndba/pcndba2/system01.dbf
SYSAUX????????????????? 13 /u01/app/oracle/oradata/cndba/pcndba2/sysaux01.dbf
USERS?????????????????? 14/u01/app/oracle/oradata/cndba/pcndba2/pcndba2_users01.dbf
SQL> CREATE TABLESPACE dave
2??? DATAFILE‘/u01/app/oracle/oradata/cndba/pcndba2/dave01.dbf‘ SIZE 1M
3??? AUTOEXTEND ON NEXT 1M;
Tablespace created.
SQL> ALTER TABLESPACE dave ADD
2??? DATAFILE‘/u01/app/oracle/oradata/cndba/pcndba2/dave02.dbf‘ SIZE 1M
3??? AUTOEXTEND ON NEXT 1M;
Tablespace altered.
SQL> selecttablespace_name,file_id,file_name from dba_data_files;
TABLESPACE_NAME??? FILE_ID FILE_NAME
--------------- ----------------------------------------------------------------------
SYSAUX????????????????? 13/u01/app/oracle/oradata/cndba/pcndba2/sysaux01.dbf
SYSTEM????????????????? 12 /u01/app/oracle/oradata/cndba/pcndba2/system01.dbf
USERS?????????????????? 14/u01/app/oracle/oradata/cndba/pcndba2/pcndba2_users01.dbf
DAVE??????????????????? 17/u01/app/oracle/oradata/cndba/pcndba2/dave01.dbf
DAVE??????????????????? 18/u01/app/oracle/oradata/cndba/pcndba2/dave02.dbf
SQL> DROP TABLESPACE dave INCLUDINGCONTENTS AND DATAFILES;
Tablespace dropped.
SQL> selecttablespace_name,file_id,file_name from dba_data_files;
TABLESPACE_NAME??? FILE_ID FILE_NAME
--------------- ----------------------------------------------------------------------
SYSTEM????????????????? 12/u01/app/oracle/oradata/cndba/pcndba2/system01.dbf
SYSAUX????????????????? 13/u01/app/oracle/oradata/cndba/pcndba2/sysaux01.dbf
USERS?????????????????? 14/u01/app/oracle/oradata/cndba/pcndba2/pcndba2_users01.dbf
3??Undo 表空間
CDB中的undo 表空間只能從CDB中管理,不能從non-CDB中管理。
PDB 沒有自己的undo 表空間,PDB 中直接使用CDB中的undo 表空間。
如果連上PDB,是看不到undo 表空間的。
SQL> show con_name
CON_NAME
------------------------------
PCNDBA2
SQL> select tablespace_name fromdba_tablespaces;
TABLESPACE_NAME
---------------
SYSTEM
SYSAUX
TEMP
USERS
--切換到CDB中:
SQL> alter session setcontainer=CDB$ROOT;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> select tablespace_name fromdba_tablespaces;
TABLESPACE_NAME
---------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
SQL> select name from v$datafile;
NAME
----------------------------------------------------------------------
/u01/app/oracle/oradata/cndba/system01.dbf
/u01/app/oracle/oradata/cndba/sysaux01.dbf
/u01/app/oracle/oradata/cndba/undotbs01.dbf
/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
/u01/app/oracle/oradata/cndba/users01.dbf
/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
/u01/app/oracle/oradata/cndba/pdbcndba/SAMPLE_SCHEMA_users01.dbf
/u01/app/oracle/oradata/cndba/pdbcndba/example01.dbf
/u01/app/oracle/oradata/cndba/pcndba2/system01.dbf
/u01/app/oracle/oradata/cndba/pcndba2/sysaux01.dbf
/u01/app/oracle/oradata/cndba/pcndba2/pcndba2_users01.dbf
13 rows selected.
--查看TEMP表空間:
SQL> select name from v$tempfile;
NAME
----------------------------------------------------------------------
/u01/app/oracle/oradata/cndba/temp01.dbf
/u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp01.dbf
/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_temp01.dbf
/u01/app/oracle/oradata/cndba/pcndba2/temp01.dbf
SQL>
4??Temporary 表空間
CDB 中的temporary 表空間只從在CDB中管理。
PDB 可以有自己的temporary表空間,也可以不用,在創建PDB的時候如果沒有指定temporary表空間,那么就會公用CDB的temporary 表空間。
SQL> select name from v$pdbs;
NAME
----------------------------------------------------------------------
PDB$SEED
PDBCNDBA
PCNDBA2
SQL> alter session set container=pcndba2;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
PCNDBA2
SQL> select file_name fromdba_data_files;
FILE_NAME
------------------------------------------------------------
/u01/app/oracle/oradata/cndba/pcndba2/sysaux01.dbf
/u01/app/oracle/oradata/cndba/pcndba2/system01.dbf
/u01/app/oracle/oradata/cndba/pcndba2/pcndba2_users01.dbf
SQL> CREATE TEMPORARY TABLESPACE temp2
2??? TEMPFILE‘/u01/app/oracle/oradata/cndba/pcndba2/temp02.dbf‘ SIZE 5M
3??? AUTOEXTEND ON NEXT 1M;
Tablespace created.
SQL> select name from v$tempfile;
NAME
----------------------------------------------------------------------
/u01/app/oracle/oradata/cndba/pcndba2/temp01.dbf
/u01/app/oracle/oradata/cndba/pcndba2/temp02.dbf
SQL> drop tablespace temp2 includingcontents and datafiles;
Tablespace dropped.
SQL> select name from v$tempfile;
NAME
----------------------------------------------------------------------
/u01/app/oracle/oradata/cndba/pcndba2/temp01.dbf
5??Default Tablespaces
CDB 中的defaulttablespace 和 default temporary tablespace 只能在CDB中操作。
PDB 的中defaulttablespace 和 default temporary tablespace有兩種修改方法:
(1)??使用ALTER PLUGGABLE DATABASE命令
推薦使用這種方法,法語如下:
ALTER PLUGGABLE DATABASE DEFAULT TABLESPACEusers;
ALTER PLUGGABLE DATABASE DEFAULT TEMPORARYTABLESPACE temp;
(2)為了向后的兼容性,也可以使用ALTERDATABASE 命令修改:
ALTER DATABASE DEFAULT TABLESPACE users;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACEtemp;
注意:
不管使用哪種方法,在修改之前,主要要保證container是正確的。
--------------------------------------------------------------------------------------------
版權所有,文章禁止轉載,否則追究法律責任!
AboutDave:
QQ:???? ?251097186
Dave 的QQ群:
--------------------------------------------------------------------------------------------
注意:加群必須注明表空間和數據文件關系 | 不要重復加群
CNDBA_1: 104207940 (滿)? ??CNDBA_2: 62697716 (滿)?? CNDBA_3: 283816689
CNDBA_4: 391125754?? CNDBA_5: 62697850??? CNDBA_6: 62697977?? CNDBA_7: 142216823(滿)
原文:http://blog.csdn.net/tianlesoftware/article/details/41820095
總結
以上是生活随笔為你收集整理的oracle pdb 表空间,Oracle 12c CDB 和 PDB 表空间管理和配置 说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发工具:IDEA 2021.1 的 W
- 下一篇: openlayers集成echarts实