DG環境下重新構建物理備庫oracle12C
# ----------------------------------------------------------------------------
#
# File: rebuildstandby.txt
# Creation Date: 20/8/13
# Last Modified: 20/8/13
# Purpose:恢復物理備庫
#
# ----------------------------------------------------------------------------
主庫:192.168.10.52
備庫:192.168.10.53
改變備庫為物理備庫:
***備庫操作:
sqlplus / as sysdba
sql>shutdown immediate;
刪除所有的控制檔案和資料檔案
rm -rf /u01/app/oracle/oradata/orcl/*
##下面對primary庫(192.168.10.53)做一個全備
/*注意rman 時候,必須把主庫啟動到mount狀態(alter database open;)進行備份!(否則恢復到備庫報錯:ora-16009)*/
new-svn-> rman target sys/orcl@prim
恢復管理器: Release 12.1.0.1.0 - Production on 星期二 8月 20 09:41:25 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1349930489, 未開啟)
RMAN> backup full database format='/u01/oracle/fulldatabase_%U%d' include current controlfile for standby;
然後把備份集scp到standby庫:
new-svn-> scp /u01/oracle/full* 192.168.10.53:/u01/oracle/
啟動備份庫到nomount狀態
ora1-> sqlplus sys/orcl@stby as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on 星期一 8月 19 22:25:02 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup pfile='$ORACLE_HOME/dbs/initstby.ora' nomount force
ORACLE 例程已經啟動。
Total System Global Area 835104768 bytes
Fixed Size 2293880 bytes
Variable Size 683675528 bytes
Database Buffers 142606336 bytes
Redo Buffers 6529024 bytes
SQL> exit
方法1:在primary庫利用RMAN建立standby資料庫(內部測試採用這個方法)
new-svn-> rman target sys/orcl@prim
恢復管理器: Release 12.1.0.1.0 - Production on 星期二 8月 20 09:50:15 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1349930489, 未開啟)
RMAN> connect auxiliary sys/orcl@stby;
已連線到輔助資料庫: ORCL (未裝載)
RMAN> duplicate target database for standby nofilenamecheck;
啟動 Duplicate Db 於 2013-08-20 09:51:05
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=178 裝置型別=DISK
記憶體指令碼的內容:
{
restore clone standby controlfile;
}
正在執行記憶體指令碼
啟動 restore 於 2013-08-20 09:51:06
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在還原控制檔案
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/oracle/rman/c-1349930489-20130820-00
通道 ORA_AUX_DISK_1: ORA-19870: 還原備份片段 /u01/oracle/rman/c-1349930489-20130820-00 時出錯
ORA-19505: 無法識別檔案"/u01/oracle/rman/c-1349930489-20130820-00"
ORA-27037: 無法獲得檔案狀態
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
故障轉移到上一個備份
通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在還原控制檔案
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/oracle/fulldatabase_2gohoq53_1_1ORCL
通道 ORA_AUX_DISK_1: 段控制程式碼 = /u01/oracle/fulldatabase_2gohoq53_1_1ORCL 標記 = TAG20130820T094223
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:00:03
輸出檔名=/u01/app/oracle/oradata/orcl/control01.ctl
輸出檔名=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl
完成 restore 於 2013-08-20 09:51:10
記憶體指令碼的內容:
{
sql clone 'alter database mount standby database';
}
正在執行記憶體指令碼
sql 語句: alter database mount standby database
記憶體指令碼的內容:
{
set newname for tempfile 1 to
"/u01/app/oracle/oradata/orcl/temp01.dbf";
set newname for tempfile 2 to
"/u01/app/oracle/product/12c/dbs/test_tmp1";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/app/oracle/oradata/orcl/system01.dbf";
set newname for datafile 2 to
"/u01/app/oracle/oradata/orcl/tab_test1.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/orcl/sysaux01.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/orcl/undotbs01.dbf";
set newname for datafile 5 to
"/u01/app/oracle/oradata/orcl/tab_test2.dbf";
set newname for datafile 6 to
"/u01/app/oracle/oradata/orcl/users01.dbf";
set newname for datafile 7 to
"/u01/app/oracle/oradata/system02.dbf";
set newname for datafile 8 to
"/u01/app/oracle/oradata/orcl/aningtbs1.dbf";
set newname for datafile 9 to
"/u01/app/oracle/oradata/orcl/aningtbs2.dbf";
restore
clone database
;
}
正在執行記憶體指令碼
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
臨時檔案 1 在控制檔案中已重新命名為 /u01/app/oracle/oradata/orcl/temp01.dbf
臨時檔案 2 在控制檔案中已重新命名為 /u01/app/oracle/product/12c/dbs/test_tmp1
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
啟動 restore 於 2013-08-20 09:51:18
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_AUX_DISK_1: 將資料檔案 00001 還原到 /u01/app/oracle/oradata/orcl/system01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00002 還原到 /u01/app/oracle/oradata/orcl/tab_test1.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00003 還原到 /u01/app/oracle/oradata/orcl/sysaux01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00004 還原到 /u01/app/oracle/oradata/orcl/undotbs01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00005 還原到 /u01/app/oracle/oradata/orcl/tab_test2.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00006 還原到 /u01/app/oracle/oradata/orcl/users01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00007 還原到 /u01/app/oracle/oradata/system02.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00008 還原到 /u01/app/oracle/oradata/orcl/aningtbs1.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00009 還原到 /u01/app/oracle/oradata/orcl/aningtbs2.dbf
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/oracle/fulldatabase_2fohoq3v_1_1ORCL
通道 ORA_AUX_DISK_1: 段控制程式碼 = /u01/oracle/fulldatabase_2fohoq3v_1_1ORCL 標記 = TAG20130820T094223
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:04:03
完成 restore 於 2013-08-20 09:55:04
記憶體指令碼的內容:
{
switch clone datafile all;
}
正在執行記憶體指令碼
資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 RECID=1 STAMP=823905123 檔名=/u01/app/oracle/oradata/orcl/system01.dbf
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 RECID=2 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/tab_test1.dbf
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 RECID=3 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/sysaux01.dbf
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 RECID=4 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/undotbs01.dbf
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 RECID=5 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/tab_test2.dbf
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 RECID=6 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/users01.dbf
資料檔案 7 已轉換成資料檔案副本
輸入資料檔案副本 RECID=7 STAMP=823905125 檔名=/u01/app/oracle/oradata/system02.dbf
資料檔案 8 已轉換成資料檔案副本
輸入資料檔案副本 RECID=8 STAMP=823905125 檔名=/u01/app/oracle/oradata/orcl/aningtbs1.dbf
資料檔案 9 已轉換成資料檔案副本
輸入資料檔案副本 RECID=9 STAMP=823905125 檔名=/u01/app/oracle/oradata/orcl/aningtbs2.dbf
完成 Duplicate Db 於 2013-08-20 09:55:36
RMAN>
方法2:(建議採用此方法)
##########################################################333
--在備庫上進行操作
ora1-> rman target sys/orcl@stby
恢復管理器: Release 12.1.0.1.0 - Production on 星期一 8月 19 22:35:01 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1349930489, 未開啟)--可以從連線資訊看到是同時連到主和備(注意此時主庫為open狀態,備庫為nomount狀態)
RMAN> connect auxiliary sys/orcl@prim;
RMAN> duplicate target database for standby nofilenamecheck;
--把拷過來的備份(全備和控制檔案備份)進行恢復,如果兩個庫路徑一致,就可以加上nofilenamecheck
ora1-> sqlplus sys/orcl@stby as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on 星期一 8月 19 22:37:08 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
連線到:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> recover managed standby database disconnect from session;
完成介質恢復。 --這句話是開啟日誌傳遞應用功能
SQL> recover managed standby database using current logfile disconnect from session;--物理備用庫恢復程式(實時)(證明實際程式已經啟動)
ORA-01153: 啟用了不相容的介質恢復
SQL> alter database recover managed standby database using current logfile; --這句話的意思是把物理備庫redo實時應用開啟!(證明實際程式已經啟動)
alter database recover managed standby database using current logfile
*
第 1 行出現錯誤:
ORA-01153: 啟用了不相容的介質恢復
######################可以通過下面的語句去查詢,實際已經啟動歸檔程式
SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
------------------ ------------------------ ---------- ---------- ----------
BLOCKS
----------
ARCH CONNECTED 0 0 0
0
ARCH CONNECTED 0 0 0
0
ARCH CONNECTED 0 0 0
0
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
------------------ ------------------------ ---------- ---------- ----------
BLOCKS
----------
ARCH CONNECTED 0 0 0
0
MRP0 WAIT_FOR_LOG 1 128 0
0
#######################################################################
在主庫上查詢動態檢視
SQL> col DEST_NAME for a24
SQL> col STATUS for a24
SQL> col ERROR for a24
SQL> select process,status from v$managed_standby;
PROCESS STATUS
------------------ ------------------------
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
#################################################################
測試:
在主庫上建一個表空間:
SQL> create tablespace t2 datafile '/u01/app/oracle/oradata/orcl/t2.dbf' size 20m autoextend off;
表空間已建立。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/tab_test1.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/tab_test2.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/system02.dbf
/u01/app/oracle/oradata/orcl/aningtbs1.dbf
/u01/app/oracle/oradata/orcl/aningtbs2.dbf
/u01/app/oracle/oradata/orcl/t2.dbf
已選擇 10 行。
備庫查詢:
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/tab_test1.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/tab_test2.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/system02.dbf
/u01/app/oracle/oradata/orcl/aningtbs1.dbf
/u01/app/oracle/oradata/orcl/aningtbs2.dbf
/u01/app/oracle/oradata/orcl/t2.dbf
已選擇 10 行。
主庫檢視當前歸檔日誌號:
SQL> archive log list;
資料庫日誌模式 存檔模式
自動存檔 啟用
存檔終點 /u01/oracle/arch/orcl
最早的聯機日誌序列 127
下一個存檔日誌序列 129
當前日誌序列 129
SQL>
備庫檢視當前歸檔日誌號:
SQL> archive log list;
資料庫日誌模式 存檔模式
自動存檔 啟用
存檔終點 /u01/oracle/arch/stby
最早的聯機日誌序列 0
下一個存檔日誌序列 0
當前日誌序列 129
檢視當前的歸檔日誌序列號是否跟著變動,並且和主庫一致;如果是,表明成功!
檢視主備庫當前已規檔最大執行緒號及取得當前資料庫各執行緒已歸檔檔案最大序號,如果primary 與standby 最大序號不相同,
必須將多出的序號對應的歸檔檔案複製到待轉換的standby伺服器。
主庫:
刪除剛才建的測試表空間:
SQL>drop tablespace t2;
備庫以只讀方式開啟:
SQL> startup pfile='$ORACLE_HOME/dbs/initstby.ora' force;
ORACLE 例程已經啟動。
Total System Global Area 835104768 bytes
Fixed Size 2293880 bytes
Variable Size 683675528 bytes
Database Buffers 142606336 bytes
Redo Buffers 6529024 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
檢視開啟方式:
SQL> select open_mode from v$database;
OPEN_MODE
----------------------------------------
READ ONLY
#
# File: rebuildstandby.txt
# Creation Date: 20/8/13
# Last Modified: 20/8/13
# Purpose:恢復物理備庫
#
# ----------------------------------------------------------------------------
主庫:192.168.10.52
備庫:192.168.10.53
改變備庫為物理備庫:
***備庫操作:
sqlplus / as sysdba
sql>shutdown immediate;
刪除所有的控制檔案和資料檔案
rm -rf /u01/app/oracle/oradata/orcl/*
##下面對primary庫(192.168.10.53)做一個全備
/*注意rman 時候,必須把主庫啟動到mount狀態(alter database open;)進行備份!(否則恢復到備庫報錯:ora-16009)*/
new-svn-> rman target sys/orcl@prim
恢復管理器: Release 12.1.0.1.0 - Production on 星期二 8月 20 09:41:25 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1349930489, 未開啟)
RMAN> backup full database format='/u01/oracle/fulldatabase_%U%d' include current controlfile for standby;
然後把備份集scp到standby庫:
new-svn-> scp /u01/oracle/full* 192.168.10.53:/u01/oracle/
啟動備份庫到nomount狀態
ora1-> sqlplus sys/orcl@stby as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on 星期一 8月 19 22:25:02 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup pfile='$ORACLE_HOME/dbs/initstby.ora' nomount force
ORACLE 例程已經啟動。
Total System Global Area 835104768 bytes
Fixed Size 2293880 bytes
Variable Size 683675528 bytes
Database Buffers 142606336 bytes
Redo Buffers 6529024 bytes
SQL> exit
方法1:在primary庫利用RMAN建立standby資料庫(內部測試採用這個方法)
new-svn-> rman target sys/orcl@prim
恢復管理器: Release 12.1.0.1.0 - Production on 星期二 8月 20 09:50:15 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1349930489, 未開啟)
RMAN> connect auxiliary sys/orcl@stby;
已連線到輔助資料庫: ORCL (未裝載)
RMAN> duplicate target database for standby nofilenamecheck;
啟動 Duplicate Db 於 2013-08-20 09:51:05
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=178 裝置型別=DISK
記憶體指令碼的內容:
{
restore clone standby controlfile;
}
正在執行記憶體指令碼
啟動 restore 於 2013-08-20 09:51:06
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在還原控制檔案
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/oracle/rman/c-1349930489-20130820-00
通道 ORA_AUX_DISK_1: ORA-19870: 還原備份片段 /u01/oracle/rman/c-1349930489-20130820-00 時出錯
ORA-19505: 無法識別檔案"/u01/oracle/rman/c-1349930489-20130820-00"
ORA-27037: 無法獲得檔案狀態
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
故障轉移到上一個備份
通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在還原控制檔案
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/oracle/fulldatabase_2gohoq53_1_1ORCL
通道 ORA_AUX_DISK_1: 段控制程式碼 = /u01/oracle/fulldatabase_2gohoq53_1_1ORCL 標記 = TAG20130820T094223
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:00:03
輸出檔名=/u01/app/oracle/oradata/orcl/control01.ctl
輸出檔名=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl
完成 restore 於 2013-08-20 09:51:10
記憶體指令碼的內容:
{
sql clone 'alter database mount standby database';
}
正在執行記憶體指令碼
sql 語句: alter database mount standby database
記憶體指令碼的內容:
{
set newname for tempfile 1 to
"/u01/app/oracle/oradata/orcl/temp01.dbf";
set newname for tempfile 2 to
"/u01/app/oracle/product/12c/dbs/test_tmp1";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/app/oracle/oradata/orcl/system01.dbf";
set newname for datafile 2 to
"/u01/app/oracle/oradata/orcl/tab_test1.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/orcl/sysaux01.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/orcl/undotbs01.dbf";
set newname for datafile 5 to
"/u01/app/oracle/oradata/orcl/tab_test2.dbf";
set newname for datafile 6 to
"/u01/app/oracle/oradata/orcl/users01.dbf";
set newname for datafile 7 to
"/u01/app/oracle/oradata/system02.dbf";
set newname for datafile 8 to
"/u01/app/oracle/oradata/orcl/aningtbs1.dbf";
set newname for datafile 9 to
"/u01/app/oracle/oradata/orcl/aningtbs2.dbf";
restore
clone database
;
}
正在執行記憶體指令碼
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
臨時檔案 1 在控制檔案中已重新命名為 /u01/app/oracle/oradata/orcl/temp01.dbf
臨時檔案 2 在控制檔案中已重新命名為 /u01/app/oracle/product/12c/dbs/test_tmp1
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
啟動 restore 於 2013-08-20 09:51:18
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_AUX_DISK_1: 將資料檔案 00001 還原到 /u01/app/oracle/oradata/orcl/system01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00002 還原到 /u01/app/oracle/oradata/orcl/tab_test1.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00003 還原到 /u01/app/oracle/oradata/orcl/sysaux01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00004 還原到 /u01/app/oracle/oradata/orcl/undotbs01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00005 還原到 /u01/app/oracle/oradata/orcl/tab_test2.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00006 還原到 /u01/app/oracle/oradata/orcl/users01.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00007 還原到 /u01/app/oracle/oradata/system02.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00008 還原到 /u01/app/oracle/oradata/orcl/aningtbs1.dbf
通道 ORA_AUX_DISK_1: 將資料檔案 00009 還原到 /u01/app/oracle/oradata/orcl/aningtbs2.dbf
通道 ORA_AUX_DISK_1: 正在讀取備份片段 /u01/oracle/fulldatabase_2fohoq3v_1_1ORCL
通道 ORA_AUX_DISK_1: 段控制程式碼 = /u01/oracle/fulldatabase_2fohoq3v_1_1ORCL 標記 = TAG20130820T094223
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:04:03
完成 restore 於 2013-08-20 09:55:04
記憶體指令碼的內容:
{
switch clone datafile all;
}
正在執行記憶體指令碼
資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 RECID=1 STAMP=823905123 檔名=/u01/app/oracle/oradata/orcl/system01.dbf
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 RECID=2 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/tab_test1.dbf
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 RECID=3 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/sysaux01.dbf
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 RECID=4 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/undotbs01.dbf
資料檔案 5 已轉換成資料檔案副本
輸入資料檔案副本 RECID=5 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/tab_test2.dbf
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 RECID=6 STAMP=823905124 檔名=/u01/app/oracle/oradata/orcl/users01.dbf
資料檔案 7 已轉換成資料檔案副本
輸入資料檔案副本 RECID=7 STAMP=823905125 檔名=/u01/app/oracle/oradata/system02.dbf
資料檔案 8 已轉換成資料檔案副本
輸入資料檔案副本 RECID=8 STAMP=823905125 檔名=/u01/app/oracle/oradata/orcl/aningtbs1.dbf
資料檔案 9 已轉換成資料檔案副本
輸入資料檔案副本 RECID=9 STAMP=823905125 檔名=/u01/app/oracle/oradata/orcl/aningtbs2.dbf
完成 Duplicate Db 於 2013-08-20 09:55:36
RMAN>
方法2:(建議採用此方法)
##########################################################333
--在備庫上進行操作
ora1-> rman target sys/orcl@stby
恢復管理器: Release 12.1.0.1.0 - Production on 星期一 8月 19 22:35:01 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1349930489, 未開啟)--可以從連線資訊看到是同時連到主和備(注意此時主庫為open狀態,備庫為nomount狀態)
RMAN> connect auxiliary sys/orcl@prim;
RMAN> duplicate target database for standby nofilenamecheck;
--把拷過來的備份(全備和控制檔案備份)進行恢復,如果兩個庫路徑一致,就可以加上nofilenamecheck
ora1-> sqlplus sys/orcl@stby as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on 星期一 8月 19 22:37:08 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
連線到:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> recover managed standby database disconnect from session;
完成介質恢復。 --這句話是開啟日誌傳遞應用功能
SQL> recover managed standby database using current logfile disconnect from session;--物理備用庫恢復程式(實時)(證明實際程式已經啟動)
ORA-01153: 啟用了不相容的介質恢復
SQL> alter database recover managed standby database using current logfile; --這句話的意思是把物理備庫redo實時應用開啟!(證明實際程式已經啟動)
alter database recover managed standby database using current logfile
*
第 1 行出現錯誤:
ORA-01153: 啟用了不相容的介質恢復
######################可以通過下面的語句去查詢,實際已經啟動歸檔程式
SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
------------------ ------------------------ ---------- ---------- ----------
BLOCKS
----------
ARCH CONNECTED 0 0 0
0
ARCH CONNECTED 0 0 0
0
ARCH CONNECTED 0 0 0
0
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
------------------ ------------------------ ---------- ---------- ----------
BLOCKS
----------
ARCH CONNECTED 0 0 0
0
MRP0 WAIT_FOR_LOG 1 128 0
0
#######################################################################
在主庫上查詢動態檢視
SQL> col DEST_NAME for a24
SQL> col STATUS for a24
SQL> col ERROR for a24
SQL> select process,status from v$managed_standby;
PROCESS STATUS
------------------ ------------------------
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
#################################################################
測試:
在主庫上建一個表空間:
SQL> create tablespace t2 datafile '/u01/app/oracle/oradata/orcl/t2.dbf' size 20m autoextend off;
表空間已建立。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/tab_test1.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/tab_test2.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/system02.dbf
/u01/app/oracle/oradata/orcl/aningtbs1.dbf
/u01/app/oracle/oradata/orcl/aningtbs2.dbf
/u01/app/oracle/oradata/orcl/t2.dbf
已選擇 10 行。
備庫查詢:
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/tab_test1.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/tab_test2.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/system02.dbf
/u01/app/oracle/oradata/orcl/aningtbs1.dbf
/u01/app/oracle/oradata/orcl/aningtbs2.dbf
/u01/app/oracle/oradata/orcl/t2.dbf
已選擇 10 行。
主庫檢視當前歸檔日誌號:
SQL> archive log list;
資料庫日誌模式 存檔模式
自動存檔 啟用
存檔終點 /u01/oracle/arch/orcl
最早的聯機日誌序列 127
下一個存檔日誌序列 129
當前日誌序列 129
SQL>
備庫檢視當前歸檔日誌號:
SQL> archive log list;
資料庫日誌模式 存檔模式
自動存檔 啟用
存檔終點 /u01/oracle/arch/stby
最早的聯機日誌序列 0
下一個存檔日誌序列 0
當前日誌序列 129
檢視當前的歸檔日誌序列號是否跟著變動,並且和主庫一致;如果是,表明成功!
檢視主備庫當前已規檔最大執行緒號及取得當前資料庫各執行緒已歸檔檔案最大序號,如果primary 與standby 最大序號不相同,
必須將多出的序號對應的歸檔檔案複製到待轉換的standby伺服器。
主庫:
刪除剛才建的測試表空間:
SQL>drop tablespace t2;
備庫以只讀方式開啟:
SQL> startup pfile='$ORACLE_HOME/dbs/initstby.ora' force;
ORACLE 例程已經啟動。
Total System Global Area 835104768 bytes
Fixed Size 2293880 bytes
Variable Size 683675528 bytes
Database Buffers 142606336 bytes
Redo Buffers 6529024 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
檢視開啟方式:
SQL> select open_mode from v$database;
OPEN_MODE
----------------------------------------
READ ONLY
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14661773/viewspace-772953/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【DG】怎麼使用Data Pump備份物理備庫
- 使用Flashback讓Failover資料庫重新加入DG環境AI資料庫
- 【DATAGUARD】DG系列之RACtoONE物理備庫的搭建
- 【DG】怎麼使用Data Pump備份物理備用資料庫資料庫
- 【DATAGUARD】DG系列之11g物理備庫的搭建
- linux下CUDA開發環境構建Linux開發環境
- 主庫不停做物理dg
- dockerfile構建flask環境DockerFlask
- docker構建php環境DockerPHP
- 【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫 (四)--新增一個物理dg節點
- Windows 下使用 Vagrant 構建 Linux 開發環境WindowsLinux開發環境
- Docker 構建PHP 映象環境DockerPHP
- 構建ORACLE高可用環境Oracle
- AIX/Linux生產環境下crontab自動排程RMAN物理備份例子AILinux
- SBT構建開發環境與代理和倉庫配置開發環境
- 【DG】利用閃回資料庫(flashback)修復Failover後的DG環境資料庫AI
- 構建Java Web開發環境JavaWeb開發環境
- Docker構建redis叢集環境DockerRedis
- 物理備庫互轉快照備庫
- 配置物理備庫+邏輯備庫
- 在容器環境搭建mysql備庫MySql
- hacmp環境下的rman備份ACM
- 物理DG從庫損壞後的重建
- rac與邏輯備庫不能自動建表空間,物理備庫正常
- 使用WebSphere中介軟體構建資料庫環境故障排除Web資料庫
- maven學習(下)利用Profile構建不同環境的部署包Maven
- 【RAC】rac環境下的資料庫備份與還原資料庫
- RAC和Dataguard環境下主備庫切換演練模板
- Oracle10g RAC環境下DataGuard備庫搭建例項Oracle
- Linux環境下資料庫自動邏輯備份Linux資料庫
- 搭建物理備庫
- DG備援資料檔案重新命名
- 用 Docker 構建 MySQL 主從環境DockerMySql
- Jenkins +nginx 搭建前端構建環境JenkinsNginx前端
- vue 構建環境切換指令碼Vue指令碼
- docker 靈活的構建 PHP 環境DockerPHP
- 用 Docker 構建 PHP 開發環境DockerPHP開發環境
- Grunt自動化構建環境搭建