设为首页 加入收藏

TOP

Oracle 12c新特点详述(一)
2015-08-31 20:00:07 来源: 作者: 【 】 浏览:119
Tags:Oracle 12c 特点 详述

1)? ? 可以把多个PDB集成进一个平台。


2)? ? 可以快速提供一个新的PDB或一个已有PDB的克隆。


3)? ? 通过拔插技术,可以快速把存在的数据库重新部署到一个新平台上。


4)? ? 多个PDB数据库补丁或升级一次完成。


5)? ? 通过把单个PDB拔插到较高版本的不同CDB,可以补丁或升级一个PDB。


6)? ? 从同一个CDB中众多PDB中分离出某个PDB的内容。


7)? ? 分离这些PDB应用管理员的责任。


2.? ? 12c PDB新特点的功能


1)? ? 在一个CDB中,你可以拥有很多PDB。


2)? ? PDB和12.1之前版本的普通数据库是向后兼容的。


3)? ? PDB对应用是透明的——你不需要改变客户端代码或数据库对象。


4)? ? RAC中每个实例作为一个整体打开CDB(因此CDB和其中的PDB数据库版本都是相同的)。


5)? ? 会话仅仅看到它自己连接的那个PDB。


6)? ? 你可以从一个CDB拔出一个PDB,然后插入另一个CDB。


7)? ? 你可以在同一个CDB或不同CDB间克隆PDB。


8)? ? 资源管理器随着PDB的功能得以扩展。


9)? ? 通过SQL语句实现了实体PDB的操作(创建,拔出,插入,克隆,清除,设置打开模式)。


10)? 当连接到所谓的“根”(root)时,CDB管理员来执行这些操作。


11)? 所有的PDB能被一次备份,但可以分别单独恢复。


3.? ? 12c PDB的详解


1)? ? 每个PDB有自己的私有数据字典用于用户创建的数据库对象;另一方面,CDB作为一个整体也包含Oracle提供系统的数据字典,其中,每个数据字典定义自己的命名空间。换句话说,有全局数据字典(CDB级)和本地数据字典(PDB级)。


2)? ? 有新的分开的数据字典架构,该架构允许一个PDB被快速从一个CDB拔出并插入一个不同的CDB。


3)? ? 每个PDB只能看到Oracle提供系统的只读定义。


4)? ? 有全局数据库参数,也有本地数据库参数。PDB参数仅仅属于特定的PDB,并且拔出后,PDB参数也将保持不变。


5)? ? 数据库用户可以是全局的(CDB)或本地的(PDB)。SYS和SYSTEM用户一开始就在两级DB中存在。如果你在CDB中创建了一个新用户,那么你在PDB中也能看到这个用户。在PDB中创建的用户只能在该PDB中使用。


6)? ? 临时表空间可以是全局或本地的。


7)? ? Redo日志和Undo表空间都是全局的(CDB级)。


8)? ? Data Guard在CDB级作为一个整体发挥作用;RMAN调度的备份也作为一个整体在CDB级完成;任何时候,你可以只备份一个PDB。


9)? ? 应用连接PDB时,不需做代码修改;系统管理员可以连接CDB;连接串中的服务名确定目标PDB。


10)? PDB允许更加清晰的声明定义一个应用;一个PDB对同一个CDB里的其他PDB一无所知;每个PDB是个密闭的容器。这保证了新层面DB的独立和安全。


4.? ? 连接到一个PDB


创建一个PDB时,一个服务也会被创建在该PDB内,并且,该服务被作为初始化容器。你可以通过下列语句显示目前的容器:


selectSys_Context('Userenv', 'Con_Name') "current container" from dual;


在12.1 SQL*Plus提示符下,你能用SHOW con_name来显式目前的容器。


在创建PDB时,也会启动服务。虽然服务的元数据被记录在PDB中,但名字和PDB名字是一样的。会话将被一个不能改变目前容器的用户创建。


客户端应用代码通常被设计成在代码外面确定连接描述信息。例如:代码也许使用TNS别名,允许在不改变代码的情况下改变连接串。


当然,在一个PDB中可以有多个服务。每个将表示它被定义为PDB初始目前容器。可以用常规方法创建、维护、清除PDB中另外的服务,但一定不要清除PDB中默认的服务。建立初始容器是一个PDB的会话的唯一方法是确定一个服务。


下面的例子中,看如何用容易的语法连接到Orale12c中被叫做“cdb1”的CDB,并且连接到其中一个PDB:


sqlplusSys/Sys@localhost:1521/cdb1 AS SYSDBA


CONNECTScott/tiger@localhost:1521/My_PDB


5.? ? 创建并打开一个新的Oracle12c可插拔数据库(PDB)


现在,我们将要创建并打开一个名叫my_pdb新的可插拔数据库(PDB)。每个CDB都有一个叫做 PDB$Seed 的标准的PDB模板。我们实际是通过克隆该模板来创建一个新PDB。看下面例子:


sqlplussys/pass@localhost:1521/cdb1 as sysdba


create pluggable database My_PDB


admin user App_Admin identified by pass


file_name_convert = ('/pdbseed/', '/my_pdb/');


“ file_name_convert”子句确定新文件名如何从模板库派生出来,这点和我们知道的rman差不多。在PDB创建期间,Oracle仅拷贝system和sysaux表空间的两个数据 文件,undo,redo等其余数据库文件是CDB全局的文件,并且它们属于特定的叫做CDB$Root的容器。


“admin user”子句是必须的,在扩展格式,给新用户赋予了权限和角色,该用户仅在my_pdb内可以创建新会话。


在创建完可插拔数据库后,新的PDB处于MOUNTED模式。在新PDB中创建一个新会话前,必须先打开它。因此,我们可以用下面的命令打开它:


alter pluggabledatabase My_PDB open;


6.? ? 检查容器数据库(CDB)和可插拔数据库(PDB)文件


select con_id,tablespace_name, file_name


fromcdb_data_files


where file_Namelike '%/cdb1/pdbseed/%'


or file_Namelike '%/cdb1/my_pdb/%'


order by 1, 2;


CON_IDTablespace_Name File_Name


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


2 SYSAUX /home/oracle/oradata/cdb1/pdbseed/sysaux01.dbf


2 SYSTEM /home/oracle/oradata/cdb1/pdbseed/system01.dbf


3 SYSAUX /home/oracle/oradata/cdb1/My_PDB/sysaux01.dbf


3 SYSTEM /home/oracle/oradata/cdb1/My_PDB/system01.dbf


7.? ? Open all Oracle 12c Pluggable Databases (PDB)


RAC每个实例中的每个CDB中的PDB有它自己的打开模式(Open_Mode )和限制状态(Restricted status)。打开模式的可能值为MOUNTED,READ ONLY,和 READ WRITE;当PDB打开时,限制状态可能的值为YES和NO,否则为null;


启动一个实例(这回打开这个CDB)并不会打开PDB。“alterpluggable database”

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java语言测试连接Oracle数据库 下一篇Oracle外部表的管理和应用

评论

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