qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          使用RMAN遷移數(shù)據(jù)庫(kù)到異機(jī)

            遷移數(shù)據(jù)庫(kù)的方法有多種,較為常用的則是使用RMAN來(lái)遷移。使用RMAN遷移數(shù)據(jù)庫(kù)屬于數(shù)據(jù)庫(kù)的物理備份與恢復(fù)范疇,整個(gè)過(guò)程中數(shù)據(jù)庫(kù)的相關(guān)信息是完整地鏡像。因此,基于此種方式還原恢復(fù)的數(shù)據(jù)庫(kù)用于測(cè)試會(huì)使得與真實(shí)的生產(chǎn)環(huán)境差異相對(duì)較小。本文描述了使用RMAN來(lái)還原Oracle 10g數(shù)據(jù)庫(kù)的過(guò)程。

            一、主要步驟

            1、備份數(shù)據(jù)庫(kù)

            2、ftp備份到目的服務(wù)器

            3、為目標(biāo)數(shù)據(jù)庫(kù)創(chuàng)建項(xiàng)目目錄

            4、為目標(biāo)數(shù)據(jù)庫(kù)創(chuàng)建pfile或spfile(使用RMAN還原或復(fù)制原pfile到目的服務(wù)器)

            5、還原控制文件

            6、還原數(shù)據(jù)文件

            7、OPEN 數(shù)據(jù)庫(kù)

            其實(shí),這幾個(gè)步驟比較好理解,整個(gè)實(shí)質(zhì)是對(duì)數(shù)據(jù)庫(kù)體系結(jié)構(gòu)以及數(shù)據(jù)庫(kù)整個(gè)啟動(dòng)過(guò)程的理解。

            下面對(duì)此進(jìn)行一下描述

            a、首先需要為實(shí)例的運(yùn)行環(huán)境創(chuàng)建相應(yīng)的目錄,如dump位置,datafile位置,以及archive位置等等

            如果是恢復(fù)到不同的路徑,則后續(xù)RMAN時(shí)需要使用set newname for datafile 方式更新到控制文件

            b、實(shí)例需要pfile來(lái)啟動(dòng),因此需要恢復(fù)pfile或spfile,然后將數(shù)據(jù)庫(kù)切換到nomount狀態(tài)

            c、接下來(lái)的一步是通過(guò)控制文件將數(shù)據(jù)庫(kù)切換到mount狀態(tài),因此需要恢復(fù)控制文件,然后再mount

            d、mount之后就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行還原(restore)操作

            e、還原完畢之后是對(duì)數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)(recovery)操作(restore和recover需要基于控制文件的備份信息或恢復(fù)目錄)

            f、最后是open數(shù)據(jù)庫(kù)

            二、遷移演示

            1、備份原數(shù)據(jù)庫(kù)

            此處演示的源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)使用相同的版本為Oracle 10g R2(10.2.0.3),操作系統(tǒng)都為suse 10 +Sp3

            備份過(guò)程略,有關(guān)備份腳本,請(qǐng)參考:linux 下RMAN備份shell腳本:http://blog.csdn.net/robinson_0612/article/details/8029245

            2、ftp所有的備份文件到需要恢復(fù)的服務(wù)器上

            打包整個(gè)備份集ftp到目標(biāo)服務(wù)器或scp到目標(biāo)服務(wù)器

            下面是ftp到目標(biāo)服務(wù)器解壓后包含的文件

          oracle@2go-devDB01uv:/u02/database/SY5221_RMAN/20121013> ls -hltr
          total 9.4G
          -rw-r--r-- 1 oracle oinstall 3.0K 2012-10-16 09:48 initSY5221.ora
          -rw-r--r-- 1 oracle oinstall 2.7G 2012-10-16 10:02 SY5221_lev0_201210130630_4unnkjvi_1_1
          -rw-r--r-- 1 oracle oinstall 3.1G 2012-10-16 10:04 SY5221_lev0_201210130630_4vnnkjvi_1_1
          -rw-r--r-- 1 oracle oinstall 938M 2012-10-16 10:07 SY5221_lev0_201210130630_arc_51nnkk2h_1_1
          -rw-r--r-- 1 oracle oinstall 935M 2012-10-16 10:08 SY5221_lev0_201210130630_arc_52nnkk2h_1_1
          -rw-r--r-- 1 oracle oinstall 930M 2012-10-16 10:10 SY5221_lev0_201210130630_arc_53nnkk31_1_1
          -rw-r--r-- 1 oracle oinstall  15M 2012-10-16 10:10 SY5221_lev0_cntl_bak_c-1468911009-20121013-00
          -rw-r--r-- 1 oracle oinstall  15M 2012-10-16 10:10 SY5221_lev0_cntl_bak_c-1468911009-20121013-01
          -rw-r--r-- 1 oracle oinstall 910M 2012-10-16 10:11 SY5221_lev0_201210130630_arc_54nnkk32_1_1

            3、創(chuàng)建所需的目錄(使用oracle用戶)

          oracle@2go-devDB01uv:~> more mkdir_sy5221.sh
          mkdir -p /u02/database/SY5221/flash_recovery_area
          mkdir -p /u02/database/SY5221
          mkdir -p /u02/database/SY5221/archive
          mkdir -p /u02/database/SY5221/backup
          mkdir -p /u02/database/SY5221/bdump
          mkdir -p /u02/database/SY5221/cdump
          mkdir -p /u02/database/SY5221/udump
          mkdir -p /u02/database/SY5221/controlf
          mkdir -p /u02/database/SY5221/oradata
          mkdir -p /u02/database/SY5221/redolog
          mkdir -p /u02/database/SY5221/undo
          mkdir -p /u02/database/SY5221/temp
          mkdir -p /u02/database/SY5221/ref_data
          mkdir -p /u02/database/SY5221/BNR
          mkdir -p /u02/database/SY5221/BNR/full
          mkdir -p /u02/database/SY5221/BNR/dump
          mkdir -p /u02/database/SY5221/dbcreatelogs

          ORACLE_SID=SY5221; export ORACLE_SID
          oracle@2go-devDB01uv:~> chmod u+x mkdir_sy5221.sh
          oracle@2go-devDB01uv:~> ./mkdir_sy5221.sh


           4、創(chuàng)建密碼文件

          oracle@2go-devDB01uv:~> cd $ORACLE_HOME/dbs
          oracle@2go-devDB01uv:~/OraHome10g/dbs> orapwd file=orapwSY5221 password=oracle force=y entries=10
          # Author : Robinson
          # Blog : http://blog.csdn.net/robinson_061

            5、使用pfile啟動(dòng)實(shí)例到nomount狀態(tài)

          oracle@2go-devDB01uv:~> cp /u02/database/SY5221_RMAN/20121013/initSY5221.ora $ORACLE_HOME/dbs
          oracle@2go-devDB01uv:~> export ORACLE_SID=SY5221
          oracle@2go-devDB01uv:~> sqlplus / as sysdba
          SQL> startup nomount;

            6、恢復(fù)控制文件并切換到mount狀態(tài)

          #再開(kāi)一個(gè)session
          oracle@2go-devDB01uv:~> export ORACLE_SID=SY5221
          oracle@2go-devDB01uv:~> $ORACLE_HOME/bin/rman target /
          RMAN> restore controlfile from '/u02/database/SY5221_RMAN/20121013/SY5221_lev0_cntl.bak_c-1468911009-20121013-01';
          RMAN> alter database mount;

            7、指定備份文件所在目錄

          RMAN> catalog start with '/u02/database/SY5221_RMAN/20121013'; #此命令用于掃描整個(gè)目錄的備份片或者歸檔日志文件等

            8、還原數(shù)據(jù)庫(kù)

          RMAN> restore database;

            9、恢復(fù)數(shù)據(jù)庫(kù)

          RMAN> recover database;

          unable to find archive log
          archive log thread=1 sequence=143388
          RMAN-00571: ===========================================================
          RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
          RMAN-00571: ===========================================================
          RMAN-03002: failure of recover command at 10/16/2012 11:32:54
          RMAN-06054: media recovery requesting unknown log: thread 1 seq 143388 lowscn 608805162
          #由于未復(fù)制聯(lián)機(jī)日志文件,此時(shí)提示需要seqence 143388,scn 608805162

          #在sqlplus提示符下繼續(xù)介質(zhì)恢復(fù)
          SQL> conn / as sysdba
          Connected.
          idle> recover database until cancel;
          ORA-00283: recovery session canceled due to errors
          ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

          SQL> recover database using backup controlfile until cancel;
          ORA-00279: change 608805162 generated at 10/13/2012 06:31:44 needed for thread 1
          ORA-00289: suggestion : /u02/database/SY5221/archive/arch_668881377_1_143388.arc
          ORA-00280: change 608805162 for thread 1 is in sequence #143388

          Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
          cancel      #輸入cancel,完成介質(zhì)恢復(fù)
          Media recovery cancelled.

            10、open 數(shù)據(jù)庫(kù)

            #如果open 不成功,請(qǐng)嘗試shutdown 之后再次open,如果仍然不成功使用隱藏參數(shù)_allow_resetlogs_corruption打開(kāi)數(shù)據(jù)庫(kù)

          SQL> alter database open resetlogs;

          Database altered.

            11、一致性關(guān)閉數(shù)據(jù)庫(kù)并重啟數(shù)據(jù)庫(kù)

          SQL> shutdown immediate;

          SQL> startup

          posted on 2013-06-13 10:25 順其自然EVO 閱讀(505) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫(kù)DB2

          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 咸阳市| 普定县| 华池县| 镇原县| 治多县| 寿光市| 凉山| 色达县| 新晃| 神池县| 微山县| 普安县| 合山市| 永城市| 嘉鱼县| 河津市| 沙湾县| 小金县| 陕西省| 独山县| 武冈市| 如皋市| 兴海县| 夏津县| 河西区| 红原县| 西青区| 蓬莱市| 乌兰察布市| 柘城县| 芮城县| 桃江县| 昌吉市| 顺昌县| 榆中县| 治多县| 罗源县| 崇仁县| 红安县| 郧西县| 邵阳市|