中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

記錄一次Oracle 11.2.0.4 RAC異地恢復到單實例

發布時間:2020-08-10 15:58:30 來源:ITPUB博客 閱讀:145 作者:Z少校 欄目:關系型數據庫

此次記錄一下Oracle RAC集群備份異地單實例恢復操作。主要記錄關鍵操作,由于保密原因不粘貼詳細操作流程。

一、環境:

原庫:

操作系統:Redhat 6.5
數據庫:Oracle 11.2.0.4 RAC (雙節點)
工具:rman
IP地址:192.168.10.10(節點1)

異地恢復庫:

操作系統:Centos 6.5
數據庫:Oracle 11.2.0.4 (單實例)
工具:rman
IP地址:192.168.10.123

二、操作

1.原庫兩個節點全部停止應用服務,停掉監聽,防止再有連接進來進行操作。然后在一個節點(192.168.10.10)使用 rman工具進行整庫備份,在執行備份前手動歸檔一次,主要備份數據庫、歸檔文件、控制文件。至于spfile參數文件可以不用備份,因為RAC環境的參數文件到單實例上還是需要修改很多地方的,可以在原庫使用命令 create pfile=’/home/oracle/orclint.ora’ from spfile 生成pfile文件。

2.將備份后的數據庫、歸檔、控制文件以及生成的pfile文件使用scp遠程復制到192.168.10.123(異地庫),放在了/data/rmanbackup目錄下

3.192.168.10.123(異地庫)已經安裝了Oracle 11.2.0.4軟件,并未建庫。設置環境變量,尤其是ORACLE_SID與192.168.10.10(原庫)集群環境一致,便于恢復操作。

4.根據傳過來的pfile文件里的內容進行修改,我大致列一下修改后的參數文件:

*.audit_file_dest='/u01/app/oracle/admin/hkrt/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/hkrt/control01.dbf','/u01/app/oracle/oradata/hkrt/control02.dbf'
*.db_block_size=8192
*.db_domain=''
*.db_name='ORCL'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=hkrtXDB)'
*.log_archive_dest_1='LOCATION=/u01/arch'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=5034213376
*.open_cursors=300
*.processes=400

5.參數文件修改完后剩下的操作基本都在異地庫了,sqlplus進入空實例,然后根據修改后的pfile進行啟動到nomount狀態(注意:參數文件中的內存配置、進程數配置要符合異地庫內存,不然內存溢出,啟動失敗)。

參考命令:
startup nomount from pfile=’/data/rmanbackup/orclinit.ora’;

(由于是測試,所有并沒有備份密碼文件,可以在數據庫恢復后重置用戶密碼)

6.講數據庫啟動到nomount狀態,登陸rman (rman target /),就可以看到數據庫狀態為nomount狀態。然后進行控制文件的恢復,參考命令:

restore controlfile from ‘/data/rmanbackup//ctl_ORCL_20150830_6552_1’;

執行完控制文件還原操作后,控制文件會恢復到參數文件中指定的目錄下

7.控制文件恢復后就可以啟動到mount狀態了,

RMAN> alter database mount;

啟動到mount狀態先別著急恢復數據庫,需要先將備份集注冊到rman中

RMAN> catalog start with ‘/data/rmanbackup’;

(路徑就是你存放所有備份的目錄)

注冊完成后,先交叉校驗備份集:

RMAN> crosscheck backupset;

刪除過期的備份,因為你備份是異地備份,所以在RAC中記錄的備份全部過期,進行清除

RMAN> delete expired backup;

8.現在開始恢復數據庫文件,因為RAC數據庫數據文件、日志文件等存儲路徑時在ASM磁盤中,路徑基本是以 ‘+DATA’ 開頭,在執行restore database 命令前需要進行文件路徑轉換。

先在原庫上生成關于數據文件路徑轉換的腳本,便于恢復操作,腳本如下(在原庫查詢得出腳本):

select 'set newname for datafile ' || a.FILE# || ' to "' || a.NAME || '";' from v$datafile a
union all
select 'set newname for tempfile ' || a.FILE# || ' to "' || a.NAME || '";' from v$tempfile a;

得到結果為:

SETNEWNAMEFORDATAFILE'||A.FILE#||'TO"'||A.NAME||'";'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------set newname for datafile 1 to "+DATA/jmrac/datafile/system.268.877470209";set newname for datafile 2 to "+DATA/jmrac/datafile/sysaux.269.877470211";set newname for datafile 3 to "+DATA/jmrac/datafile/undotbs1.270.877470213";set newname for datafile 4 to "+DATA/jmrac/datafile/users.271.877470213";set newname for datafile 5 to "+DATA/jmrac/datafile/example.279.877470401";set newname for datafile 6 to "+DATA/jmrac/datafile/undotbs2.280.877470779";set newname for tempfile 1 to "+DATA/jmrac/tempfile/temp.278.877470381";。。。。。。。。

