揭幕Oracle 18c新功能

Posted 三墩IT人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了揭幕Oracle 18c新功能相关的知识,希望对你有一定的参考价值。


       7月24日, Oracle 18c通用版本正式对外发布,三墩IT人也在第一时间开始了对18c新特性的测试工作。Oracle基于PDB的多租户能力一直是私有云构建数据库云平台的核心功能,本次抢鲜测试我们选取了Oracle 18c PDB在数据同步、迁移、切换方面的三项新功能,为大家带来这方面的测试过程和结果。




一、 Copying a PDB in an Oracle Data Guard Environment

功能介绍

12c的数据库版本当执行远程克隆PDB或插拔PDBADG环境时,备端数据库是无法自动同步PDB的,后续还需要手工在备端进行恢复操作,而Oracle 18c增加了两个参数(standby_pdb_source_file_dblinkstandby_pdb_source_file_directory)就是为了解决手工处理中繁琐的恢复步骤。

standby_pdb_source_file_dblink:用于主端远程克隆时,在备端设置远程节点dblink,实现主端克隆,备端自动恢复。

standby_pdb_source_file_directory:用于主端plugin时,在备端设置source file的路径,实现主端plugin,备端自动恢复。

测试过程:

1. standby_pdb_source_file_dblink测试步骤

