大道浮屠訣---NBU7.7.3_oracle11G單機-單機(異機恢復WINDOWS2008平台)


現有環境說明:

一台WINDOWS2008R2:安裝有NBU7.7.3,作為服務端

一台WINDOWS2008R2:安裝有oracle11.2.0.3,作為數據庫服務器

現假設數據庫意外崩潰,需要進行恢復

 

前提環境搭建:

1、一台WINDOWS2008R2:安裝有於原版本一致的數據庫軟件(不必安裝實例),並安裝nbu客戶端,要求版本低於服務端

2、測試NBU服務端與新客戶端的連通性


安裝數據庫軟件:

1、添加本機hosts解析

2、解壓並合並安裝包

 

 

 3、雙擊setup執行安裝程序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 源庫目錄查看方法,服務里查看OracleService+SID的服務,查看屬性即可獲知

 

 

 

 

 

 

 

 

 

 

 

 

 

 

安裝完畢!


NBU客戶端安裝

添加hosts解析(服務端和客戶端互添解析)
雙擊Browser執行安裝程序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 安裝完成!


 

 

測試連通性:可通過測試備份客戶端文件來測試連通性

在連通性正常的情況下,在客戶端搜索備份集

執行搜索命令之前在服務端添加創建如下文件(允許異機恢復,不然搜索時回報錯EXIT STATUS 135: client is not validated to perform the requested operation)

 

 

 在客戶端NBU家目錄下執行命令bplist.exe -C oracle11g -t 4 -R \  【其中oracle11g根據實際情況,填寫源數據庫系統解析名】

 

 

 可以看出來,這里有兩份備份

接下來利用命令創建數據庫服務C:\app\Administrator\product\11.2.0\dbhome_1\BIN這個目錄下執行

oradim -NEW -SID xxx 【xxx根據源庫數據庫SID來】

 

 

 

前期准備到此全部結束

接下來開始恢復(步驟中的個別實例名、路徑等根據實際情況修改)

1、恢復spfile

方法一、根據其他數據庫的pfile進行修改

方法二、拷貝源庫SPFILE

方法三、rman恢復

這里使用方法一:

orcl.__db_cache_size=687865856
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base='C:\app\Administrator' #ORACLE_BASE set from environment
orcl.__pga_aggregate_target=704643072
orcl.__sga_target=1023410176
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=268435456
orcl.__streams_pool_size=16777216
*.audit_file_dest='C:\app\Administrator\admin\orcl\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='C:\app\Administrator\oradata\orcl\control01.ctl','C:\app\Administrator\fast_recovery_area\orcl\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='C:\app\Administrator\fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='C:\app\Administrator'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_dest_1='location=C:\app\Administrator\arch'
*.log_archive_format='arc_%S_%T_%R.log'
*.memory_target=1717567488
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

內存大小根據實際修改,庫名、路徑根據實際修改

把此pifle考到新客戶端中並啟動

set ORACLE_SID=orcl

rman target /

RMAN>startup nomount pfile='C:\app\Administrator\pfile.ora';

 

 

 2、恢復控制文件

run{
allocate channel c1 type sbt_tape;
SEND 'NB_ORA_SERV=test,NB_ORA_CLIENT=oracle11g';  #這里的CLIENT為源機解析名
restore controlfile from 'cntrl_p_t';
release channel c1;
}

 

 

 

 

 

 

啟動到mount狀態

 

 

3、恢復數據文件

這里有兩種情況

一是數據文件路徑不一致

二是數據文件路徑一致

這里暫時先討論一致的情況的恢復,(單機環境下恢復,路徑基本與源庫一致)

run{
allocate channel c1 type 'sbt_tape';
allocate channel c2 type 'sbt_tape';
SEND 'NB_ORA_SERV=test,NB_ORA_CLIENT=oracle11g';
restore database;
release channel c1;
release channel c2;
}

 

 

4、recover數據庫

reocver的方式有多種、這里按照追加到控制文件最新歸檔為止

run
{
allocate channel ch00 type 'sbt_tape';
allocate channel ch01 type 'sbt_tape';
SEND 'NB_ORA_SERV=test,NB_ORA_CLIENT=oracle11g';
recover database;
release channel ch00;
release channel ch01;
}

 

 

 直接寫recover database他會 在恢復完所有歸檔的時候繼續去請求下一個SCN,這時候你可以選擇取消下個一個SCN的恢復

SQL> recover database using backup controlfile until cancel;

 

 

 

5、打開數據庫

由於是恢復出來的數據庫,要用以下命令打開

SQL> alter database open resetlogs;

 

 

 

 

 

 

6、臨時表空間重建[這里針對的是源庫與新庫temp路徑不一致的情況,一般一致情況下,啟庫時會根據記錄的TEMP路徑創建temp文件]

備份的時候不備份臨時表空間所以恢復也就不恢復

查看新庫的臨時表空間,執行以下語句

SQL> select f.file#,t.ts#,f.name "File",t.name "Tablespace" from v$tempfile f,V$tablespace t where f.ts# = t.ts#; 

 

 

 

 我這里看到是在這個位置【注:這里查到的位置是之前源庫臨時表空間的位置】

接下來重建臨時表空間

一、 create temporary  tablespace TEMP2 TEMPFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP02.DBF' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;

 

 

二、alter database default temporary tablespace TEMP2;

 

 

三、drop tablespace TEMP including contents and datafiles;

 

 

再次查看

 

 

 

 

至此,WINDOWS_FOR_NBU_ORACLE_單機-單機恢復完畢!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM