ITPub博客

首页 > 数据库 > Oracle > oracle12c之 表空间维护总结

oracle12c之 表空间维护总结

原创 Oracle 作者:张冲andy 时间:2017-09-16 17:05:56 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
11g oracle ocp、5.6 mysql ocp , 专注数据库领域,熟悉oracle、mysql、redis、mongodb等相关技术

注册时间:2016-08-11

  • 博文量
    560
  • 访问量
    148193