Oracle 10g Data Guard的建立與維護
Oracle 10g Data Guard的建立與維護[@more@]Maximum protection:零資料丟失。發生事務時需要同時向主資料庫和備用資料寫重做日誌。
為了保證資料不丟失,如果有一個事務發現不能向備用資料寫重做日誌,那麼主資料庫會自動關閉。
Maximum availability:在保證主資料庫可用的情況下最大程度上保證資料的不丟失。同Maximum protection一樣也是同時向主和備用資料庫寫重做日誌。與Maximum protection不同的時當發現不能向備用資料庫寫重做日誌時不會關閉資料庫,而是採用Maximum performance的模式管理直到修復故障。
當發生第二次錯誤時至少要能夠將重做日誌寫入到一個備用資料庫中才能保證零資料丟失。(多備用庫的情況下。如果是一個備用庫發生一次錯誤就會丟失資料)
Maximum performance:Oracle預設採用這種方式。在不影響主庫的效能的情況下最大程度上保證資料不丟失。由於前兩種方式要同時向主和備庫寫重做日誌這就會給系統的效能帶來負面影響。當事務提交時會立即將資料寫入到本地的聯機日誌中。主庫的重做資料流
至少要寫入到一個從庫中,但是這個並不是與主庫同時發生的。
如果採用了足夠的頻寬的話,這種模式提供的資料保護保證最大的可用性,同時最主庫的效能影響最小。
建立物理備用資料庫的步驟:
一、強制主庫產生日誌,由於備庫是採用歸檔日誌恢復的,如果沒有歸檔日誌恢復無從談起。
SQL> ALTER DATABASE FORCE LOGGING;
二、建立備庫的密碼檔案
D:>orapwd file=D:oracleproduct10.2.0db_1databasePWDauxdb.ora password=oracle entries=5;
建立例項
D:> oradim -NEW -SID auxdb -INTPWD D:oracleproduct10.2.0db_1databasePWDauxdb.ora -STARTMODE manual
三、建立備庫的重做日誌
1)、maximum protection 和 maximum availability模式必須要求有從庫的重做日誌。資料傳輸模式建議採用LGWR ASYNC。
Data Guard可以更多地採用備庫的重做日誌恢復,而不僅僅是採用歸檔日誌恢復。
2)、確保從庫的重做日誌大小與主庫的重做日誌大小完全一致。
3)、建立合適的重做日誌組數量。
從庫的重做日誌組至少要比主庫多一組。
通常情況下一個例項對應一個thread。
推薦採用如下公式來計算重做日誌組的個數。
(maximum number of logfiles for each thread + 1) * maximum number of threads
採用這中方式可以減少由於備庫重做日誌不能被分配從而導致主庫的日誌讀寫程式(LGWR)的阻塞。
例如:主庫每個thread有兩個日誌組,那麼備庫應該有6個重做日誌組。
新增從庫的日誌組。
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo04.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo05.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo06.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo07.log' size 50m;
4)、檢查備用重做日誌是否建立成功
在主庫上執行
SQL>alter system switch logfile;
然後從庫查詢
SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
4 1 0 NO ACTIVE
5 1 0 YES UNASSIGNED
6 1 0 YES UNASSIGNED
7 1 0 YES UNASSIGNED
四、修改主庫的引數檔案,並同步到spfile
orcl.__db_cache_size=88080384
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=67108864
orcl.__streams_pool_size=0
*.audit_file_dest='D:oracleproduct10.2.0adminorcladump'
*.background_dump_dest='D:oracleproduct10.2.0adminorclbdump'
*.compatible='10.2.0.1.0'
*.control_files='D:oracleproduct10.2.0oradataorclCONTROL01.CTL','D:oracleproduct10.2.0oradataorclCONTROL02.CTL','D:oracleproduct10.2.0oradataorclCONTROL03.CTL'
*.core_dump_dest='D:oracleproduct10.2.0adminorclcdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest_size=2147483648
*.db_recovery_file_dest='d:oracleproduct10.2.0flash_recovery_area'
*.db_unique_name='orcl'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.log_archive_config='dg_config=(orcl,auxdb)'
*.log_archive_dest_1='location=D:oracleproduct10.2.0oradataorclarchive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'
*.log_archive_dest_2='service=AUX VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=auxdb'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.log_archive_max_processes=1
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='D:oracleproduct10.2.0adminorcludump'
*.fal_client='aux'
*.standby_archive_dest='D:oracleproduct10.2.0oradataorclstandbyarchive'
*.standby_file_management=auto
五、建立備庫的資料檔案
檢視主庫資料檔案列表
SQL> select file#,name from v$datafile;
FILE# NAME
----- ----------------------------------------------------
1 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
2 D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
3 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
4 D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
5 D:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
6 D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.DBF
已選擇6行。
1)、將主庫的資料檔案copy到從庫的路徑下
SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'd:bakstandby.ctl';
然後關閉資料庫將file 1、2、3、4、5、6 copy到d:bak下。
或採用如下方法:
2)、採用rman將資料檔案copy到備庫中
C:Documents and SettingsAdministrator.XY>rman target/
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 3月 15 14:42:25 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1140649303, 未開啟)
RMAN> copy datafile 1 to 'd:baksystem01.dbf',datafile 2 to 'd:bakundotbs01.d
bf',datafile 3 to 'd:baksysaux01.dbf',datafile 4 to 'd:bakusers01.dbf',dataf
ile 5 to 'd:bakexample01.dbf',datafile 6 to 'd:baktest01.dbf', current contr
olfile for standby to 'd:bakstandby.ctl';
2>
啟動 backup 於 15-3月 -07
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 啟動資料檔案副本
。。。
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:01
通道 ORA_DISK_1: 啟動資料檔案副本
複製備用控制檔案
輸出檔名 = D:BAKSTANDBY.CTL 標記 = TAG20070315T144240 recid = 40 時間戳 = 61
7294620
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:01
完成 backup 於 15-3月 -07
RMAN>
開啟資料庫
SQL> ALTER DATABASE OPEN;
為了保證資料不丟失,如果有一個事務發現不能向備用資料寫重做日誌,那麼主資料庫會自動關閉。
Maximum availability:在保證主資料庫可用的情況下最大程度上保證資料的不丟失。同Maximum protection一樣也是同時向主和備用資料庫寫重做日誌。與Maximum protection不同的時當發現不能向備用資料庫寫重做日誌時不會關閉資料庫,而是採用Maximum performance的模式管理直到修復故障。
當發生第二次錯誤時至少要能夠將重做日誌寫入到一個備用資料庫中才能保證零資料丟失。(多備用庫的情況下。如果是一個備用庫發生一次錯誤就會丟失資料)
Maximum performance:Oracle預設採用這種方式。在不影響主庫的效能的情況下最大程度上保證資料不丟失。由於前兩種方式要同時向主和備庫寫重做日誌這就會給系統的效能帶來負面影響。當事務提交時會立即將資料寫入到本地的聯機日誌中。主庫的重做資料流
至少要寫入到一個從庫中,但是這個並不是與主庫同時發生的。
如果採用了足夠的頻寬的話,這種模式提供的資料保護保證最大的可用性,同時最主庫的效能影響最小。
建立物理備用資料庫的步驟:
一、強制主庫產生日誌,由於備庫是採用歸檔日誌恢復的,如果沒有歸檔日誌恢復無從談起。
SQL> ALTER DATABASE FORCE LOGGING;
二、建立備庫的密碼檔案
D:>orapwd file=D:oracleproduct10.2.0db_1databasePWDauxdb.ora password=oracle entries=5;
建立例項
D:> oradim -NEW -SID auxdb -INTPWD D:oracleproduct10.2.0db_1databasePWDauxdb.ora -STARTMODE manual
三、建立備庫的重做日誌
1)、maximum protection 和 maximum availability模式必須要求有從庫的重做日誌。資料傳輸模式建議採用LGWR ASYNC。
Data Guard可以更多地採用備庫的重做日誌恢復,而不僅僅是採用歸檔日誌恢復。
2)、確保從庫的重做日誌大小與主庫的重做日誌大小完全一致。
3)、建立合適的重做日誌組數量。
從庫的重做日誌組至少要比主庫多一組。
通常情況下一個例項對應一個thread。
推薦採用如下公式來計算重做日誌組的個數。
(maximum number of logfiles for each thread + 1) * maximum number of threads
採用這中方式可以減少由於備庫重做日誌不能被分配從而導致主庫的日誌讀寫程式(LGWR)的阻塞。
例如:主庫每個thread有兩個日誌組,那麼備庫應該有6個重做日誌組。
新增從庫的日誌組。
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo04.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo05.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo06.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo07.log' size 50m;
4)、檢查備用重做日誌是否建立成功
在主庫上執行
SQL>alter system switch logfile;
然後從庫查詢
SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
4 1 0 NO ACTIVE
5 1 0 YES UNASSIGNED
6 1 0 YES UNASSIGNED
7 1 0 YES UNASSIGNED
四、修改主庫的引數檔案,並同步到spfile
orcl.__db_cache_size=88080384
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=67108864
orcl.__streams_pool_size=0
*.audit_file_dest='D:oracleproduct10.2.0adminorcladump'
*.background_dump_dest='D:oracleproduct10.2.0adminorclbdump'
*.compatible='10.2.0.1.0'
*.control_files='D:oracleproduct10.2.0oradataorclCONTROL01.CTL','D:oracleproduct10.2.0oradataorclCONTROL02.CTL','D:oracleproduct10.2.0oradataorclCONTROL03.CTL'
*.core_dump_dest='D:oracleproduct10.2.0adminorclcdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest_size=2147483648
*.db_recovery_file_dest='d:oracleproduct10.2.0flash_recovery_area'
*.db_unique_name='orcl'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.log_archive_config='dg_config=(orcl,auxdb)'
*.log_archive_dest_1='location=D:oracleproduct10.2.0oradataorclarchive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'
*.log_archive_dest_2='service=AUX VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=auxdb'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.log_archive_max_processes=1
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='D:oracleproduct10.2.0adminorcludump'
*.fal_client='aux'
*.standby_archive_dest='D:oracleproduct10.2.0oradataorclstandbyarchive'
*.standby_file_management=auto
五、建立備庫的資料檔案
檢視主庫資料檔案列表
SQL> select file#,name from v$datafile;
FILE# NAME
----- ----------------------------------------------------
1 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
2 D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
3 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
4 D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
5 D:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
6 D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.DBF
已選擇6行。
1)、將主庫的資料檔案copy到從庫的路徑下
SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'd:bakstandby.ctl';
然後關閉資料庫將file 1、2、3、4、5、6 copy到d:bak下。
或採用如下方法:
2)、採用rman將資料檔案copy到備庫中
C:Documents and SettingsAdministrator.XY>rman target/
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 3月 15 14:42:25 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1140649303, 未開啟)
RMAN> copy datafile 1 to 'd:baksystem01.dbf',datafile 2 to 'd:bakundotbs01.d
bf',datafile 3 to 'd:baksysaux01.dbf',datafile 4 to 'd:bakusers01.dbf',dataf
ile 5 to 'd:bakexample01.dbf',datafile 6 to 'd:baktest01.dbf', current contr
olfile for standby to 'd:bakstandby.ctl';
2>
啟動 backup 於 15-3月 -07
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 啟動資料檔案副本
。。。
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:01
通道 ORA_DISK_1: 啟動資料檔案副本
複製備用控制檔案
輸出檔名 = D:BAKSTANDBY.CTL 標記 = TAG20070315T144240 recid = 40 時間戳 = 61
7294620
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:01
完成 backup 於 15-3月 -07
RMAN>
開啟資料庫
SQL> ALTER DATABASE OPEN;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8570952/viewspace-905777/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 11g data guard維護Oracle
- 4.1.6 Oracle Restart 與 Oracle Data Guard 整合OracleREST
- 6 Oracle Data Guard Protection Modes 保護模式Oracle模式
- 15 Oracle Data Guard Scenarios 保護場景OracleiOS
- Oracle Data Guard Broker元件Oracle元件
- Oracle Data Guard簡介Oracle
- 18 與Oracle Data Guard 相關的SQL語句OracleSQL
- 1 關於 Oracle Data GuardOracle
- 2 Oracle Data Guard 安裝Oracle
- 1 Oracle Data Guard Broker 概念Oracle
- Oracle Data Guard和Broker概述Oracle
- Oracle 19C Data Guard基礎運維-02 Switchovers(物理)Oracle運維
- Oracle 19C Data Guard基礎運維-03 Failovers(物理)Oracle運維AI
- Oracle 19C Data Guard基礎運維-06 PROTECTION MODEOracle運維
- 8 Oracle Data Guard Broker 屬性Oracle
- 9 Oracle Data Guard 故障診斷Oracle
- Oracle 19C Data Guard基礎運維-08 DML重定向Oracle運維
- Oracle 19C Data Guard基礎運維-04 Failovers疑問?Oracle運維AI
- Oracle 19C Data Guard基礎運維-05Failovers (GAP)Oracle運維AI
- 【ASK_ORACLE】Oracle Data Guard(一)DG架構Oracle架構
- 【DATAGUARD】Oracle19c Data Guard BrokerOracle
- 2 開始實用 Oracle Data GuardOracle
- 19 Oracle Data Guard 相關檢視Oracle
- 使用Data Guard Broker進行Data Guard物理備用庫配置(Oracle 19c)Oracle
- Oracle 19C Data Guard基礎運維-01安裝物理standbyOracle運維
- A Oracle Data Guard Broker 升級和降級Oracle
- Oracle data link建立Oracle
- Oracle 12.2 How to Generate AWRs in Active Data Guard Standby DatabasesOracleDatabase
- Oracle Data Guard Feature 12cR2系列(二)Oracle
- Oracle Data Guard Feature 12cR2系列(一)Oracle
- 【ASK_ORACLE】Oracle Data Guard(二)物理備庫的概念和優勢Oracle
- 【ASK_ORACLE】Oracle Data Guard(四)快照備庫的概念和優勢Oracle
- 使用Broker管理Data Guard——停用、改保護模式等模式
- 【ASK_ORACLE】Oracle Data Guard(三)邏輯備庫的概念和優勢Oracle
- G008-ORACLE-DG ORACLE 19C Active Data Guard DML RedirectionOracle
- 【mos 1265700.1】Oracle Patch Assurance - Data Guard Standby-First Patch ApplyOracleAPP
- oracle 10g建立資料庫鏈的簡化Oracle 10g資料庫
- Oracle 19C Data Guard基礎運維-07 failover後閃回恢復dg架構Oracle運維AI架構
- 單機搭建Data Guard