會將所有涉及到的數據文件全部顯示,我這里就簡單寫個大概,得到以上腳本后進行簡單的編輯:

run{allocate channel ch2 device type disk;set newname for datafile 1 to "+DATA/jmrac/datafile/system.268.877470209";set newname for datafile 2 to "+DATA/jmrac/datafile/sysaux.269.877470211";set newname for datafile 3 to "+DATA/jmrac/datafile/undotbs1.270.877470213";set newname for datafile 4 to "+DATA/jmrac/datafile/users.271.877470213";set newname for datafile 5 to "+DATA/jmrac/datafile/example.279.877470401";set newname for datafile 6 to "+DATA/jmrac/datafile/undotbs2.280.877470779";set newname for tempfile 1 to "+DATA/jmrac/tempfile/temp.278.877470381";。。。。。。。。
restore database;switch datafile all;switch tempfile all;}

然后就可以在rman中運行以上修改好的 run 塊(腳本)進行數據庫恢復。此處我并沒有生成關于redo日志的轉換語句,因為我在講redo日志轉換放到 run腳本塊中執行總會提示 +DATA開頭的路徑不存在,所以就省略了redo,但是我發現數據庫恢復并未受影響,而且在恢復后redo日志路徑已經轉換了。

9.在執行以上 run 腳本命令后,會提示報錯:

RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 03/25/2015 09:56:55RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore

其實所有的備份都在,就是報這個錯,然后查看資料,需要進行一下操作:

RMAN> list incarnation;

List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time


1 1 JBDB 1285701182 PARENT 1 15-AUG-09
2 2 JBDB 1285701182 PARENT 945184 12-JUL-13

然后又在原庫上做同樣的查詢:

RMAN> list incarnation;

List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time


1 1 JBDB 1285701182 PARENT 1 15-AUG-09
2 2 JBDB 1285701182 PARENT 945184 12-JUL-13

然后在異地庫重置 incarnation 為2:

RMAN> reset database to incarnation 2;

執行后再次執行 run 腳本塊:

RMAN> run{
allocate channel ch2 device type disk;
set newname for datafile 1 to "+DATA/jmrac/datafile/system.268.877470209";
set newname for datafile 2 to "+DATA/jmrac/datafile/sysaux.269.877470211";
set newname for datafile 3 to "+DATA/jmrac/datafile/undotbs1.270.877470213";
set newname for datafile 4 to "+DATA/jmrac/datafile/users.271.877470213";
set newname for datafile 5 to "+DATA/jmrac/datafile/example.279.877470401";
set newname for datafile 6 to "+DATA/jmrac/datafile/undotbs2.280.877470779";
set newname for tempfile 1 to "+DATA/jmrac/tempfile/temp.278.877470381";
。。。。。。。。
restore database;switch datafile all;switch tempfile all;}

執行正常進行,恢復沒有出現問題。

10.數據庫文件恢復后,執行recover database會報錯,提示缺少歸檔文件:

RMAN> recover database; Starting recover at 
using channel ORA_DISK_1
starting media recovery
RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of recover command at 
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of archived log for thread 1 with sequence 71125 and starting SCN of 16888076231found to restore

兩種方式:
一是在原庫找到歸檔文件然后傳到異地庫服務器,注冊歸檔信息,然后再次recover恢復數據庫,前提是歸檔文件能找到。

注冊歸檔信息(歸檔文件為 arch_71125_xxxx):

RMAN> catalog archivelog ‘/data/rmanbackup/arch_71125_xxxx’;

RMAN> recover database;

(恢復時提示找不到一個unknow的歸檔,不影響恢復)

二是按照提示的scn進行不完全恢復:
RAMN> run{
set until scn 16888076231;
recover database;
}

因為我歸檔文件并未找到,所以是第二種方式。

11.恢復完成后登陸數據庫然后打開數據庫(resetlogs方式):

SQL> alter database open resetlogs;

Database altered.

至此恢復完成。生產環境在恢復成功后一定要重新進行備份。

以上是大概的操作過程,僅供參考,在生產環境執行時一定要慎之又慎,做好數據備份,如果有不同情況,也歡迎評論交流,共同學習。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太白县| 白银市| 商河县| 林州市| 思南县| 大荔县| 双峰县| 曲阳县| 革吉县| 宁德市| 叶城县| 通城县| 西乡县| 南漳县| 泽州县| 寻乌县| 惠东县| 古浪县| 九龙城区| 林甸县| 腾冲县| 连南| 年辖:市辖区| 随州市| 铜陵市| 苍南县| 新化县| 上饶县| 尉氏县| 东港市| 静海县| 云阳县| 晋江市| 兴城市| 长泰县| 和静县| 新密市| 青铜峡市| 凤翔县| 大庆市| 丰城市|