【RMAN】Oracle11g使用rman遷移升級資料庫(win_to_linux)
前言:在遷移Oracle資料庫的過程中,我們會遇到很多種情況,例如32位作業系統下的資料庫遷移到64位,不同作業系統平臺之間的遷移,那麼怎麼選擇遷移工具呢, 首先我們需要確認遷移源端和目標端的環境,再次停機時間,資料量大小,相對而言,邏輯遷移更穩妥一點,不管是手動的expdp/impdp 還是藉助其他工具,OGG之類,像高水位這樣的問題也會得到緩解。 rman也是一項工具,那麼什麼時候選擇呢,或者選擇的利弊呢? 版本限制、bug有點多,rman能把資料庫的環境完全複製過來,在一些場景中是需要的。
下面做個測試,源端環境: Windows2008 64位+Oracle11.2.0.1+ filesystem
目標端環境:Redhat6.7
x64+oracle11.2.0.4+ASM
首先我們確認一下位元組:
下面開始透過rman執行遷移工作
在Windows環境下執行備份:
透過以下語句生成pfile檔案:
create pfile='d:\pfile20171029.ora' from spfile;
將備份檔案、歸檔日誌、pfile檔案、密碼檔案複製至目標端(Linux)
目標端相關操作:
首先編輯引數檔案,修改相關路徑、引數等,並且建立相關目錄
例如:
mkdir -p
/home/oracle/archivelog
mkdir -p /u02/app/oracle/admin/orcl/adump
啟動資料庫到nomount狀態
export
ORACLE_SID=orcl
sqlplus / as sysdba
startup nomount pfile='/home/oracle/rmanbackup/pfile20171029.ora'
開始恢復控制檔案(注意,初始化引數檔案中已更改控制檔案存放到ASM磁碟中)
* 恢復控制檔案並啟動到mount階段:
* 註冊備份檔案
執行恢復資料庫操作,此處注意,首先需要清理rman中無效備份,如果不清理,需要制定,不然恢復時首先找的是原來備份,如下:
*此處執行檢查備份、並清理無效、過期備份(簡圖)
再次執行恢復操作:
OK,我們執行recover
Recovery Manager complete. 此處注意,這裡執行的是recover database,也未應用之後的歸檔日誌,再個,線上日誌並沒有原來的目錄,資料庫open時會預設給建立到dbs目錄中,open後需要更改redo log位置。
recover完成,下面開始open
SQL> alter database open resetlogs upgrade; -- upgrade 版本由11201到11204
Database altered.
開啟了,可以啊,完事了? redo
log沒做,還有什麼 想想……
首先我們需要把資料庫根本的正好,來執行幾個指令碼, 來完成最終的資料庫升級
需要執行以下三個指令碼, 順序要求,首先執行catupgrd.sql,再依次執行utlrp.sql catbundle.sql
還要注意一點:執行catupgrd.sql之前,需要重建臨時表空間,步驟如下:
create
temporary tablespace temp01 tempfile '+DATA' SIZE 1G;
alter database default temporary tablespace temp01;
drop tablespace temp including contents and datafiles cascade constraints;
ok,可以執行啦
SQL>
@?/rdbms/admin/catbundle.sql psu apply
SQL>@?/rdbms/admin/utlrp.sql
SQL>@?/rdbms/admin/catupgrd.sql --第一個執行,它會頻繁切換歸檔,俺的測試空間已爆
為什麼需要執行這三個呢,我們看一下這幾個指令碼的描述
第一個,這個主要目的是將補丁資訊更新到sql中,也會執行其他東西,也就是檢視dba_registry_history
第二個,重新編譯無效物件
最終要的,就是第三個,必須執行,這裡說的是10.2及之前的版本,本次環境為11.2.0.1 到 11.2.0.4 ,也是必須執行的指令碼,如果你不想每次shutdown資料庫後,startup時還需要 alter database open
upgrade 那就執行此步驟。
指令碼執行完成,我們來看看版本資訊:
紅色部分為升級的一部分,可以忽略。第二行為執行指令碼catupgrd.sql 生成,描述資訊:Upgraded from 11.2.0.1.0
第三行為指令碼catbundle.sql執行結果
還有什麼收尾工作嗎,對了,線上日誌路徑還未更改, 那就檢視更改吧
基本步驟如下:
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;
更改完成,還需要執行以下命令
create spfile from pfile='/home/oracle/rmanbackup/pfile01.ora';
再次重啟資料庫驗證,資料庫正常。
等等,我們需要追加歸檔日誌恢復……
讀取歸檔日誌報錯,終於用上了MOS文章中提到的失敗, 那麼如果源目標歸檔日誌都採用ASM方式儲存呢?會出現嗎? 留著吧 不能用追加歸檔日誌方式,就使用增量備份唄
雖然說使用邏輯方式遷移看似簡單,例如expdp/impdp ,其實需要準備的東西並不少,有興趣的可以測試下,遷移 我們就可能遇到不同的作業系統、不同的版本甚至32位到64位, 不知道Oracle18C 能解決不?
折騰半天,最後以600結束,也算無憾 , 其實挺扯淡……
就這樣吧, 週一愉快
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2146574/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【遷移】使用rman遷移資料庫資料庫
- 用rman遷移資料庫資料庫
- 使用RMAN進行Oracle資料庫遷移Oracle資料庫
- 使用RMAN遷移資料庫到異機資料庫
- 使用RMAN進行資料遷移
- Oracle資料庫遷移之一:RMANOracle資料庫
- RMAN遷移資料庫(rac or single)資料庫
- 利用RMAN跨平臺遷移資料庫資料庫
- 使用RMAN遷移單庫到RAC
- 使用RMAN遷移檔案系統資料庫到ASM資料庫ASM
- 使用RMAN完成跨平臺資料遷移
- 使用RMAN執行oracle ASM資料遷移OracleASM
- 【資料遷移】RMAN遷移資料庫到ASM(一)建立ASM磁碟組資料庫ASM
- 透過rman全庫備份遷移資料庫資料庫
- 【資料遷移】RMAN遷移資料庫到ASM(三)遷移onlinelog等到ASM資料庫ASM
- Oracle 利用RMAN 完成資料遷移Oracle
- 【RMAN】Oracle11g透過rman升級到12cOracle
- 資料庫的升級及遷移資料庫
- 【資料遷移】RMAN遷移資料庫到ASM(二)切換資料檔案到ASM資料庫ASM
- 通過RMAN遷移資料並升級資料庫10.2.0.3->11.2.0.3【相同位數與平臺版】資料庫
- 使用rman將資料庫遷移到ASM例項資料庫ASM
- RMAN之CONVERT整庫遷移
- rman進行跨平臺資料遷移
- 用rman從檔案系統遷移資料庫到asm資料庫ASM
- RMAN COPY實現ORACLE資料庫儲存遷移的方案Oracle資料庫
- 使用rman copy將資料庫遷移到ASM例項資料庫ASM
- Rman 實現oracle11g資料庫cloneOracle資料庫
- ZT:資料庫Oracle11g新特性RMAN資料庫Oracle
- Oracle11g使用rman從rac遷移到racOracle
- 使用 RMAN 同步資料庫資料庫
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 【RMAN】rman使用NORESTELOGS 方式恢復資料庫REST資料庫
- 【RMAN】使用RMAN duplicate複製同機資料庫資料庫
- 管理RMAN資料庫——RMAN使用者手冊資料庫
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- RMAN同位元組序跨平臺跨版本遷移資料庫資料庫
- 應用RMAN Transportable Database進行資料庫跨平臺遷移Database資料庫
- 四、用rman從檔案系統遷移資料庫到asm資料庫ASM