Oracle 12c CDB 和 PDB 表空间管理和配置 说明 _MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1922 | 回复: 0   主题: Oracle 12c CDB 和 PDB 表空间管理和配置 说明         下一篇 
gang
注册用户
等级:上等兵
经验:142
发帖:79
精华:0
注册:2011-12-30
状态:离线
发送短消息息给gang 加好友    发送短消息息给gang 发消息
发表于: IP:您无权察看 2015-6-8 15:23:05 | [全部帖] [楼主帖] 楼主

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命令

推荐使用这种方法,法语如下:

CONN pdb@pdb1
ALTER PLUGGABLE DATABASE DEFAULT TABLESPACEusers;
ALTER PLUGGABLE DATABASE DEFAULT TEMPORARYTABLESPACE temp;


(2)为了向后的兼容性,也可以使用ALTERDATABASE 命令修改:

CONN pdb@pdb1
ALTER DATABASE DEFAULT TABLESPACE users;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACEtemp;


注意:

不管使用哪种方法,在修改之前,主要要保证container是正确的。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论