揭幕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或插拔PDB至ADG环境时,备端数据库是无法自动同步PDB的,后续还需要手工在备端进行恢复操作,而Oracle 18c增加了两个参数(standby_pdb_source_file_dblink和standby_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,在备端能够自动恢复。
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,在备端能够自动恢复。
测试小结:
在生产环境中,随着业务的变化时常会有用户对已上线的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,发现有报错,未创建成功
查看后台日志,显示在创建时产生的归档文件存在异常
经过反复测试,发现有时可以建成,有时就会出现报错,未能在MOS上查到相关bug信息。
在创建成功的pdb的基础上进行switching over操作,提示该功能现在还不可用,搜索了MOS也未查到相关信息,新的版本刚刚发布,还需要进一步咨询Oracle官方确认。
测试小结:
虽然该项测试结果不成功,但从原理上分析可刷新的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
在主端(ora18c)新建一个pdb
查看备端(ora18c_std)后台日志,可以看到当新建的pdb被禁止同步时,备端(ora18c_std)忽略该PDB的redo apply,数据文件offine状态,且被命名为UNNAME。
接下来进行主备切换
可以看到在主备切换完成后,被禁止同步的pdb都无法open
再次进行主备切换
可以看到再次主备切换完成后,被禁止同步的pdb在主端能够正常open了。
测试小结:
通过本次测试能够看出Oracle 18c中数据库角色还是保存在CDB级别,当主备发生转换后,原主端未同步的PDB也无法正常使用。当前Oracle 18c版本还无法灵活实现不同容灾级别PDB在同一CDB下共存相互无干扰。实际生产应用中,我们仍然需要根据各租户业务系统要求提前规划好不同容灾等级的CDB集群,合理进行系统部署。
由于Oracle 18c刚刚发布,相关的技术资料和测试文档都很少,三墩IT人将继续进行更多功能的测试验证,为生产环境下应用提前扫雷。后续还将有更多测试分享,未完待续,敬请期待。
以上是关于揭幕Oracle 18c新功能的主要内容,如果未能解决你的问题,请参考以下文章