admin 管理员组文章数量: 887021
2023年12月23日发(作者:语言发育迟缓的孩子能恢复正常吗)
Oracle 12c入门第一讲: Oracle 12c基本体系结构(1)
摘要: DataBi独家发布Oracle 12C 入门系列 Oracle 12c基本结构简介 ,将容器数据库和传统的非容器数据库放在同一个server上比对,很容易概括出Oracle公司即将推出的Oracle
12c容器数据库和可插拔式数据库的基本架构。 ... ...
独家发布Oracle 12c 入门系列第一讲: Oracle 12c基本结构简介
将容器数据库和传统的非容器数据库放在同一个server上比对,很容易概括出Oracle公司即将推出的Oracle 12c容器数据库和可插拔式数据库的基本架构。
从文件角度:
在图示存储设备上保存着5个数据库的文件:分别是PDBA、PDBB、PDBC、CDB1和NDB。其中PDBA、PDBB、PDBC均属于容器数据库CDB1的可插拔式数据库,NDB则为传统的非容器数据库。所以也可以这样描述:只有两个数据库CDB1和NDB保存在存储设备上。
从实例角度:
在图示服务器节点上,运行着两个实例:分别是icdb1和i1,对应的数据库分别是CDB1和NDB。可以清楚地看到只有容器数据库和非容器数据库才有对应的
实例,可插拔式数据库PDBA、PDBB和PDBC共用容器数据库的实例—icdb1,并没有自身对应的实例。
从服务角度:
传统的非容器数据库可以通过实例名或服务名链接,但是可插拔式数据库只能通过服务名链接。至于容器数据库,就像一个非容器数据库一样,同样可以通过实例名或服务名链接。
这些基本概念是深入理解容器数据库的基础。
Oracle 12c入门第二讲: Oracle 12c体系结构 (2)
摘要: 在一个Oracle database 12c server上通过容器数据库集中三个应用的数据。其数据分别被部署到三个可插拔式数据库中.
在一个database server上通过容器数据库集中三个应用的数据。其数据分别被部署到三个可插拔式数据库中,名为App1、App2和App3:
图片上展示的是一个容器数据库,其内包含4个容器:Root容器和三个可插拔式数据库。每个可插拔式数据库为特定应用提供数据,它们既可以被三个不同的DBA管理也能够由一个容器数据库DBA统一管理,即用户SYS。
用户SYS在这种架构中是典型的“通用”用户,SYS可以登录在全部4个容器上,并且具备SYSDBA权限。
可插拔式数据库的一种定义是:一系列Schema的集合,从用户和应用看来是一个逻辑上独立的数据库。但是在物理角度上,实例和所有数据库文件都是属于容器数据库的。
通过将非容器数据库作为可插拔式数据库“插入”容器数据库,很容易实现数据集中。容器数据库避免了以下结构不必要的冗余:
a. 后台进程
b. 内存
c. 数据字典内的元数据
在一个容器数据库内的可插拔式数据库共享后台进程、SGA和数据字典。同时,可插拔式数据库也拥有各自独立的数据字典以及各自独立的用户(应用)数据,参考图示App1、App2和App3具备各自的数据文件,其内数据可想而知。
Oracle 12c入门第三讲: Oracle 12c基本体系结构 (3)
摘要: 在Oracle 12c里,容器的目的是将Oracle固有元数据和用户数据(包括用户元数据)隔离,和分区非常类似,每个容器里都包含一个SYSTEM表空间保存数据字典信息: 1. 在Root容器中的SYSTEM数据字典里只保存Oracle固有元数 ...
在Oracle 12c里,容器的目的是将Oracle固有元数据和用户数据(包括用户元数据)隔离。
和分区非常类似,每个容器里都包含一个SYSTEM表空间保存数据字典信息:
1. 在Root容器中的SYSTEM数据字典里只保存Oracle固有元数据(只针对Oracle提供的对象,比如DBMS_%的包等等)。
2. 在每个可插拔式数据库(容器)中的SYSTEM数据字典只保存用户在可插拔式数据库创建的对象的元数据。
如图所示,EMP和DEPT表的数据字典信息只保存在可插拔式数据库的OBJ$和TAB$里,Root容器中的OBJ$和TAB$里并没有EMP和DEPT表的相关信息。
其实,不管一个容器数据库里有多少个可插拔式数据库,物理上的数据库只有一个,但是它的SYSTEM表空间确有许多个,数量等于可插拔式数据库的数量加一(Root容器的SYSTEM表空间)。
但是必须注意如果可插拔式数据库的SYSTEM表空间的数据文件损坏,那么从整体上讲整个数据库(容器库和可插拔式库)的SYSTEM表空间是损坏的,数据库必须SHUTDOWN到MOUNT模式进行恢复,也就是说可插拔式数据库SYSTEM表空间的可用性会影响到容器数据库甚至是其他可插拔式数据库的可用性。至少在beta测试时这样的结果。
oracle 12c Database Architecture (CDB、PDB)
In Oracle Database Server 12C, there is an architectural separation (Split Data Dictionary)
between Core Oracle System with User Applications they are loosely coupled. Pluggable
Database Architecture consists of
1) Container Database (CDB)
2) Pluggable Database (PDB)
1) Container Database (CDB) : Holds Oracle System dictionary , functionality and metadata
required to run the database. Memory and Process required for multiple PDB will be
handled by a single CDB.
2) Pluggable Database (PDB) : This holds only user application metadata or customer metadata or
dictionary. This has read only permission on oracle dictionary. In cloud each
Pluggable Database is analogous to single Customer. There is clean separation between each
pluggable database.
[oracle@db231 ~]$ ls
adr_purge show_segment_above_
backup datapump upgrade_
[oracle@db231 ~]$source
[oracle@db231 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 28 10:53:33 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
sys@ORA12C>show con_name
CON_NAME
------------------------------
CDB$ROOT
sys@ORA12C>select dbid,db_unique_name,name,cdb,con_id,con_dbid from v$database;
DBID DB_UNIQUE_NAME NAME CDB
CON_ID CON_DBID
-------------------- ------------------------------ --------- --- -------------------- --------------------
197013683 ora12c ORA12C YES
0 197013683
sys@ORA12C>select con_id,dbid,con_uid,name,open_mode from v$pdbs;
CON_ID DBID CON_UID NAME
OPEN_MODE
-------------------- -------------------- -------------------- ------------------------------ ----------
2 4061817652 4061817652 PDB$SEED
READ ONLY
3 3326953675 3326953675 PDB1
READ WRITE
sys@ORA12C>alter session set container=pdb1;
Session altered.
sys@ORA12C>show con_name
CON_NAME
------------------------------
PDB1
sys@ORA12C>select dbid,db_unique_name,name,cdb,con_id,con_dbid from v$database;
DBID DB_UNIQUE_NAME NAME CDB
CON_ID CON_DBID
-------------------- ------------------------------ --------- --- -------------------- --------------------
197013683 ora12c ORA12C YES
0 3326953675
sys@ORA12C>alter session set container=cdb$root;
Session altered.
Single CDB will support 250 pluggable databases or new feature is compatible with
older Oracle databases also .pluggable databases can be plugged or unplugged to the container
database at any point of time.
sys@ORA12C>alter pluggable database pdb1 close;
Pluggable database altered.
sys@ORA12C>select con_id,dbid,con_uid,name,open_mode from v$pdbs;
CON_ID DBID CON_UID NAME
OPEN_MODE
-------------------- -------------------- -------------------- ------------------------------ ----------
2 4061817652 4061817652 PDB$SEED
READ ONLY
3 3326953675 3326953675 PDB1
MOUNTED
sys@ORA12C>alter pluggable database pdb1 open;
Pluggable database altered.
Patching and upgrades : Apply patch once then all pluggable databases will be updated. You can
clone a PDB within the same CDB or into another CDB. PDBs can also be provisioned very fast
as each CDB comes with a “PDB Seed” from where the new PDB can be fast provisioned. So the
provisioning becomes very fast.
Redeployment becomes much easier as we can unplug the database from one platform or a CDB
version and then plug it into a CDB which is in another platform or version. This will make the
upgrade, patching and redeployment efforts much faster! When you upgrade the CDB, all the
PDBs will get upgraded. If you would like to control when the PDBs should
be upgraded, you can create another CDB version and then unplug from the old release and then
plug in to the new database release. All PDB contents are separate from each other PDB so the
“separation of duties” works very well as well.
sys@ORA12C>alter session set container=pdb1;
Session altered.
sys@ORA12C>select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------
/u01/app/oracle/oradata/ora12c/pdb1/
/u01/app/oracle/oradata/ora12c/pdb1/
/u01/app/oracle/oradata/ora12c/pdb1/pdb1_
sys@ORA12C>alter session set container=pdb$seed;
Session altered.
sys@ORA12C>select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------
/u01/app/oracle/oradata/ora12c/pdbseed/
/u01/app/oracle/oradata/ora12c/pdbseed/
Creating a PDB from the Seed. (you can cloning a Remote PDB with db_link)
版权声明:本文标题:Oracle12c入门 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703293259h445806.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论