建立 oracle data gurd 以及三種保護模式
資料庫版本:11.2.0.3.0 作業系統 Linux 5.5 備庫有資料庫軟體 沒有建庫
一:在主庫開歸檔,將主庫設定為 force logging
二:對主庫新增standby 日誌組 新增的組數=原來日誌組數*執行緒數+1 (一個例項就是一個執行緒 一對一的關係)
所以先檢視主庫的日誌組數
YS@ENMOEDU> select * from v$log; #共有三組 所以要新增四組
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
1 1 91 52428800 512 1 NO
CURRENT 1310685 02-SEP-14 2.8147E+14
2 1 89 52428800 512 1 YES
INACTIVE 1310028 02-SEP-14 1310034 02-SEP-14
3 1 90 52428800 512 1 YES
INACTIVE 1310034 02-SEP-14 1310685 02-SEP-14
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
1 1 91 52428800 512 1 NO
CURRENT 1310685 02-SEP-14 2.8147E+14
2 1 89 52428800 512 1 YES
INACTIVE 1310028 02-SEP-14 1310034 02-SEP-14
3 1 90 52428800 512 1 YES
INACTIVE 1310034 02-SEP-14 1310685 02-SEP-14
用下面的方法新增 免得一條一條執行 提高效率,
DEFINE _EDITOR=vi
ed1 然後再編輯以下內容,注意成員要和原來的成員路徑最好一致。
alter database add standby logfile group4('/u01/app/oracle/oradata/ENMOEDU/redo05.log') size 50M;
alter database add standby logfile group 5('/u01/app/oracle/oradata/ENMOEDU/redo06.log') size 50M;
alter database add standby logfile group6('/u01/app/oracle/oradata/ENMOEDU/redo07.log') size 50M;
alter database add standby logfile group7('/u01/app/oracle/oradata/ENMOEDU/redo08.log') size 50M;
三:在主庫配置引數檔案 編輯 initENMOEDU.ora 新增內容內容(11g官方手冊 book list --DAT--Data Guard Concepts and Administration--3.1 Preparing the Primary Database for Standby Database Creation--3.1.4 中的例子)
alter database add standby logfile group6('/u01/app/oracle/oradata/ENMOEDU/redo07.log') size 50M;
alter database add standby logfile group7('/u01/app/oracle/oradata/ENMOEDU/redo08.log') size 50M;
三:在主庫配置引數檔案 編輯 initENMOEDU.ora 新增內容內容(11g官方手冊 book list --DAT--Data Guard Concepts and Administration--3.1 Preparing the Primary Database for Standby Database Creation--3.1.4 中的例子)
example 3-1和3-2 再修改:把Chicago 是主庫的資料庫名ENMOEDU 改成你自己的 主庫 名,Boston改成你的standby資料庫名ENMOEDU1, (可以用全域性替換:%s#old_name#new_name#g) 再把該修改的路徑修改掉,
DB_NAME=chicago DB_UNIQUE_NAME=chicago LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)' CONTROL_FILES='/arch1/chicago/control1.ctl', '/arch2/chicago/control2.ctl' #改成你自己的控制檔案的位置 LOG_ARCHIVE_DEST_1= 'LOCATION=/arch1/chicago/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chicago' LOG_ARCHIVE_DEST_2= 'SERVICE=boston ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=boston DB_FILE_NAME_CONVERT='boston','chicago' LOG_FILE_NAME_CONVERT= '/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/' #改成LOG_FILE_NAME_CONVERT='ENMOEDU1','ENMOEDU'STANDBY_FILE_MANAGEMENT=AUTO
四: 在主庫SYS@ENMOEDU> create spfile from pfile;
五;主庫配置監聽 用netca 配置 在客戶端配置tnsname.ora ,它內容中的host=主機名或它的IP 這個ip是你想連線誰 就寫誰,
五;主庫配置監聽 用netca 配置 在客戶端配置tnsname.ora ,它內容中的host=主機名或它的IP 這個ip是你想連線誰 就寫誰,
在伺服器端配置listener.ora 內容中的host=它自己的IP。當客戶端要連線伺服器時,首先解析客戶端的tnsname.ora檔案的內容,然後找到要連線的伺服器,伺服器上的監聽正在那等著呢,監聽透過listener.ora 檔案的內容與之對應上了(埠,協議,服務名,IP)就能連線上
listener.ora檔案具體內容:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=ENMOEDU)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=ENMOEDU)))
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.10)(PORT = 1521)) #主機IP
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER1 = /u01/app/oracle
tnsname.ora 檔案具體內容:
ENMOEDU1 = #這個是連線備庫的時候 解析的tnsname.ora 內容
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.11)(PORT = 1521)) #因為要連線備庫 所以填寫備庫的IP
)
(CONNECT_DATA =
(SERVICE_NAME = ENMOEDU1)
)
)
ENMOEDU = #這個連線主庫自己的時候 要解析的檔案內容 因為一個虛擬機器既可以做客戶端 也可以做服務端
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ENMOEDU)
)
)
六:用scp命令給備庫傳 引數檔案,口令檔案, tnsnames.ora listener.ora 檔案,
[oracle@ENMOEDU admin]$ scp listener.ora tnsnames.ora oracle@192.168.80.11:`pwd`; #冒號後面的pwd 意思是說要把檔案傳到備庫的當前路徑下(也就是此時在主機上 pwd 顯示的路徑)
Address 192.168.80.11 maps to enmoedu, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
oracle@192.168.80.11's password:
listener.ora 100% 544 0.5KB/s 00:00
tnsnames.ora 100% 526 0.5KB/s 00:00
Address 192.168.80.11 maps to enmoedu, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
oracle@192.168.80.11's password:
listener.ora 100% 544 0.5KB/s 00:00
tnsnames.ora 100% 526 0.5KB/s 00:00
七:在備庫上操作:修改剛傳過來的引數檔案、口令檔案、 的名字 (因為備庫的例項名為ENMOEDU1)
[oracle@ENMOEDU1 admin]$ mv initENMOEDU.ora initENMOEDU1.ora
然後 修改 剛傳過來的 listener.ora 把IP換成備庫的ip,服務名也改過來。 最後 還要修改傳過來的引數檔案內容,
主庫的引數檔案內容
DB_NAME=ENMOEDU #因為就一個庫 所以這裡主備庫一樣,
DB_UNIQUE_NAME=ENMOEDU #改成備庫的資料庫名
LOG_ARCHIVE_CONFIG='DG_CONFIG=(ENMOEDU,ENMOEDU1)' #括號裡面的兩個名字換位置
LOG_ARCHIVE_DEST_1=
'LOCATION=/u01/app/oracle/oradata/ENMOEDU #改成ENMOEDU1
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=ENMOEDU'
LOG_ARCHIVE_DEST_2=
'SERVICE=ENMOEDU1 ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=ENMOEDU1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=ENMOEDU1
DB_FILE_NAME_CONVERT='ENMOEDU1','ENMOEDU' #換位置
LOG_FILE_NAME_CONVERT='ENMOEDU1','ENMOEDU' #換位置
STANDBY_FILE_MANAGEMENT=AUTO
八:把主備庫的監聽開啟 關閉防火牆 把主庫啟動到mount狀態,再啟動備庫例項(nomount)
lsnrctl start
service iptables stop
然後 在主庫 輸入命令
[oracle@ENMOEDU dbs]$ rman target sys/oracle@ENMOEDU auxiliary sys/oracle@ENMOEDU1
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Sep 2 22:07:39 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ENMOEDU (DBID=87396644)
connected to auxiliary database: ENMOEDU (DBID=87396644)
RMAN>
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Sep 2 22:07:39 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ENMOEDU (DBID=87396644)
connected to auxiliary database: ENMOEDU (DBID=87396644)
RMAN>
九;在主庫執行duplicate命令 這條命令所做的事情:( RMAN automatically copies the server parameter file to the standby host, starts the auxiliary instance with the server parameter file, restores a backup control file, and copies all necessary database files and archived redo logs over the network to the standby host. RMAN recovers the standby database, but does not place it in manual or managed recovery mode )
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK;
十:在備庫上操作,
開啟MRP 程式 (應用歸檔 重演變化)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
以只讀方式開啟資料庫(但是要先關掉之前開啟的 MRP程式:alter database recover managed standby database cancel)
alter database open read only;
注意 :11g standby 資料庫只能是read only 的方式開啟,而且開啟之前 要先取消MRP程式,開啟之後 還可以開啟MRP程式 應用日誌,重演變化,
10g standby資料庫只能在mount模式下 應用日誌,11g可以在開啟的模式下應用 這就導致11g資料庫可以用standby 資料庫來分擔主庫的查詢負擔,而不僅僅是做備份,這是一大進步。
中途的一些報錯,
(1)口令檔案沒有 改名導致 沒有許可權
connected to target database: ENMOEDU (DBID=87396644)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04006: error from auxiliary database: ORA-01031: insufficient privileges
(2)監聽沒配好 無法連線rman
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04006: error from auxiliary database: ORA-12541: TNS:no listener
.最大保護模式
1)這種模式提供了最高階別的資料保護能力;
2)要求至少一個物理備庫收到重做日誌後,主庫的事務才能夠提交;
3)主庫找不到合適的備庫寫入時,主庫會自動關閉,防止未受保護的資料出現;
4)優點:該模式可以保證備庫沒有資料丟失;
5)缺點:主庫的自動關閉會影響到主庫的可用性,同時需要備庫恢復後才能提交,對網路等客觀條件要求非常的高,主庫的效能會因此受到非常大的衝擊。
2.最大可用性模式
1)該模式提供了僅次於“最大保護模式”的資料保護能力;
2)要求至少一個物理備庫收到重做日誌後,主庫的事務才能夠提交;
3)主庫找不到合適的備庫寫入時,主庫不會關閉,而是臨時降低到“最大效能模式”模式,直到問題得到處理;
4)優點:該模式可以在沒有問題出現的情況下,保證備庫沒有資料丟失,是一種折中的方法;
5)缺點:在正常執行的過程中缺點是主庫的效能受到諸多因素的影響。
3.最大效能模式
1)該模式是預設模式,可以保證主資料庫的最高可用性;
2)保證主庫執行過程中不受備庫的影響,主庫事務正常提交,不因備庫的任何問題影響到主庫的執行;
4)優點:避免了備庫對主資料庫的效能和可用性影響;
5)缺點:如果與主庫提交的事務相關的恢復資料沒有傳送到備庫,這些事務資料將被丟失,不能保證資料無損失;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1262417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Data Guard的三種保護模式(摘自官方文件)模式
- 10g Data Guard三種保護模式測試模式
- dataguard三種保護模式模式
- Data Guard 的3種資料保護模式模式
- 6 Oracle Data Guard Protection Modes 保護模式Oracle模式
- 【DataGuard】Oracle Dataguard三種保護模式特點總結Oracle模式
- Oracle9iR2 Data Guard的保護模式(ZT)Oracle模式
- 探索Oracle11gR2 之 DataGuard_03 三種保護模式Oracle模式
- 聊聊Dataguard的三種保護模式實驗(上)模式
- 聊聊Dataguard的三種保護模式實驗(下)模式
- 保護模式知識(三) (轉)模式
- 【DG】DG的3種保護模式模式
- 使用Broker管理Data Guard——停用、改保護模式等模式
- 15 Oracle Data Guard Scenarios 保護場景OracleiOS
- 保護模式模式
- 10gR2最大保護模式DataGuard建立模式
- 建立DATAGUARD最大保護模式-測試手記模式
- 保護資料安全的三種武器
- 【DataGuard】使用Grid Control調整Oracle物理Data Guard資料保護模式Oracle模式
- Oracle 10g Data Guard的建立與維護Oracle 10g
- 【DataGuard】調整Data Guard資料保護模式詳細步驟模式
- 0gR2最大保護模式DataGuard建立 (轉載)模式
- ORACLE10G DG中資料保護模式Oracle模式
- 【DataGuard】Oracle DataGuard 資料保護模式切換Oracle模式
- js保護內部資料的三種方式JS
- DG的保護模式模式
- 真實模式和保護模式模式
- DG中3種保護模式之間的切換模式
- 保護性暫停模式模式
- DataGuard切換保護模式模式
- Windows的保護模式 (轉)Windows模式
- 保護模式:段機制模式
- oracle實驗記錄 (oracle 10G dataguard(6)保護模式)Oracle模式
- Python 建立單例模式的三種方式Python單例模式
- 保護模式篇——PAE分頁模式
- 保護模式篇——總結與提升模式
- 80386保護模式簡介(轉)模式
- rac的Oracle Net配置中三種模式Oracle模式