在远程端创建一个新的PDB CRMPDB(从Oracle 12R2开始使用OMF方式管理Oracle文件,使用seed创建PDB时,无需file_conver等参数或子句

CREATE PLUGGABLE DATABASE cmccpdb ADMIN USER cmccadm IDENTIFIED BY cmccadm ROLES = (dba);

首先在主端创建连接到远程端的dblink

create public database link new18c_as_source connect to system identified by oracle using 'new18c_pri';

在备端设置standby_pdb_source_file_dblink参数

alter system set standby_pdb_source_file_dblink=new18c_as_source;

在远程端CRMPDB中赋予system用户create pluggable database权限,关闭要克隆pdb并启动到read only模式

alter pluggable database crmpdb close immediate instances=all;

alter pluggable database crmpdb open read only;

在主端创建远程克隆的pdb

create pluggable database crmpdb_clone from crmpdb@new18c_as_source;

select con_id, guid from v$pdbs;

在备端查看是否自动新建pdb

select con_id, guid from v$pdbs;

查看备端后台日志,可以看到主端远程克隆pdb,在备端能够自动恢复

揭幕Oracle 18c新功能

standby_pdb_source_file_directory测试步骤

把远程端的crmpdb unplug后,在plugin到主端,并查看备端是否能够自动恢复

在远程端关闭crmpdb

alter pluggable database crmpdb close immediate instances=all;

Unplug crmpdb到指定目录

alter pluggable database crmpdb unplug into '/home/oracle/crmpdb.xml';

备份crmpdb文件

backup as copy pluggable database crmpdb format '/home/oracle/crmpdbbak/bak%U.dbf';

拷贝文件到主端和备端的相应目录下,并设置备端standby_pdb_source_file_directory参数路径为拷贝的文件路径

alter system set standby_pdb_source_file_directory='/home/oracle/crmpdbbak';

在主端进行plugin crmpdb

create pluggable database crmpdb_plugin as clone using '/home/oracle/crmpdb.xml' copy source_file_directory='/home/oracle/crmpdbbak';

然后查看备端crmpdb是否同步

select con_id, guid from v$pdbs;

查看备端后台日志,可以看到当主端进行plugin pdb,在备端能够自动恢复

揭幕Oracle 18c新功能

揭幕Oracle 18c新功能

测试小结

在生产环境中,随着业务的变化时常会有用户对已上线的pdb提出提高容灾等级的需求,这时就需要通过远程clone或者plugin pdb的方式将pdb迁移到一个ADG主备的环境,使用Oracle18c提供的这两个参数大大增加了此类操作的便利性,不再需要繁琐的参数设置和文件拷贝,无需人工干预,可自动维护备端数据库。


 Switching Over Refreshable Clone PDB

功能介绍

 12.1版本中Clone PDB需要将源库置为read only模式,将影响源数据库的生产使用。12.2版本中,Oracle引入了 Refreshable Clone PDB 技术,源库可以在read write模式下进行克隆,增大了该功能在迁移中应用的可能性。本次18c版本12.2版本的功能上增加了Switching Over的功能,可以将源端和目标端的pdb角色互换,从而实现PDB级别的轻量容灾。

测试步骤: 

在源端(ora18c)和目标端(new18c)分别创建指向对端的dblink,用于在进行switchover的时候可以相互访问。

create public database link link_cdb_source_for_clone connect to system identified by oracle using 'ora18c_pri';

create public database link link_for_clone connect to system identified by oracle using 'new18c_pri';

在目标端(new18c)创建可刷新的pdb,发现有报错,未创建成功

揭幕Oracle 18c新功能

查看后台日志,显示在创建时产生的归档文件存在异常

揭幕Oracle 18c新功能

经过反复测试,发现有时可以建成,有时就会出现报错,未能在MOS上查到相关bug信息。

揭幕Oracle 18c新功能

在创建成功的pdb的基础上进行switching over操作,提示该功能现在还不可用,搜索了MOS也未查到相关信息,新的版本刚刚发布,还需要进一步咨询Oracle官方确认。

揭幕Oracle 18c新功能

测试小结

虽然该项测试结果不成功,但从原理上分析可刷新的pdb是一个基于源端undo和归档实现实时增量同步功能初看起来有点像可刷新的物化视图,实际上它更像一个集成到数据库中的xtts同步功能。可刷新的pdb功能在pdb迁移割接、创建测试pdb和提供只读切片数据等场景中都可以使用,在增加了switching over功能之后,提供一个非实时同步的轻量级容灾能力。在上述问题解决后,实际生产应用还是可以期待一下。


三、 PDB Subset Standby

功能介绍: 

基于pdb粒度的ADG同步一直是我们在跟踪的功能,在12.1版本中我们可以在ADG主端创建PDB时指定是否同步当前PDB至备端12.2开始创建PDB时可以在多个ADG备端中指定接受同步的备库。12.2版本出来后三墩IT人曾对此项功能做过相关测试,发现主备如果发生切换后,被禁止同步的pdb在新的主备两端都无法进行open,只有进行正常回切才能在原主open这样一来如果真发生容灾切换,将对生产数据产生很大风险。此次使用18c的版本进行测试,让我们来看一下新的版本是否在这项功能上有所改进。

测试步骤:

在备端设置ENABLED_PDBS_ON_STANDBY参数,指定同步的pdb

揭幕Oracle 18c新功能

在主端(ora18c)新建一个pdb

揭幕Oracle 18c新功能

查看备端(ora18c_std)后台日志,可以看到当新建的pdb被禁止同步时,备端(ora18c_std)忽略该PDB的redo apply,数据文件offine状态,且被命名为UNNAME。

揭幕Oracle 18c新功能

接下来进行主备切换

揭幕Oracle 18c新功能

揭幕Oracle 18c新功能

可以看到在主备切换完成后,被禁止同步的pdb都无法open

再次进行主备切换

揭幕Oracle 18c新功能

可以看到再次主备切换完成后,被禁止同步的pdb在主端能够正常open了。

测试小结:

通过本次测试能够看出Oracle 18c中数据库角色还是保存在CDB级别,当主备发生转换后,原主端未同步的PDB也无法正常使用。当前Oracle 18c版本还无法灵活实现不同容灾级别PDB在同一CDB下共存相互无干扰。实际生产应用中,我们仍然需要根据各租户业务系统要求提前规划好不同容灾等级的CDB集群,合理进行系统部署。


由于Oracle 18c刚刚发布,相关的技术资料测试文档都很少,三墩IT人将继续进行更多功能的测试验证,为生产环境下应用提前扫雷。后续更多测试分享,未完待续,敬请期待



以上是关于揭幕Oracle 18c新功能的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 18c 数据库发布了(计划在2018年提供下载-传统DBA应该何去何从?)

Oracle 18C新特性介绍

Scalable Sequences(自适应序列)

18c 与 19c 上的 Oracle 编号问题

oracle database 18C 都来了~~~~

极速体验:Oracle 18c 下载和Scalable Sequence新特性