Oracle跨主機複製資料庫背後的意義

xuexiaogang發表於2021-12-13

自己原文公眾號: 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連說都不說。再過幾年看看國產有沒有這些功能吧。

資料庫自治是未來,功能強大和免維護這種是最受歡迎的。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847340/,如需轉載,請註明出處,否則將追究法律責任。

相關文章