oracle實驗記錄 (oracle 10G dataguard(9)rman恢復與dg)
rman 恢復與 standby
先將primary xh 註冊一個catalog orcl
C:\>set oracle_sid=orcl
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 11月 12 09:17:59 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 100664000 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select name from v$database;
NAME
---------
ORCL
SQL> create user rman identified by rman default tablespace users;
使用者已建立。
SQL> grant connect,resource to rman;
授權成功。
SQL> grant recovery_catalog_owner to rman;
授權成功。
SQL>
C:\>set oracle_sid=XH
C:\>rman target '/ as sysdba' catalog rman/rman@orcl
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 11月 12 09:24:18 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: XH (DBID=3098165337)
連線到恢復目錄資料庫
RMAN> register database
2> ;
註冊在恢復目錄中的資料庫
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> list backup of database;
備份集列表
===================
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
63 Full 594.45M DISK 00:01:53 11-11月-09
BP 關鍵字: 67 狀態: AVAILABLE 已壓縮: NO 標記: TAG20091111T170844
段名:G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_11_11\O1_MF_
NNNDF_TAG20091111T170844_5HNZRXQX_.BKP
備份集 63 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
1 Full 580059 11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSTEM0
1.DBF
2 Full 580059 11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDOTBS
01.DBF
3 Full 580059 11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSAUX0
1.DBF
4 Full 580059 11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USERS01
.DBF
5 Full 580059 11-11月-09 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAMPLE
01.DBF
primary 設定實時應用
SQL> alter system set log_archive_dest_2='service=standby1 lgwr valid_for=(onlin (primary)
e_logfiles,primary_role) db_unique_name=standby1';
系統已更改。
SQL> alter database add standby logfile group 4 'e:\standby\standby04.log' size (standby)
50m;
資料庫已更改。
SQL> select process,client_process,status,sequence# from v$managed_standby; (standby)
PROCESS CLIENT_P STATUS SEQUENCE#
--------- -------- ------------ ----------
ARCH ARCH CONNECTED 0
ARCH ARCH CONNECTED 0
RFS LGWR IDLE 12
RFS ARCH IDLE 0
RFS N/A IDLE 0
SQL> select dbid,group#,bytes,status ,first_change#,last_change# from v$standby_ (standby)
log;
DBID GROUP# BYTES STATUS FIRST_CHANGE# LAST_CHANGE#
---------- ---------- ---------- ---------- ------------- ------------
3098165337 4 52428800 ACTIVE 698275 698436
SQL> create table t1 (a int) tablespace xhtr; (primary)
表已建立。
SQL> insert into t1 values(1); (primary)
已建立 1 行。
SQL> commit; (primary)
提交完成。
SQL>
SQL> col file_name format a50
SQL> select file_id ,file_name from dba_data_files; (primary)
FILE_ID FILE_NAME
---------- --------------------------------------------------
4 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USERS01.DBF
3 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSAUX01.DBF
2 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDOTBS01.DBF
1 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSTEM01.DBF
5 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAMPLE01.DBF
6 G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF
已選擇6行。
SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;
資料庫已更改。
SQL> alter database recover managed standby database cancel; (standby)
資料庫已更改。
SQL> alter database open (standby)
2 ;
資料庫已更改。
SQL> select * from t1;(standby)
A
----------
1
RMAN> delete noprompt backup ~~~刪除下備份
2> ;
實驗利用standby備份 完全恢復primary
C:\>set oracle_sid=standby1
C:\>rman target '/ as sysdba' catalog rman/rman@orcl (連線catalog ,standby 使用standby的資料檔案備份)
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 11月 12 10:11:47 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: XH (DBID=3098165337)
連線到恢復目錄資料庫
RMAN> backup datafile 6;
啟動 backup 於 12-11月-09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=147 devtype=DISK
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00006 name=E:\STANDBY\DATAFILE\XHTR.DBF *****************
通道 ORA_DISK_1: 正在啟動段 1 於 12-11月-09
通道 ORA_DISK_1: 已完成段 1 於 12-11月-09
段控制程式碼=E:\STANDBY\ARCHIVE\STANDBY1\BACKUPSET\2009_11_12\O1_MF_NNNDF_TAG20091112T
101239_5HPVRQMK_.BKP 標記=TAG20091112T101239 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01
完成 backup 於 12-11月-09
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF;
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 113246912 bytes
Database Buffers 167772160 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 6 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 6: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF'
SQL> alter database datafile 6 offline;(primary)
資料庫已更改。
C:\>set oracle_sid=XH
C:\>rman target '/ as sysdba' catalog rman/rman@orcl
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 11月 12 10:25:03 20
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫: XH (DBID=3098165337, 未開啟)
連線到恢復目錄資料庫
RMAN> run{restore datafile 6;
2> recover datafile 6;
3> }
啟動 restore 於 12-11月-09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=139 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00006恢復到G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF
通道 ORA_DISK_1: 正在讀取備份段 E:\STANDBY\ARCHIVE\STANDBY1\BACKUPSET\2009_11_12
\O1_MF_NNNDF_TAG20091112T101239_5HPVRQMK_.BKP
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\STANDBY\ARCHIVE\STANDBY1\BACKUPSET\2009_11_12\O1_MF_NNNDF_TAG2009111
2T101239_5HPVRQMK_.BKP 標記 = TAG20091112T101239
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:04
完成 restore 於 12-11月-09
啟動 recover 於 12-11月-09
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:00
完成 recover 於 12-11月-09
RMAN>
SQL> alter database datafile 6 online; (primary)
資料庫已更改。
SQL> select * from t1; (primary)
A
----------
1
standby controlfile丟失 恢復
SQL> show parameter control (standby)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string E:\STANDBY\DATAFILE\CONTROL01.
CTL
SQL> shutdown immediate; (standby)
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del E:\STANDBY\DATAFILE\CONTROL01.CTL (standby)
SQL> startup (standby)
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 96469696 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
ORA-00205: ?????????, ??????, ???????
SQL> alter database create standby controlfile as 'e:\standby\datafile\control01 (primry)
.ctl';
資料庫已更改。
SQL> alter system switch logfile;(primary)
系統已更改。
primary要 切換一起,否則 standby open時報 ORA-16004:
SQL> alter database recover managed standby database disconnect from session; (standby)
資料庫已更改。
SQL> alter database recover managed standby database cancel;(standby)
資料庫已更改。
SQL> alter database open;(standby)
資料庫已更改。
standby datafile 丟失
SQL> shutdown immediate; (standby)
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del e:\standby\datafile\xhtr.dbf (standby)
SQL> startup (standby)
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 96469696 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
ORA-16004: 備份資料庫需要恢復
ORA-01157: 無法標識/鎖定資料檔案 6 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'
C:\>rman target system/a831115@standby1 catalog rman/rman@orcl
RMAN> run{set newname for datafile 6 to 'e:\standby\datafile\xhtr.dbf';
2> restore datafile 6;
3> }
SQL> alter database recover managed standby database disconnect from session; (standby)
資料庫已更改。
SQL> alter database recover managed standby database cancel;(standby)
資料庫已更改。
SQL> alter database open;(standby)
資料庫已更改。
SQL> select * from t1;(standby)
A
----------
1
SQL> insert into t1 values(2);(primary)
已建立 1 行。
SQL> commit;(primary)
提交完成。
SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;
資料庫已更改。
SQL> alter database recover managed standby database cancel; (standby)
資料庫已更改。
SQL> alter database open ; (standby)
資料庫已更改。
SQL> select * from t1; (standby)
A
----------
1
2
SQL>
SQL> select count(*) from v$archived_log; (standby)
COUNT(*)
----------
4
SQL> select applied from v$archived_log;(standby)
APP
---
YES
YES
YES
YES
SQL> insert into t1 values(3);(primary)
已建立 1 行。
SQL> commit;(primary)
提交完成。
SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;
資料庫已更改。
SQL> alter database recover managed standby database cancel; (standby)
SQL> shutdown immediate; (standby)
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del e:\standby\datafile\xhtr.dbf; (standby)
SQL> startup (standby)
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 96469696 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
ORA-16004: 備份資料庫需要恢復
ORA-01157: 無法標識/鎖定資料檔案 6 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'
SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;
資料庫已更改。
SQL> alter database recover managed standby database cancel; (standby)
資料庫已更改。
SQL> alter database open; (standby)
alter database open
*
第 1 行出現錯誤:
ORA-16004: 備份資料庫需要恢復
ORA-01152: 檔案 6 沒有從過舊的備份中恢復
ORA-01110: 資料檔案 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'
SQL> alter database recover managed standby database disconnect from session; (standby)
資料庫已更改。
SQL> alter database recover managed standby database cancel; (standby)
資料庫已更改。
SQL> alter database open; (standby)
alter database open
*
第 1 行出現錯誤:
ORA-16004: 備份資料庫需要恢復
ORA-01152: 檔案 6 沒有從過舊的備份中恢復
ORA-01110: 資料檔案 6: 'E:\STANDBY\DATAFILE\XHTR.DBF'
RMAN> run{set newname for datafile 6 to 'e:\standby\datafile\xhtr.dbf';
2> restore datafile 6;
3> recover datafile 6;
4> }
RMAN-03002: recover 命令 (在 11/12/2009 13:56:52 上) 失敗
RMAN-06067: RECOVER DATABASE 要求一個備份控制檔案或建立的控制檔案
SQL> alter system switch logfile;
系統已更改。
SQL> select count(*) from v$archived_log;(primary)
COUNT(*)
----------
5
SQL> alter database recover managed standby database using current logfile disco (standby)
nnect from session;
資料庫已更改。
SQL> alter database recover managed standby database cancel;(standby)
資料庫已更改。
SQL> alter database open ;(standby)
資料庫已更改。
SQL> select * from t1;(standby)
A
----------
1
2
3
總結:如果恢復standby丟失的datafile,需要使用歸檔到standby_file_dest的 archived log,如果向上面 一樣 使用實時應用 並沒有 歸檔到standby 的standby file dest,那麼恢復restore 到standby的datafile沒有可以應用的archived log,無法恢復完成,此時需要primary 執行一個歸檔~~讓standby 產生一個歸檔,並應用既可.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-619719/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE DG從庫 Rman備份恢復Oracle
- Oracle RMAN恢復測試Oracle
- Oracle RMAN 表空間恢復Oracle
- 【Oracle 恢復表空間】 實驗Oracle
- Oracle 備份恢復篇之RMAN catalogOracle
- Oracle9i RMAN 的優缺點及RMAN 備份及恢復步驟Oracle
- 【RMAN】Oracle12c之後,rman備份Dataguard備端恢復可能出現邏輯錯誤Oracle
- 【DATAGUARD】Oracle Dataguard nologging 塊修復Oracle
- oracle dg 歸檔日誌恢復情況Oracle
- Oracle 12C新特性-RMAN恢復表Oracle
- 【RMAN】Oracle12c以後rman 備份恢復命令參考Oracle
- 【DATAGUARD】Oracle 通過Dataguard指定恢復時間用於找回丟失資料Oracle
- oracle ORA-01180 ORA-01110(rman恢復問題)Oracle
- ORACLE 11.2.0.4 RAC RMAN異機恢復之ORA-15001Oracle
- NBU恢復Oracle通道完成後RMAN沒有進度Oracle
- oracle 增量備份恢復驗證Oracle
- Oracle 9i統計資訊備份與恢復Oracle
- Oracle 備份 與 恢復 概述Oracle
- Oracle dataguard failover 實戰OracleAI
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(1)Oracle 10g
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(2)Oracle 10g
- Oracle案例12——NBU Oracle恢復Oracle
- RMAN恢復實踐
- oracle使用小記、刪除恢復Oracle
- NBU恢復oracleOracle
- ORACLE rman與RMAN-00054&ORA-09945Oracle
- dg丟失歸檔,使用rman增量備份恢復
- 備份與恢復oracle_homeOracle
- Windows oracle 11g rman備份恢復到linux系統WindowsOracleLinux
- oracle冷備恢復Oracle
- oracle 異機恢復Oracle
- Oracle 12c 備份與恢復Oracle
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- Oracle RMAN備份實戰Oracle
- oracle ADG與DG的區別Oracle
- Oracle 目錄許可權丟失故障恢復Oracle
- oracle dataguard broker 配置Oracle
- G017-ORACLE-MIGRATION-01 RMAN備份異機不完全恢復Oracle
- ORACLE9I升級到10G(zt)Oracle