qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          使用RMAN遷移數據庫到異機

            遷移數據庫的方法有多種,較為常用的則是使用RMAN來遷移。使用RMAN遷移數據庫屬于數據庫的物理備份與恢復范疇,整個過程中數據庫的相關信息是完整地鏡像。因此,基于此種方式還原恢復的數據庫用于測試會使得與真實的生產環境差異相對較小。本文描述了使用RMAN來還原Oracle 10g數據庫的過程。

            一、主要步驟

            1、備份數據庫

            2、ftp備份到目的服務器

            3、為目標數據庫創建項目目錄

            4、為目標數據庫創建pfile或spfile(使用RMAN還原或復制原pfile到目的服務器)

            5、還原控制文件

            6、還原數據文件

            7、OPEN 數據庫

            其實,這幾個步驟比較好理解,整個實質是對數據庫體系結構以及數據庫整個啟動過程的理解。

            下面對此進行一下描述

            a、首先需要為實例的運行環境創建相應的目錄,如dump位置,datafile位置,以及archive位置等等

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

            b、實例需要pfile來啟動,因此需要恢復pfile或spfile,然后將數據庫切換到nomount狀態

            c、接下來的一步是通過控制文件將數據庫切換到mount狀態,因此需要恢復控制文件,然后再mount

            d、mount之后就可以對數據庫進行還原(restore)操作

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

            f、最后是open數據庫

            二、遷移演示

            1、備份原數據庫

            此處演示的源數據庫與目標數據庫使用相同的版本為Oracle 10g R2(10.2.0.3),操作系統都為suse 10 +Sp3

            備份過程略,有關備份腳本,請參考:linux 下RMAN備份shell腳本:http://blog.csdn.net/robinson_0612/article/details/8029245

            2、ftp所有的備份文件到需要恢復的服務器上

            打包整個備份集ftp到目標服務器或scp到目標服務器

            下面是ftp到目標服務器解壓后包含的文件

          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、創建所需的目錄(使用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、創建密碼文件

          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啟動實例到nomount狀態

          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、恢復控制文件并切換到mount狀態

          #再開一個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'; #此命令用于掃描整個目錄的備份片或者歸檔日志文件等

            8、還原數據庫

          RMAN> restore database;

            9、恢復數據庫

          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
          #由于未復制聯機日志文件,此時提示需要seqence 143388,scn 608805162

          #在sqlplus提示符下繼續介質恢復
          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,完成介質恢復
          Media recovery cancelled.

            10、open 數據庫

            #如果open 不成功,請嘗試shutdown 之后再次open,如果仍然不成功使用隱藏參數_allow_resetlogs_corruption打開數據庫

          SQL> alter database open resetlogs;

          Database altered.

            11、一致性關閉數據庫并重啟數據庫

          SQL> shutdown immediate;

          SQL> startup

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

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 林州市| 平度市| 阜康市| 五华县| 秦安县| 五峰| 武平县| 塔城市| 陈巴尔虎旗| 临夏市| 阿拉善右旗| 株洲县| 资中县| 镇江市| 辽阳市| 沈丘县| 新化县| 衡山县| 乳山市| 邹城市| 丹东市| 元阳县| 清丰县| 乌拉特后旗| 康马县| 咸丰县| 乐平市| 潞西市| 诏安县| 囊谦县| 宜城市| 迁西县| 永州市| 仁布县| 靖江市| 望江县| 冷水江市| 开远市| 阿克陶县| 大荔县| 都兰县|