溫馨提示×

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

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

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)

發(fā)布時(shí)間:2020-08-05 10:58:55 來(lái)源:ITPUB博客 閱讀:291 作者:sqgvip 欄目:關(guān)系型數(shù)據(jù)庫(kù)

前言:在遷移Oracle數(shù)據(jù)庫(kù)的過(guò)程中,我們會(huì)遇到很多種情況,例如32位操作系統(tǒng)下的數(shù)據(jù)庫(kù)遷移到64位,不同操作系統(tǒng)平臺(tái)之間的遷移,那么怎么選擇遷移工具呢,首先我們需要確認(rèn)遷移源端和目標(biāo)端的環(huán)境,再次停機(jī)時(shí)間,數(shù)據(jù)量大小,相對(duì)而言,邏輯遷移更穩(wěn)妥一點(diǎn),不管是手動(dòng)的expdp/impdp 還是借助其他工具,OGG之類,像高水位這樣的問(wèn)題也會(huì)得到緩解。 rman也是一項(xiàng)工具,那么什么時(shí)候選擇呢,或者選擇的利弊呢?版本限制、bug有點(diǎn)多,rman能把數(shù)據(jù)庫(kù)的環(huán)境完全復(fù)制過(guò)來(lái),在一些場(chǎng)景中是需要的。

下面做個(gè)測(cè)試,源端環(huán)境:   Windows2008 64+Oracle11.2.0.1+ filesystem

                        目標(biāo)端環(huán)境:Redhat6.7 x64+oracle11.2.0.4+ASM

首先我們確認(rèn)一下字節(jié):

     【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)


下面開(kāi)始通過(guò)
rman執(zhí)行遷移工作

Windows環(huán)境下執(zhí)行備份:

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)

通過(guò)以下語(yǔ)句生成pfile文件:

create pfile='d:\pfile20171029.ora' from spfile;

將備份文件、歸檔日志、pfile文件、密碼文件拷貝至目標(biāo)端(Linux

目標(biāo)端相關(guān)操作:

首先編輯參數(shù)文件,修改相關(guān)路徑、參數(shù)等,并且創(chuàng)建相關(guān)目錄

例如:

mkdir -p /home/oracle/archivelog
mkdir -p /u02/app/oracle/admin/orcl/adump

啟動(dòng)數(shù)據(jù)庫(kù)到nomount狀態(tài)

export ORACLE_SID=orcl
sqlplus / as sysdba
startup nomount pfile='/home/oracle/rmanbackup/pfile20171029.ora'

開(kāi)始恢復(fù)控制文件(注意,初始化參數(shù)文件中已更改控制文件存放到ASM磁盤中)

* 恢復(fù)控制文件并啟動(dòng)到mount階段:


【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)


*
注冊(cè)備份文件


【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)


執(zhí)行恢復(fù)數(shù)據(jù)庫(kù)操作,此處注意,首先需要清理
rman中無(wú)效備份,如果不清理,需要制定,不然恢復(fù)時(shí)首先找的是原來(lái)備份,如下:

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)


*
此處執(zhí)行檢查備份、并清理無(wú)效、過(guò)期備份(簡(jiǎn)圖)

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)
 

再次執(zhí)行恢復(fù)操作:

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)


OK
,我們執(zhí)行recover

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)

Recovery Manager complete.  此處注意,這里執(zhí)行的是recover database,也未應(yīng)用之后的歸檔日志,再個(gè),在線日志并沒(méi)有原來(lái)的目錄,數(shù)據(jù)庫(kù)open時(shí)會(huì)默認(rèn)給創(chuàng)建到dbs目錄中,open后需要更改redo log位置。


recover
完成,下面開(kāi)始open

SQL> alter database open resetlogs upgrade; -- upgrade 版本由1120111204

Database altered.


打開(kāi)了,可以啊,完事了?
  redo log沒(méi)做,還有什么  想想……


