Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
          本文作者: junsansi???? 轉(zhuǎn)載網(wǎng)址: http://www.5ienet.com/index.shtml
          ?
          ?
          第四部分附章(1)RMAN備份來(lái)創(chuàng)建? 2008.01.22

          ??? 如果你看過(guò)三思之前的幾個(gè)筆記系列,那么對(duì)于rman 想必已經(jīng)非常熟悉,操作這個(gè)必然也不成問(wèn)題,如果你還沒(méi)有看過(guò),建議你先回去看看,然后再回來(lái)操作必然也沒(méi)有問(wèn)題,如果你一定不準(zhǔn)備看,沒(méi)關(guān)系,只要你嚴(yán)格按照實(shí)踐部分的步驟操作,我相信你一定也可以創(chuàng)建成功,操作應(yīng)該也沒(méi)有問(wèn)題,不過(guò)如果這樣你也覺(jué)著沒(méi)有問(wèn)題,那么我要告訴你,可能就這是最大的問(wèn)題:不知道做過(guò)什么,不知道該做什么,不知道為什么要做,一旦需求稍變,你甚至什么都不敢做。
          ?
          ??? 你什么都不用說(shuō),我知道,你還有問(wèn)題,下面,我們先來(lái)看你下意識(shí)的第一個(gè)問(wèn)題,為什么要用rman 創(chuàng)建物理standby?Oracle 告訴我們,有三點(diǎn):
          ?
          ??? ● RMAN 創(chuàng)建standby 是通過(guò)primary 的備份,因此不會(huì)對(duì)primary 有任何的影響
          ??? ● RMAN 自動(dòng)重命名OMF 的文件及路徑結(jié)構(gòu)。
          ??? ● RMAN 修復(fù)歸檔日志文件并執(zhí)行恢復(fù)以盡可能保證standby 與primary 數(shù)據(jù)一致相同。
          ?
          ??? 當(dāng)然,我們也應(yīng)該知道,上述這些都是形容詞,它只是為了強(qiáng)化意識(shí),說(shuō)到這里再多白話幾句,第一條呢還說(shuō)的過(guò)去(雖然你不用rman 備份,使用其它方式的備份創(chuàng)建standby 也不會(huì)對(duì)primary 造成影響),第二條第三條就完全不靠譜了,并不是說(shuō)它實(shí)現(xiàn)不了,恰恰相反,是它描述的太基礎(chǔ)了,形容手法有問(wèn)題,我舉個(gè)例子,比如你在魚缸里看到一條魚,你會(huì)不會(huì)形容說(shuō)哇這條魚能夠在水里游耶(死魚才不會(huì)在水里游呢)~~所以鑒別能力很重要,雖然這點(diǎn)我做的還很不夠,但是請(qǐng)首長(zhǎng)們放心,我一定會(huì)努力的,我一定會(huì)加強(qiáng)的,我一定會(huì)堅(jiān)持的!!!
          ?
          ??? 回到這個(gè)問(wèn)題上來(lái),為什么要用rman 來(lái)創(chuàng)建物理standby 呢,在我看來(lái)如果說(shuō)有優(yōu)勢(shì)那么就一點(diǎn):簡(jiǎn)單!
          ??? 另外在這里三思更明確的指出,使用RMAN 的duplicate 命令只能直接創(chuàng)建物理standby,幸還是不幸?
          ?
          ?
          一、準(zhǔn)備工作
          ?
          ??? 注意,在做任何操作之前,需要確認(rèn)以下幾點(diǎn):
          ?
          ??? ● 擁有至少一份通過(guò)rman 創(chuàng)建的備份;
          ??? ● 已經(jīng)在primary 數(shù)據(jù)庫(kù)設(shè)置了所有相關(guān)的初始化參數(shù);
          ??? ● 已經(jīng)創(chuàng)建了standby 的初始化參數(shù)文件并配置了所有相關(guān)的初始化參數(shù);
          ??? ● 已經(jīng)配置了實(shí)例,NetService,Listener 等;
          ??? ● 啟動(dòng)standby 實(shí)例到nomount 狀態(tài);
          ?
          ??? 然后:
          ?
          1、通過(guò)rman 創(chuàng)建standby 的控制文件
          ?
          ??? 創(chuàng)建standby 的控制文件前面我們提到通過(guò)sql 命令,使用非常簡(jiǎn)單,使用rman 命令創(chuàng)建與之同理,并且有兩種方式創(chuàng)建演示如下:

          ??? 1).RMAN> backup current controlfile for standby;
          ??? 2).RMAN> copy current controlfile for standby to 'e:\ora10g\oradata\jssrman\JSSRMAN01.CTL';


          ?
          2、定制standby 數(shù)據(jù)(日志)文件重命名策略
          ?
          ??? 為什么oracle 要提供重命名策略呢?因?yàn)閐g 配置非常靈活,standby 甚至可以與primary 在同一個(gè)數(shù)據(jù)庫(kù)。
          ?
          ??? 什么時(shí)候需要應(yīng)用重命名策略呢?如果standby 與primary 在同一臺(tái)服務(wù)器,或雖然不在同一臺(tái)服務(wù)器,但standby 的目錄結(jié)構(gòu)與primary 不同,這兩種情況下,都必須應(yīng)用重命名策略。如果standby 與primary 不在同一臺(tái)服務(wù)器,并且目錄結(jié)構(gòu)相同,那就不需要應(yīng)用重命名策略。
          ?
          ??? 如何應(yīng)用重命名策略呢? 多種方式, 比如我們的老朋友初始化參數(shù):db_file_name_convert,log_file_name_convert。還有rman 命令SET NEWNAME 或CONFIGURE AUXNAME
          等等,這些相關(guān)參數(shù)、命令的應(yīng)用我們都在"Duplicate 復(fù)制數(shù)據(jù)庫(kù)"系列中介紹并應(yīng)用過(guò),后面還會(huì)再次提及。
          ?
          ?
          二、大致流程

          ??? 通常情況下,rman 創(chuàng)建完standby 之后不會(huì)自動(dòng)執(zhí)行recover。
          ?
          ??? 如果你執(zhí)行duplicate 命令時(shí)沒(méi)有指定dorecover 參數(shù),則rman 自動(dòng)按照下面的步驟操作:
          ??? 1、RMAN 連接standby 與primary,及catalog(如果使用了的話);
          ??? 2、檢索catalog(nocatalog 的話是primary 數(shù)據(jù)庫(kù)的控制文件),確定primary 的備份以及standby 控制文件;
          ??? 3、如果使用介質(zhì)恢復(fù),RMAN 需要連接介質(zhì)管理器以獲取所需備份數(shù)據(jù);
          ??? 4、恢復(fù)standby 控制文件到standby 服務(wù)器;
          ??? 5、恢復(fù)primary 數(shù)據(jù)庫(kù)備份集中相應(yīng)數(shù)據(jù)文件到standby 服務(wù)器;
          ??? 6、rman 自動(dòng)將standby 數(shù)據(jù)庫(kù)打開(kāi)到mount 狀態(tài),不過(guò)不會(huì)自動(dòng)打開(kāi)redo 應(yīng)用。
          ?
          ??? 如果執(zhí)行duplicate 命令時(shí)指定了dorecover 參數(shù),則rman 會(huì)在執(zhí)行完第5 步后,接著執(zhí)行下列的操作:
          ??? 7、在所有數(shù)據(jù)都restored 之后,rman 自動(dòng)執(zhí)行recovery,如果recovery 過(guò)程需要?dú)w檔文件,但是這些文件又不在本地盤,則rman 會(huì)嘗試從備份中獲取。
          ??? 8、rman 執(zhí)行recovery 之前,你可以通過(guò)指定time,scn,logfile sequence 來(lái)確定recovery 的內(nèi)容,如果什么都不指定,則rman 一直recover 到最后一個(gè)歸檔文件。
          ??? 9、rman 自動(dòng)將standby 數(shù)據(jù)庫(kù)打開(kāi)到mount 狀態(tài),同樣也不會(huì)自動(dòng)打開(kāi)redo 應(yīng)用。
          ?
          ?
          三、方法及步驟

          ??? 基本上,可以分成二類:
          ?
          1、相同目錄結(jié)構(gòu)的創(chuàng)建

          ??? duplicate 不同服務(wù)器相同目錄結(jié)構(gòu)創(chuàng)建standby 的操作極為簡(jiǎn)單, 你即不需要?jiǎng)佑肈B_FILE_NAME_CONVER/LOG_FILE_NAME_CONVERT之類參數(shù),也不需要通過(guò)set newname之類命令,基本步驟如下:
          ?
          ??? 1) 確保已設(shè)置standby 服務(wù)器中所有相關(guān)的初始化參數(shù)。
          ??? 2) 確認(rèn)備份集中文件scn 大于或等于控制文件中的scn。
          ??? 3) 如果需要,可以通過(guò)set 命令指定time,scn 或log 序號(hào)以執(zhí)行不完全恢復(fù)。
          ??????? 例如:set until scn 152;
          ??????? 提示:注意如果有set,則set 與duplicate 必須在同一個(gè)run 命令塊中。
          ??? 4) 如果沒(méi)有配置自動(dòng)分配通道的話,需要手工指定至少一條輔助通道。
          ??? 5) 務(wù)必指定nofilenamecheck 參數(shù),我們之前"duplicate 復(fù)制數(shù)據(jù)庫(kù)"系列中就曾提到過(guò),異機(jī)操作路徑相同還必需指定NOFILENAMECHECK。因?yàn)榇颂巓racle 表現(xiàn)的很傻,它不知道你要恢復(fù)的路徑是在另一臺(tái)機(jī)器上,它只是認(rèn)為要恢復(fù)到的路徑怎么跟目標(biāo)數(shù)據(jù)庫(kù)表現(xiàn)的一樣呢?會(huì)不會(huì)是要覆蓋目標(biāo)數(shù)據(jù)庫(kù)啊,為了避免這種情形,于是它就報(bào)錯(cuò)。所以一旦異機(jī)恢復(fù),并且路徑相同,那么你必須通過(guò)指定NOFILENAMECHECK 來(lái)避免oracle 的自動(dòng)識(shí)別。
          ?
          ??? 例如腳本如下:

          ??? sql> duplicate target database for standby nofilenamecheck dorecover;


          ??? 注意,dorecover 并非是必須參數(shù),如果你不指定的話,則duplicate 修復(fù)數(shù)據(jù)文件到服務(wù)器,并自動(dòng)將standby 啟動(dòng)到mount 狀態(tài),不過(guò)并不會(huì)執(zhí)行恢復(fù)操作。
          ?
          2、不同目錄結(jié)構(gòu)的創(chuàng)建

          ??? 對(duì)于不同目錄結(jié)構(gòu)創(chuàng)建standby(與是否同一臺(tái)服務(wù)器就基本無(wú)關(guān)了),你需要對(duì)數(shù)據(jù)文件和日志文件路徑重新定義,那你的選擇可就多多了喲:
          ?
          ??? a. 使用初始化參數(shù)重定義數(shù)據(jù)文件及日志文件
          ?
          ??? 關(guān)于db_file_name_convert 和log_file_name_convert 兩個(gè)初始化參數(shù)的本領(lǐng)和套路大家已經(jīng)都很熟悉了,所以呢這里就不多做介紹。duplicate 命令在此處執(zhí)行的時(shí)候與相同目錄結(jié)構(gòu)執(zhí)行也沒(méi)什么不同,所以,你可以認(rèn)為,這是不同路徑下創(chuàng)建standby 中,最簡(jiǎn)單的方式。
          ?
          ?? b. SET NEWNAME 命令重定義數(shù)據(jù)文件
          ?
          ??? 步驟如下:
          ??? ● 確保已設(shè)置standby 服務(wù)器中所有相關(guān)的初始化參數(shù)。
          ??? ● 確認(rèn)備份集中文件scn 大于或等于控制文件中的scn。
          ??? ● 如果需要,可以通過(guò)set 命令指定time,scn 或log 序號(hào)以執(zhí)行不完全恢復(fù)。
          ??? ● 如果沒(méi)有配置自動(dòng)分配通道的話,需要手工指定至少一條輔助通道。
          ??? ● 通過(guò)set newname 命令為standby 數(shù)據(jù)文件指定新路徑
          ??? ● 執(zhí)行duplicate 命令。
          ?
          ??? 例如,腳本如下:

          ??? RUN
          ??? {
          ??? # Set new file names for the datafiles
          ??? SET NEWNAME FOR DATAFILE 1 TO '?/dbs/standby_data_01.f';
          ??? SET NEWNAME FOR DATAFILE 2 TO '?/dbs/standby_data_02.f';
          ??? . . .
          ??? DUPLICATE TARGET DATABASE FOR STANDBY DORECOVER;
          ??? }

          ?
          ? ? c. CONFIGURE AUXNAME 命令重定義數(shù)據(jù)文件
          ?
          ??? 操作步驟皆與上同,不再詳述,不過(guò)需要注意的是CONFIGURE AUXNAME 命令的格式,并且configure 命令不能在run 塊中執(zhí)行,例如腳本如下:

          ??? # set auxiliary names for the datafiles
          ??? CONFIGURE AUXNAME FOR DATAFILE 1 TO '/oracle/auxfiles/aux_1.f';
          ??? CONFIGURE AUXNAME FOR DATAFILE 2 TO '/oracle/auxfiles/aux_2.f';
          ??? . . .
          ??? CONFIGURE AUXNAME FOR DATAFILE n TO '/oracle/auxfiles/aux_n.f';
          ??? DUPLICATE TARGET DATABASE FOR STANDBY;

          ?
          ??? 最后,務(wù)必注意,configure auxname 命令執(zhí)行是一直生效的,因此duplicate 執(zhí)行完之后,推薦清除CONFIGURE AUXNAME。這樣就不會(huì)對(duì)未來(lái)的類似操作造成影響。
          ?
          ??? 例如:

          ??? CONFIGURE AUXNAME FOR DATAFILE 1 CLEAR;
          ??? CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;
          ??? . . .
          ??? CONFIGURE AUXNAME FOR DATAFILE n CLEAR;

          ?
          ?
          ??? 步驟和方法介紹完了,下面實(shí)際操作一把~~~~~~~~~~~~~
          ?
          ?
          ?
          posted on 2009-03-02 22:12 decode360 閱讀(218) 評(píng)論(0)  編輯  收藏 所屬分類: 10.DB_Tools
          主站蜘蛛池模板: 邻水| 云林县| 东城区| 遵化市| 桓仁| 双柏县| 蕉岭县| 上饶县| 泸溪县| 闽清县| 游戏| 招远市| 崇文区| 玉环县| 镇坪县| 海兴县| 普兰店市| 招远市| 平果县| 桃源县| 孝感市| 郯城县| 三门峡市| 筠连县| 鄱阳县| 漳州市| 六枝特区| 津南区| 同心县| 铜鼓县| 江山市| 西城区| 镇康县| 潍坊市| 镶黄旗| 广州市| 汽车| 泰州市| 汉源县| 凉山| 中西区|