Oracle跨主机复制数据库背后的意义

自己原文公众号: https://mp.weixin.qq.com/s/V7uc8_HgCikAfou5IuJ45A

有人问我他们的数据库要迁移(非正式环境,也就是说可以停机)环境是Oracle 12C PDB模式。怎么做快一些?数据库迁移不仅仅是表,如果就是表还好办一些,就是如果大了,时间长一点。关键是数据库对象太麻烦。

     有没有好方式呢?仅仅抱着尝试心态试试(以前做过PDB的克隆数据库,那个是本机)跨机器的我仅仅听过,还没做过。

    安排人尝试一下:

源端操作:

SQL> create user c##ly identified by ly container=all;

User created.

SQL> grant create session, create pluggable database to c##ly container=all;

Grant succeeded.


下面一步是看是不是支持远程复制。

SQL> select property_name, property_value

from   database_properties

where  property_name = 'LOCAL_UNDO_ENABLED';  2    3

PROPERTY_NAME     PROPERTY_VALUE

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

LOCAL_UNDO_ENABLED   TRUE

SQL> archive log list;

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       /arch

Oldest online log sequence     172581

Next log sequence to archive   172590

Current log sequence       172590



create public database link testdblink connect to c##ly identified by ly using '这里写tns的远程配置';


测试联通性:

select * from all_users@testdblink where rownum<5;


下一步事先规划好目录

create pluggable database XXXXDB from wlpdb1@testdblink FILE_NAME_CONVERT = ('源端目录', '/data/oradata/XXXX 这里是要迁移的目录');


好了这样就可以减少时间的一次性迁移了。


事情不难。分析一下背后的意义:

1、简化了迁移步骤方便运维,不用导出导入;

2、跨机复制可以灾备;

3、后续升级只要是PDB模式,一键迁移升级不受源端和目标端的版本限制比如12C和21C;

4、既然可以跨机识别到,那么也就是可以跨机做交互,那么sharding的就理论上真的跨机器了。

5、其实这个跨机器的复制从12C就有了那是2013年。MySQL到了8的中后期也支持了。可以说MySQL也越来越像Oracle了。做法一样。



客观上Oracle真的没什么不好,就是政治因素被说的去O太多。其他的DB2和SQLServer连说都不说。再过几年看看国产有没有这些功能吧。

数据库自治是未来,功能强大和免维护这种是最受欢迎的。


请使用浏览器的分享功能分享到微信等