m6米乐安卓版下载-米乐app官网下载
暂无图片
6
暂无图片
暂无图片
暂无图片

数据库管理-m6米乐安卓版下载

原创 胖头鱼的鱼缸 2023-09-05
275

上周五,9月1日,我于上海oracle办公室ou考场完成了19c ocm upgrade考试,感受就是,很多新特性考的比想象的更加深入,希望最终结果是好的吧。
来到9月第一篇,我的文章也来到了100期,感触颇多,这里也拿一个oracle数据库的新特性来给100期做个总结,也为即将到来的23c pdb级别adg打个前哨。

1 概念

refreshable clone pdbs,即可刷新的克隆pdb,除去官方文档的各种弯弯绕绕,其实应对的场景就是使用dblink在不同cdb中克隆源cdb中的一个pdb,并添加refresh mode参数,使得目标pdb可以自动或手动方式从源pdb中刷新至最新数据状态,并可以进行切换。这一特性可以看做一个非实时同步的pdb级别的adg,目标pdb可以提供只读状态的读能力。
image.png

2 示例环境

源端cdb:prodcdb,源端pdb:pdbprod1
目标cdb:devcdb,目标pdb:hotclone_pdb1
二者sys用户密码均为oracle
二者均配置omf至/u01/app/oracle/oradata

注:由于switchover需要exadata特性支持,普通环境需要预先要执行下面操作:

alter system set "_exadata_feature_on"=true scope=spfile;

3 示例操作

  1. 创建用于dblink及克隆pdb的用户并赋权(主要需要增加sysoper权限)。
  2. 源端cdb与目标cdb互相创建dblink。
conn sys/oracle@prodcdb as sysdba create user c##user1 identified by oracle container=all; grant connect,resource to c##user1 container=all; grant create pluggable database to c##user1 container=all; grant sysoper to c##user1 container=all; alter user c##user1 set container_data=all container=current; grant select on cdb_pdbs to c##user1; conn sys/oracle@devcdb as sysdba create user c##user1 identified by oracle container=all; grant connect,resource to c##user1 container=all; grant create pluggable database to c##user1 container=all; grant sysoper to c##user1 container=all; alter user c##user1 set container_data=all container=current; grant select on cdb_pdbs to c##user1; create database link prodcdb_link connect to c##user1 identified by oracle using 'prodcdb'; conn sys/oracle@prodcdb as sysdba create database link devcdb_link connect to c##user1 identified by oracle using 'devcdb';
  1. 创建可刷新pdb
conn sys/oracle@devcdb as sysdba create pluggable database hotclone_pdb1 from pdbprod1@prodcdb_link refresh mode every 5 minutes; select pdb_name,status,refresh_mode,refresh_interval from cdb_pdbs; alter pluggable database hotclone_pdb1 open read only;

image.png
image.png
4. 测试刷新情况
image.png
image.png
源端pdb建立测试表之后,目标pdb未实时更新。
image.png
一段时间后,目标端pdb仍然无法查询到测试表。
image.png
这里官方文档也有说明,需要在closed状态才能自动refresh,因此关闭目标pdb等待一段时间后再开启并查询:
26dbe9f672694cbdaca806f7a96ab914.png
这时是可以在目标端查询到测试表,所以这里的目标pdb可读,也还是比较坑。

  1. 进行switchover
conn sys/oracle@pdbprod1 as sysdba alter pluggable database refresh mode every 5 minutes from hotclone_pdb1@devcdb_link switchover; conn sys/oracle@prodcdb as sysdba select pdb_name,status,refresh_mode,refresh_interval from cdb_pdbs;

image.png
切换完成,这里就不再做反向同步测试。

总结

refreshable pdb就在19c版本上实现的功能来说,目前看起来还是比较鸡肋的。但是随着21c上pdb级别dg的实现,以及23c上pdb级别adg的到来,cdb彻底沦为底座,pdb可以随意在各个cdb上创建主备角色数据库。这样对于高可用和合理的硬件资源使用将会拥有更多的玩法。
老规矩,知道写了些啥。

最后修改时间:2023-09-13 13:41:44
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

网站地图