首先我們需要把數(shù)據(jù)庫(kù)根本的正好,來(lái)執(zhí)行幾個(gè)腳本,
來(lái)完成最終的數(shù)據(jù)庫(kù)升級(jí)

需要執(zhí)行以下三個(gè)腳本, 順序要求,首先執(zhí)行catupgrd.sql,再依次執(zhí)行utlrp.sql catbundle.sql 

  還要注意一點(diǎn):執(zhí)行catupgrd.sql之前,需要重建臨時(shí)表空間,步驟如下:

create temporary tablespace temp01 tempfile '+DATA' SIZE 1G;
alter database default temporary tablespace temp01;
drop tablespace temp including contents and datafiles cascade constraints;



ok,可以執(zhí)行啦

SQL> @?/rdbms/admin/catbundle.sql psu apply   
SQL>@?/rdbms/admin/utlrp.sql
SQL>@?/rdbms/admin/catupgrd.sql     --
第一個(gè)執(zhí)行,它會(huì)頻繁切換歸檔,俺的測(cè)試空間已爆

為什么需要執(zhí)行這三個(gè)呢,我們看一下這幾個(gè)腳本的描述

第一個(gè),這個(gè)主要目的是將補(bǔ)丁信息更新到sql中,也會(huì)執(zhí)行其他東西,也就是視圖dba_registry_history

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)

第二個(gè),重新編譯無(wú)效對(duì)象

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)


最終要的,就是第三個(gè),必須執(zhí)行,這里說(shuō)的是
10.2及之前的版本,本次環(huán)境為11.2.0.1 11.2.0.4 ,也是必須執(zhí)行的腳本,如果你不想每次shutdown數(shù)據(jù)庫(kù)后,startup時(shí)還需要 alter database open upgrade  那就執(zhí)行此步驟。

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)

   腳本執(zhí)行完成,我們來(lái)看看版本信息:

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux) 


紅色部分為升級(jí)的一部分,可以忽略。第二行為執(zhí)行腳本catupgrd.sql   生成,描述信息:Upgraded from 11.2.0.1.0

第三行為腳本catbundle.sql執(zhí)行結(jié)果

  還有什么收尾工作嗎,對(duì)了,在線日志路徑還未更改,那就查看更改吧

 基本步驟如下:

select group#,status from v$log;
alter system archive log current;

alter database drop logfile group 3;
alter database add logfile group 3 ('+DATA') size 100m;
alter database drop logfile group 1;
alter database add logfile group 1 ('+DATA') size 100m;
alter database drop logfile group 2;
alter database add logfile group 2 ('+DATA') size 100m;

 更改完成,還需要執(zhí)行以下命令

create spfile from  pfile='/home/oracle/rmanbackup/pfile01.ora';

再次重啟數(shù)據(jù)庫(kù)驗(yàn)證,數(shù)據(jù)庫(kù)正常。

等等,我們需要追加歸檔日志恢復(fù)……

【RMAN】Oracle11g使用rman遷移升級(jí)數(shù)據(jù)庫(kù)(win_to_linux)

讀取歸檔日志報(bào)錯(cuò),終于用上了MOS文章中提到的失敗,那么如果源目標(biāo)歸檔日志都采用ASM方式存儲(chǔ)呢?會(huì)出現(xiàn)嗎?   留著吧不能用追加歸檔日志方式,就使用增量備份唄

  雖然說(shuō)使用邏輯方式遷移看似簡(jiǎn)單,例如expdp/impdp ,其實(shí)需要準(zhǔn)備的東西并不少,有興趣的可以測(cè)試下,遷移我們就可能遇到不同的操作系統(tǒng)、不同的版本甚至32位到64位,  不知道Oracle18C  能解決不?

 折騰半天,最后以600結(jié)束,也算無(wú)憾 ,其實(shí)挺扯淡……


 
就這樣吧,周一愉快

 

    
向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