设为首页 加入收藏

TOP

Oracle 12c PDB浅析(二)
2015-12-01 16:03:00 来源: 作者: 【 】 浏览:13
Tags:Oracle 12c PDB 浅析
atabase altered.


这个时候再次查看就是两条记录了。


SQL> show pdbs


CON_ID CON_NAME? ? ? ? ? ? ? ? ? ? ? OPEN MODE? RESTRICTED


---------- ------------------------------ ---------- ----------


2 PDB$SEED? ? ? ? ? ? ? ? ? ? ? READ ONLY? NO


3 PDB1? ? ? ? ? ? ? ? ? ? ? ? ? READ WRITE NO


如果查看更多的角色,可以发现其实DBA相关的角色新增了不少,其中就有PDB_DBA这么一个角色。


SQL> SELECT ROLE FROM DBA_ROLES WHERE ROLE LIKE '%DBA%';


ROLE


------------------------------


DBA


CDB_DBA


PDB_DBA


XDBADMIN


OLAP_DBA


LBAC_DBA


6 rows selected.


1* ALTER SESSION SET CONTAINER=PDB$SEED


SQL> SELECT ROLE FROM DBA_ROLES WHERE ROLE LIKE '%DBA';


ROLE


------------------------------


DBA


CDB_DBA


PDB_DBA


OLAP_DBA


LBAC_DBA


创建了之后,我们来看看怎么删除PDB


删除pdb


SQL> alter session set container=pdb1;


Session altered.


SQL> select file_name from dba_data_files;


FILE_NAME


--------------------------------------------------------------------------------


/U01/app/oracle/oradata/newtest/NEWTEST/23CD9A96BE236CE4E0532F857F0A62CC/datafil


e/o1_mf_system_c3pwol80_.dbf


/U01/app/oracle/oradata/newtest/NEWTEST/23CD9A96BE236CE4E0532F857F0A62CC/datafil


e/o1_mf_sysaux_c3pwol8c_.dbf


开始删除。


SQL> drop pluggable database pdb1 including datafiles;


drop pluggable database pdb1 including datafiles


*


ERROR at line 1:


ORA-65040: operation not allowed from within a pluggable database


不能在当前的用户下删除,现在也没有CDB管理员,就用sysdba来删除。


SQL> conn / as sysdba


Connected.


SQL> drop pluggable database pdb1 including datafiles;


drop pluggable database pdb1 including datafiles


*


ERROR at line 1:


ORA-65025: Pluggable database PDB1 is not closed on all instances.


想要删除先得close


SQL> alter pluggable database pdb1 close;


Pluggable database altered.


close之后就可以放心删除了


SQL> drop pluggable database pdb1 including datafiles;


Pluggable database dropped.


我们现在来看看CDB的管理员怎么创建


SQL>? create? user c##cdbadmin identified by oracle default tablespace users temporary tablespace temp;


User created.


赋予DBA权限。


SQL> grant dba to c##cdbadmin;


Grant succeeded.


这个时候尝试连接就可以了,当然CDB的管理员名称就是c##开头,就是这么规定。


SQL> conn c##cdbadmin/oracle


Connected.


SQL> show pdbs


SP2-0382: The SHOW PDBS command is not available


再次创建PDB,可能有朋友想怎么又开始说PDB创建了,卖个关子,因为有个问题还是值得一说的。


SQL> CREATE PLUGGABLE DATABASE pdb1 ADMIN USER pdb1admin IDENTIFIED BY oracle;


Pluggable database created.


SQL>conn / as sysba


SQL> alter session set container=pdb1;


Session altered.


SQL> show pdbs


CON_ID CON_NAME? ? ? ? ? ? ? ? ? ? ? OPEN MODE? RESTRICTED


---------- ------------------------------ ---------- ----------


3 PDB1? ? ? ? ? ? ? ? ? ? ? ? ? MOUNTED


来换个写法启动一下,这个时候就有问题了,刚刚还是可以的,怎么现在修不行了,和语法没关系。


SQL> startup


Warning: PDB altered with errors.


Pluggable Database opened.


但是查看PDB的状态是没有问题的。


SQL> show pdbs


CON_ID CON_NAME? ? ? ? ? ? ? ? ? ? ? OPEN MODE? RESTRICTED


---------- ------------------------------ ---------- ----------


3 PDB1? ? ? ? ? ? ? ? ? ? ? ? ? READ WRITE YES


SQL> conn / as sysdba


Connected.


可以通过下面的方式来分析错误。


SQL> select message,time from pdb_plug_in_violations;


MESSAGE


--------------------------------------------------------------------------------


TIME


---------------------------------------------------------------------------


Sync PDB failed with ORA-959 during ' create? user c##cdbadmin identified by * d


efault tablespace users temporary tablespace temp container = all'


05-NOV-15 11.30.37.118745 PM


如果对于ora-959还有疑问,就使用oerr来看一下


SQL> !oerr ora 00959


00959, 00000, "tablespace '%s' does not exist"


// *Cause:


// *Action:


这样问题就一目了然了。因为目前没有uers的表空间


alter session set container=pdb1;


创建一个即可。


SQL> c

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇DataGuard添加临时数据文件的bug 下一篇由一条create语句的问题对比MySQL..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: