溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

多套Oracle10g整合遷移到11g的方法是什么

發(fā)布時(shí)間:2022-01-18 15:11:15 來(lái)源:億速云 閱讀:130 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫(kù)

這篇文章主要講解了“多套Oracle10g整合遷移到11g的方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“多套Oracle10g整合遷移到11g的方法是什么”吧!

   在數(shù)據(jù)遷移中,除了跨平臺(tái),全量,增量數(shù)據(jù)遷移之外,還有一類(lèi)會(huì)把已有的難度升級(jí),那就是整合式遷移,比如原來(lái)有兩個(gè)數(shù)據(jù),遷移后是一個(gè),類(lèi)似這樣的需求,如果再加上平滑升級(jí)數(shù)據(jù)庫(kù)版本,那就值得我們好好想想方案了。

  如果兩個(gè)源庫(kù)不大,其實(shí)直接使用Datapump不失為一種方法,最大的優(yōu)點(diǎn)就是操作簡(jiǎn)單,可控性強(qiáng),而瓶頸也很明顯,隨著數(shù)據(jù)量的增長(zhǎng),這個(gè)遷移時(shí)長(zhǎng)就會(huì)線性增長(zhǎng),從邏輯遷移的角度來(lái)看,對(duì)于版本升級(jí)的依賴(lài)性不高。

   而如果兩個(gè)源庫(kù)都很大,比如都是5T這樣的級(jí)別,整合起來(lái)就是10T,這樣的量級(jí),給你一個(gè)小時(shí)搞定,而且還要做數(shù)據(jù)庫(kù)的平滑升級(jí),難度就相當(dāng)大了。

    我們來(lái)簡(jiǎn)單理一下時(shí)間主要都花在哪里了。

     1.數(shù)據(jù)導(dǎo)出,我們還需要額外配置的磁盤(pán)空間和存儲(chǔ),基本是200%以上的冗余空間才可以,我們拍腦袋給個(gè)時(shí)間,比如30分鐘。

     2.數(shù)據(jù)dump傳輸?shù)侥繕?biāo)庫(kù),這個(gè)時(shí)間依賴(lài)于幾個(gè)點(diǎn),比如源庫(kù)的網(wǎng)絡(luò)鏈路配置,帶寬上限等。假設(shè)這些都不是問(wèn)題,還是拍腦袋,至少得60分鐘

    3.如果按照預(yù)想的計(jì)劃到了這一步,數(shù)據(jù)遷移的工作還沒(méi)正式開(kāi)始,時(shí)間就用完了。我們硬著頭皮繼續(xù),數(shù)據(jù)導(dǎo)入,按照目前做PCIE-SSD POC的數(shù)據(jù),5T按照最理想的情況,非歸檔導(dǎo)入至少得500分鐘

     所以上面的方案就注定了是一個(gè)失敗的遷移案例,但是我們可以從中優(yōu)化出很多東西,直到滿(mǎn)足我們的需求為止。

    我們拋開(kāi)上面的方案來(lái),簡(jiǎn)單回憶一下,數(shù)據(jù)庫(kù)遷移的本質(zhì),數(shù)據(jù)庫(kù)升級(jí)的本質(zhì),首先數(shù)據(jù)可以大體分為系統(tǒng)表空間數(shù)據(jù)(system,sysaux,undo),應(yīng)用數(shù)據(jù)(表數(shù)據(jù),索引等),只是表現(xiàn)形式會(huì)是表空間,數(shù)據(jù)文件,如果跨平臺(tái),我們考慮的數(shù)據(jù)的邏輯一致性,而如果不跨平臺(tái),考慮的是盡可能按照物理一致性來(lái)考量。在整合式遷移中,物理一致性就很難實(shí)現(xiàn),但是我們可以最大程度的實(shí)現(xiàn)。

    然后是數(shù)據(jù)庫(kù)升級(jí)的本質(zhì),本質(zhì)上數(shù)據(jù)庫(kù)升級(jí)就是數(shù)據(jù)字典升級(jí),對(duì)于數(shù)據(jù)文件來(lái)說(shuō),簡(jiǎn)單來(lái)說(shuō),可以認(rèn)為沒(méi)有差別。

   所以數(shù)據(jù)庫(kù)從低版本升級(jí)到高版本,比如10g到11g,數(shù)據(jù)文件本質(zhì)上是不變的,那么變化的是數(shù)據(jù)字典,我們就可以取長(zhǎng)補(bǔ)短。我們只關(guān)注數(shù)據(jù)字典的這部分,遷移的時(shí)候就會(huì)有很明確的方向。

   那么上面失敗的案例如何優(yōu)化呢。我們可以極大的減少導(dǎo)出的時(shí)間,減少數(shù)據(jù)dump傳輸?shù)臅r(shí)間,說(shuō)得更加自信一些,我們能不能不導(dǎo)出數(shù)據(jù),不傳輸dump。答案顯然是可以的,那就是充分利用Data Guard。

   這樣前期的工作在正式遷移前都已經(jīng)就位了,升級(jí)的過(guò)程中我們需要做得事情就是關(guān)注于數(shù)據(jù)字典的升級(jí),而遷移的部分怎么來(lái)做呢,就是通過(guò)傳輸表空間的方式來(lái)實(shí)現(xiàn)。

    假設(shè)我們要遷移的數(shù)據(jù)庫(kù)是peak,extradb,我們計(jì)劃整合后的數(shù)據(jù)庫(kù)為peak,那么在服務(wù)器上應(yīng)該會(huì)有下面的實(shí)例,很明顯有兩個(gè)名為peak的數(shù)據(jù)庫(kù),因?yàn)镺RACLE_HOME的不同,所以不會(huì)沖突。

$ ps -ef|grep smon
oracle    77606      1  0 Jul03 ?        00:00:03 ora_smon_extradb
oracle    97643      1  0 14:39 ?        00:00:00 ora_smon_peak
oracle    98133      1  0 14:49 ?        00:00:00 ora_smon_peak
oracle    98486  98195  0 15:15 pts/0    00:00:00 grep smon

   按照目標(biāo)庫(kù)最終的結(jié)果,我們的oradata下的目錄結(jié)果大體如下:

drwxr-xr-x 2 oracle oinstall 4096 Jul 14 15:04 extradb
drwxr-xr-x 2 oracle oinstall 4096 Jul 14 15:01 peak
drwxr-xr-x 2 oracle oinstall 4096 Jul 14 14:46 peak_old

peak是最終的數(shù)據(jù)文件,extradb和peak的數(shù)據(jù)文件統(tǒng)統(tǒng)在peak目錄下面,而extradb的系統(tǒng)表空間在extradb目錄下,源庫(kù)peak的數(shù)據(jù)字典在peak_old下。

   如果要遷移數(shù)據(jù)文件,在備庫(kù)上操作很簡(jiǎn)單,可以參考如下的動(dòng)態(tài)SQL.

  select 'alter database rename file '||chr(39)||name||chr(39)||' to '||chr(39)||replace(name,'/extradb/','/peak/') ||chr(39)||';' from v$datafile;

   這個(gè)時(shí)候peak目錄下的文件就像參加一個(gè)聚會(huì)一樣,大家都坐在一起,但是彼此之間還缺少聯(lián)系,還沒(méi)有連接起來(lái)。

   遷移前,需要做一個(gè)基本的檢查,當(dāng)然這個(gè)工作是提前要做好的。到時(shí)候至少驗(yàn)證一下即可。    

    exec dbms_tts.transport_set_check(TS_LIST=>'USERS,PEAK_DATA,PEAK_INDEX,PEAK_CHANNEL_DATA,PEAK_CHANNEL_INDEX,PEAK_NEW_DATA,PEAK_NEW_INDEX',INCL_CONSTRAINTS=>TRUE,full_check=>true);

然后查看select *from transport_set_violations;
是否有沖突的信息

遷移的時(shí)候,把表空間置為read only狀態(tài),可以使用如下的動(dòng)態(tài)SQL來(lái)生成批量的遷移腳本。

select 'alter tablespace '||tablespace_name ||' read only;' from dba_tablespaces where tablespace_name not in ('SYSTEM','SYSAUX','UNDOTBS1','TEMP');
  導(dǎo)出數(shù)據(jù)字典的信息:

exp \'sys/oracle as sysdba\' file=exp_tts_peak.dmp transport_tablespace= y tablespaces=USERS,PEAK_DATA,PEAK_INDEX,PEAK_CHANNEL_DATA,PEAK_CHANNEL_INDEX,PEAK_NEW_DATA,PEAK_NEW_INDEX log=exp_tts_peak.log
這個(gè)dump其實(shí)很小,而且導(dǎo)入的過(guò)程時(shí)間也很短。

接下來(lái)的工作就很瑣碎了,就是初始化基本的用戶(hù)信息,準(zhǔn)備導(dǎo)入數(shù)據(jù)字典的信息,這里需要提到一點(diǎn)的是users表空間的部分,這個(gè)表空間整合肯定會(huì)沖突,所以如果條件允許,我們可以給表空間改一下名字,避免沖突無(wú)法導(dǎo)入。

   導(dǎo)入的部分語(yǔ)句如下,這個(gè)過(guò)程就是最終的映射,其實(shí)就跟一次聚會(huì)一樣,彼此介紹大家互相認(rèn)識(shí),產(chǎn)生了連接。

imp \'sys/oracle as sysdba\' file=exp_tts_peak.dmp transport_tablespace=y tablespaces=USERS,xxxxx,U01/app/oracle/oradata/peak/peak_new_data04.dbf,/U01/app/oracle/oradata/peak/peak_new_index04.dbf log=imp_tts_peak.log
   遷移的核心就在此了,行與不行全看這里了。

    而遷移之后,切記需要把表空間置為讀寫(xiě)狀態(tài),這樣一來(lái)大部分的遷移工作就提前準(zhǔn)備好了。

    如果滿(mǎn)打滿(mǎn)算,準(zhǔn)備充分,半個(gè)小時(shí)搞定全然不成問(wèn)題。

感謝各位的閱讀,以上就是“多套Oracle10g整合遷移到11g的方法是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)多套Oracle10g整合遷移到11g的方法是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI