设为首页 加入收藏

TOP

Oracle 12c PDB浅析(一)
2015-12-01 16:03:00 来源: 作者: 【 】 浏览:11
Tags:Oracle 12c PDB 浅析

自己也在本地尝试了一下,其实中间了花了些时间,中途总是被各种事情打断,所以留下的都是一些零碎的知识片段,自己索引把环境重新删了再做几次。


在这种尝试中我试了两种学习方法,第一种是压根不看官方文档,纯是凭着感觉做,碰到问题查google,百度,metalink来做,最后也勉强出了点成果,但是总体感觉有些问题的解决不是常规思路,月解决离本身的学习好像偏差越大。最后竟然还有改到隐含参数,我觉得对于初入门的学习来说,还是很不可取的,所以尽管勉强出了点东西,但是我的感觉是这种学习方法不系统不全面,很容易被各种攻略来影响,还是不推荐的。


然后中间隔了一天,今天再来准备抽一个小时左右来学习一下,发现官方文档着实要详细的多,而且介绍的系统性,更全面,很多博客中的图也基本都是官网中的,所以说自己学习的时候就会方便一些,照着做出错的概率要小,不会很折腾。


不过文档我也是选看,我整理了一下我掌握的信息,做一个简单的总结。


这个图是官方的,我觉得实在弄不出比这个更好的图了,直接贴出来。这个里面的CDB就是容器,PDB就是插件数据库,hrpdb,salespdb都有对应的PDBA来管理,综合的管理由CDB管理员来负责。Root是存储了容器的基本模板,而seed则是提供了一套模板机制。可以基于seed模板来创建对应的PDB,我要演示的也是这个方法。



首先我们创建一个12c的数据库自带pluggable database,还是选用dbca silent方式来做,一个命令直接搞定。


这种方式和10g,11g的主要差别就是有一个创建CDB的选项。


dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname newtest -sid newtest? -characterSet UTF8? -createAsContainerDatabase true -sysPassword oracle -systemPassword oracle


Copying database files


1% complete


3% complete


11% complete


18% complete


37% complete


Creating and starting Oracle instance


40% complete


45% complete


46% complete


47% complete


52% complete


57% complete


58% complete


59% complete


62% complete


Completing Database Creation


66% complete


70% complete


74% complete


85% complete


96% complete


100% complete


创建完成之后我们就开始来了解一下CDB,PDB的一些简单操作。


首先来个二连发,看看容器id和容器name


sqlplus / as sysdba


SQL> show con_id con_name


CON_ID


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


1


CON_NAME


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


CDB$ROOT


SQL> select file_name from dba_data_files;


FILE_NAME


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


/U01/app/oracle/oradata/newtest/system01.dbf


/U01/app/oracle/oradata/newtest/sysaux01.dbf


/U01/app/oracle/oradata/newtest/undotbs01.dbf


/U01/app/oracle/oradata/newtest/users01.dbf


切换到seed,查看容器的id和name


SQL> alter session set container=pdb$seed;


Session altered.


SQL> show con_id con_name


CON_ID


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


2


CON_NAME


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


PDB$SEED


查看数据文件,这个时候可以看出其实root和seed都会有独立的system表空间。


SQL> select file_name from dba_data_files;


FILE_NAME


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


/U01/app/oracle/oradata/newtest/pdbseed/system01.dbf


/U01/app/oracle/oradata/newtest/pdbseed/sysaux01.dbf


当然想得到更清晰的pdb概览信息,可以使用show pdbs


SQL> show pdbs;


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


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


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


我们再用sysdba登录,如果存在多个pdb,show pdbs显示的结果会更多。目前还没有创建PDB,只有seed一个


SQL> conn / as sysdba


Connected.


SQL> show pdbs


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


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


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


我们来创建一个新的PDB,使用基于seed来创建的方式。



默认创建PDB的时候,如果不指定文件的映射关系,会有下面的问题,我们可以省事先用OMF来做。


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


CREATE PLUGGABLE DATABASE pdb1 ADMIN USER pdb1admin IDENTIFIED BY oracle


*


ERROR at line 1:


ORA-65016: FILE_NAME_CONVERT must be specified


SQL>alter system set db_create_file_dest='/U01/app/oracle/oradata/newtest';


System altered.


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


Pluggable database created.


启动一下新的pdb


SQL> alter pluggable database pdb1 open;


Pluggable d

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

评论

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