oracle dg物理和逻辑,Oracle DG 物理Standby环境搭建
Oracle Data Guard, 分邏輯Standby和物理Standby。 下面講的是物理Standby環(huán)境的搭建步驟。
一、啟用Force Logging
將Primary數(shù)據(jù)庫置為Force Logging模式。通過下列語句:
查看狀態(tài):
SQL> SELECT DATABASE_ROLE,FORCE_LOGGING FROM V$DATABASE;
DATABASE_ROLE ? ?FORCE_LOGGING
---------------- ?---------------
PRIMARY ? ? ? ? ? NO
修改模式
SQL> alter database force logging;
Database altered.
取消Force logging 模式:
SQL> alter database no force logging;
Database altered.
說明:為什么要改成Force Logging
有一些DDL語句可以通過指定NOLOGGING子句的方式避免寫REDO(目的是提高速度,某些時候確實有效)。指定數(shù)據(jù)庫為Force Logging模式后,數(shù)據(jù)庫將會記錄除臨時表空間或臨時回滾段外所有的操作,而忽略類似NOLOGGING之類的指定參數(shù)。如果在執(zhí)行Force Logging時有NOLOGGING之類的語句在執(zhí)行,那么Force Logging會等待,直到這類語句全部執(zhí)行。
Force Logging是作為固定參數(shù)保存在控制文件中,因此其不受重啟之類操作的影響(只執(zhí)行一次即可),如果想取消,可以通過ALTER DATABASE NO FORCE LOGGING語句關(guān)閉強制記錄。
二、創(chuàng)建密鑰文件(如果不存在的話)
同一個Data Guard配置中所有數(shù)據(jù)庫必須都擁有獨立的密鑰文件,并且必須保證同一個Data Guard配置中,所有數(shù)據(jù)庫服務器的SYS用戶擁有相同密碼,以保證REDO數(shù)據(jù)的順利傳輸,因為REDO傳輸服務是通過認證的網(wǎng)絡會話來傳輸REDO數(shù)據(jù),而會話使用包含在密鑰文件中的SYS用戶密碼來認證。
如果使用DBCA建庫則Oracle會自動創(chuàng)建密鑰文件,該文件默認路徑在%ORACLE_HOME%/database目錄下,如果在該目錄沒能找到對應的密鑰文件也沒關(guān)系,Oracle提供了一個創(chuàng)建密鑰文件的命令:orapwd,位于%ORACLE_HOME%/bin目錄下,該命令有兩種調(diào)用方式:帶參調(diào)用和不帶參調(diào)用。
不帶參調(diào)用時,會返回該命令的調(diào)用方式和參數(shù)形式,例如:
[oracle@localhost ~]$ orapwd
Usage: orapwd file= password= entries= force=
where
file - name of password file (mand),
password - password for SYS (mand),
entries - maximum number of distinct DBA and ? ? force - whether to overwrite existing file (opt),
OPERs (opt),
There are no spaces around the equal-to (=) character.
其中:
file:指定密鑰文件名稱和路徑。
password:SYS用戶密碼。
entries:指定該數(shù)據(jù)庫能夠擁有SYSDBA權(quán)限的用戶最大數(shù)。
force:如果文件存在是否覆蓋。
orapwd命令使用非常簡單,file和password為必填參數(shù)。
需要注意Windows平臺和Linux/UNIX平臺密鑰文件的命名規(guī)則并不相同:
Windows平臺命名規(guī)則:PWD[sid].ora
Linux/UNIX平臺命令規(guī)則:orapw[sid] ?-- 注意:沒有文件名,(大小寫敏感)
示例如下:
[oracle@localhost dbs]$ orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=admin entries=30
三、配置Standby Redologs
對于最大保護和最高可用性模式,建議為Standby數(shù)據(jù)庫配置Standby Redologs(不配置也可以,Oracle將在Standby數(shù)據(jù)庫端自動創(chuàng)建歸檔文件,并虛擬為一組Standby Redologs),并使用LGWR SYNC模式傳輸REDO數(shù)據(jù)。
1.關(guān)于Standby Redologs
Oracle建議DBA在創(chuàng)建Standby數(shù)據(jù)庫時,就考慮Standby Redologs配置的問題。Standby Redologs與Online Redologs非常類似,應該說兩者只是服務對象不同,其他參數(shù)屬性,甚至操作的命令格式幾乎都一樣,DBA在設計Standby Redologs的時候完全可以借鑒創(chuàng)建Online Redologs的思路,如創(chuàng)建幾個文件組,每組多個文件冗余之類的。除些之外呢,Oracle提供了一些標準的建議,如下所示:
(1)確保Standby Redologs的文件大小與Primary數(shù)據(jù)庫Online Redologs文件大小相同。這個很好理解,就是為了接收和應用方便嘛。
(2)創(chuàng)建適當數(shù)目的日志組。一般而言,Standby Redologs日志組要比Primary數(shù)據(jù)庫的Online Redologs日志文件組數(shù)至少多一個。建議Standby Redologs日志組數(shù)量基于Primary數(shù)據(jù)庫的線程數(shù)來確定(這里的線程數(shù)可以理解為RAC環(huán)境中的節(jié)點數(shù))。
有一個推薦的公式可供參考:(每線程的日志組數(shù)+1)×最大線程數(shù)。
例如Primary數(shù)據(jù)庫有兩個線程,每個線程分配兩組日志,則Standby日志組數(shù)建議為6組,使用這個公式可以降低Primary數(shù)據(jù)庫實例LGWR進程鎖住的可能性。
提 示: 邏輯Standby數(shù)據(jù)庫有可能需要視工作量,增加更多的Standby Redologs組(或增加歸檔進程),因為邏輯Standby數(shù)據(jù)庫有可能需要同時寫Online Redologs文件。
2.管理Standby Redologs
Standby Redologs的操作方式與Online Redologs幾乎一模一樣,只不過在創(chuàng)建或刪除時需要多指定一個Standby關(guān)鍵字。
查看redo log:
SQL> SELECT GROUP#,TYPE,MEMBER FROM V$LOGFILE;
GROUP# TYPE ? ?MEMBER
---------- ------- --------------------------------------------------
3 ONLINE ?/u01/app/oracle/oradata/orcl/redo03.log
2 ONLINE ?/u01/app/oracle/oradata/orcl/redo02.log
1 ONLINE ?/u01/app/oracle/oradata/orcl/redo01.log
添加一個新的Standby Redologs組(注意組號不要與當前存在的Online Redologs組重復),并為該組指定一個成員:
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo04.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/redo05.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/u01/app/oracle/oradata/orcl/redo06.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/u01/app/oracle/oradata/orcl/redo07.log') size 50M;
刪除Standby Redologs組也同樣簡單:
SQL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 4;
可以通過動態(tài)性能視圖V$LOGFILE查看當前數(shù)據(jù)庫中創(chuàng)建的Standby Redologs,例如:
SQL> SELECT GROUP#,TYPE,MEMBER FROM V$LOGFILE;
GROUP# TYPE ? ?MEMBER
---------- ------- --------------------------------------------------
3 ONLINE ?/u01/app/oracle/oradata/orcl/redo03.log
2 ONLINE ?/u01/app/oracle/oradata/orcl/redo02.log
1 ONLINE ?/u01/app/oracle/oradata/orcl/redo01.log
4 STANDBY /u01/app/oracle/oradata/orcl/redo04.log
5 STANDBY /u01/app/oracle/oradata/orcl/redo05.log
6 STANDBY /u01/app/oracle/oradata/orcl/redo06.log
7 STANDBY /u01/app/oracle/oradata/orcl/redo07.log
提示:通過該視圖中的TYPE列區(qū)分該條記錄是Online Redologs或是Standby Redologs。
通過查看Standby Redologs的專用視圖V$STANDBY_LOG來查看當前數(shù)據(jù)庫中創(chuàng)建的Standby Redologs,如:
SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
GROUP# ? ?THREAD# ?SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
4 ? ? ? ? ?0 ? ? ? ? ?0 YES UNASSIGNED
5 ? ? ? ? ?0 ? ? ? ? ?0 YES UNASSIGNED
6 ? ? ? ? ?0 ? ? ? ? ?0 YES UNASSIGNED
7 ? ? ? ? ?0 ? ? ? ? ?0 YES UNASSIGNED
從可靠性方面考慮,DG的設計初衷就是當發(fā)生故障時快速切換Primary和Standby的角色,以達到快速恢復應用訪問的目的。一旦發(fā)生切換,原Primary數(shù)據(jù)庫就變成了Standby數(shù)據(jù)庫,就得需要Standby Redologs,為了減少真正切換時應做的工作,建議在Primary數(shù)據(jù)庫也創(chuàng)建Standby Redologs,這樣即使發(fā)生切換,也不會影響Primary作為Standby身份的正常運行。
四、設置初始化參數(shù)
對于Primary數(shù)據(jù)庫,有幾個與角色相關(guān)的初始化參數(shù)需要進行設置,這些參數(shù)初始時有些用來控制REDO傳輸服務(即Primary數(shù)據(jù)庫生成的REDO數(shù)據(jù)傳給誰以及怎么傳),有些用來指定角色,還有幾個與Standby角色相關(guān)的初始化參數(shù),也建議進行配置,以便switchover/failover操作后,Primary/Standby數(shù)據(jù)庫仍能正常工作,建議不管是Primary數(shù)據(jù)庫,還是Standby數(shù)據(jù)庫,對于角色相關(guān)的初始化參數(shù)都進行配置。
五、將Primary數(shù)據(jù)庫置于歸檔模式
要創(chuàng)建一個Data Guard環(huán)境,Primary數(shù)據(jù)庫必須處于歸檔模式。
對于非歸檔模式的數(shù)據(jù)庫該為歸檔模式,步驟如下:
1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';
2.關(guān)閉數(shù)據(jù)庫
SQL> shutdown immediate
3.啟動數(shù)據(jù)mount狀態(tài):
SQL> startup mount;
4、修改數(shù)據(jù)庫為歸檔模式:
SQL> alter database archivelog;
5、打開數(shù)據(jù)庫,查詢:
SQL> alter database open;
總結(jié)
以上是生活随笔為你收集整理的oracle dg物理和逻辑,Oracle DG 物理Standby环境搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php本地环境搭建软件下载,用EasyP
- 下一篇: oracle 1g apex030200