oracle dataguard 簡易配置文檔

來源:互聯網
上載者:User

標籤:資料庫容災   oracle   dg   

一、主庫端的準備



1、查看主庫中資料庫目錄結構


   查看資料庫檔案路徑


   select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts#=t2.ts#;


   查看記錄檔路徑


   select * from v$logfile;


   查看控制檔案路徑


   select * from v$controlfile;



2.開啟資料庫歸檔並啟用force logging 模式


   

  查看歸檔模式


  archive log list

  

  開啟歸檔模式


  alter database archivelog;


  alter database noarchivelog;

  

  修改歸檔位置和歸檔命名規則

  

  alter system set log_archive_dest_1=‘location=/arch‘ scope=spfile;


  alter system set log_archive_format =‘%t_%s_%r.arc‘ scope=spfile;


  開啟force logging

 

  alter database force logging;

 

  alter database no force logging;


3.修改初始化參數檔案



  create pfile from spfile;(備份初始化參數檔案)



  alter system set LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(zhuku,beiku)‘;

  alter system set LOG_ARCHIVE_DEST_1=‘/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES)       DB_UNIQUE_NAME=zhuku‘;

  alter system set LOG_ARCHIVE_DEST_2=‘SERVICE=beiku LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=beiku‘;

  alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;

  alter system set LOG_ARCHIVE_DEST_STATE_2=defer;

  alter system set FAL_CLIENT=‘zhuku‘;

  alter system set FAL_SERVER=‘beiku‘;

  alter system set DB_FILE_NAME_CONVERT=‘/oracle/oradata/beiku/‘,‘/oracle/oradata/zhuku/‘ scope=spfile;

  alter system set LOG_FILE_NAME_CONVERT=‘/oracle/oradata/beiku/‘,‘/oracle/oradata/zhuku/‘ scope=spfile;

  alter system set standby_file_management=auto;



4.重啟資料庫使的上述修改生效  保留在open狀態




二、備庫端的準備


1.建立相關目錄


mkdir /oracle/admin/beiku/adump  bdump  cdump  dpdump  udump

mkdir /oracle/oradata/beiku

和主庫一致的備份目錄以及歸檔日誌目錄  並修改許可權

2.拷貝主庫密鑰檔案


scp 


3.備庫初始化參數設定


備庫的初始設定檔案可以從主庫初始化參數檔案修改而來


添加如下內容


*.DB_NAME=‘zhuku‘

*.remote_login_passwordfile=‘EXCLUSIVE


*.DB_UNIQUE_NAME=‘beiku‘

*.log_archive_config= ‘dg_config=(beiku,zhuku)‘

*.LOG_ARCHIVE_DEST_1= ‘LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=beiku‘

*.LOG_ARCHIVE_DEST_2= ‘SERVICE=zhuku  LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=zhuku‘

*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘

*.LOG_ARCHIVE_DEST_STATE_2=‘ENABLE‘

*.LOG_ARCHIVE_FORMAT=‘%t_%s_%r.arc‘

*.LOG_ARCHIVE_MAX_PROCESSES=30

*.FAL_SERVER=‘zhuku‘

*.FAL_CLIENT=‘beiku‘

*.DB_FILE_NAME_CONVERT=‘/oracle/oradata/zhuku/‘,‘/oracle/oradata/beiku/‘

*.LOG_FILE_NAME_CONVERT=‘/oracle/oradata/zhuku/‘,‘/oracle/oradata/beiku/‘

*.STANDBY_FILE_MANAGEMENT=‘AUTO‘


4.建立spfile

create spfile from pfile=‘$ORACLE_HOME/dbs/initracdb.ora‘


5.啟動資料庫到mount狀態

SQL> startup nomount;



三、配置監聽和tns



可以通過圖形化介面netca  netmgr 進行配置  主庫和備庫都要配置兩邊的tns



SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /oracle/db10g)

      (PROGRAM = extproc)

    )


   (SID_DESC =

      (GLOBAL_DBNAME = beiku)

      (ORACLE_HOME =  /oracle/db10g)

      (SID_NAME = beiku)

   )

  )



驗證監聽


sqlplus sys/[email protected] as sysdba


sqlplus sys/[email protected] as sysdba



四、Rman下duplicate資料庫,恢複備庫


方法1

主庫進行全庫的備份,將備份組拷貝到備庫相同的目錄下

RUN { 

allocate channel c1 type disk;

allocate channel c2 type disk;

sql ‘alter system archive log current‘;

backup current controlfile for standby format=‘/backup/dgbackup_control_%U‘;

BACKUP FORMAT ‘/backup/dgbackup_%U_%T‘ skip inaccessible filesperset 5 DATABASE ; 

sql ‘alter system archive log current‘;

BACKUP FORMAT ‘/backup/dgbackup_arch_%U_%T‘ skip inaccessible filesperset 5 ARCHIVELOG ALL ; 

release channel c2;

release channel c1;

}



rman target / auxiliary sys/[email protected]

duplicate target database for standby nofilenamecheck dorecover;


方法2  11g之後版本適用


利用RMAN在備庫上恢複主庫(備庫端做)


rman target sys/[email protected] auxiliary sys/[email protected]


RMAN> duplicate target database for standby from active database nofilenamecheck;

這條命令可以直接恢複資料檔案,standby控制檔案,standby日誌組,非常霸道





五、開啟DG


在備庫上執行

SQL> select instance_name,status from v$instance;


INSTANCE_NAME STATUS

---------------- ------------

racdb MOUNTED


該模式會從主要資料庫中複製並應用記錄檔


alter system set log_archive_dest_state_2=enable;


alter database recover managed standby database disconnect from session;


取消日誌應用


alter database recover managed standby database cancel



在Oracle 11g以前版本中的的Data Guard物理備用資料庫,可以以唯讀方式開啟資料庫,但此時Media Recovery利用日誌進行資料同步的過程就停止了,如果物理備用資料庫處於恢複的過程中資料庫就不能開啟查詢,也就是說日誌應用和唯讀開啟兩個狀態是互斥的,而Oracle 11g Active Data Guard功能解決了這個矛盾,在利用日誌恢複資料的同時可以用唯讀方式開啟資料庫,使用者可以在備用資料庫上進行查詢、報表等操作,這類似邏輯Data Guard備用資料庫的功能(查詢功能方面),但是,資料同步的效率更高、對硬體的資源要求更低。這樣可以更大程度地發揮物理備用資料庫的硬體資源的效能


取消備庫的自動回復

[email protected]@> alter database recover managed standby database cancel;


Database altered.



監控備庫警告日誌


監控主庫警告日誌



18.13. 查看日誌同步情況


主庫上

SQL> select sequence#, first_time, next_time from v$archived_log order by sequence#;


查看已經應用的日誌


SQL> select sequence#,applied from v$archived_log order by sequence#;



備庫上

SQL> select sequence#, first_time, next_time from v$archived_log order by sequence#;


SQL> select sequence#,applied from v$archived_log order by sequence#;


18.14. 配置主庫standby redo log

查看記錄檔大小,備用redolog一定要大於線上日誌log容量 ,主要用於主備庫的切換

select group#,bytes from v$log;

alter database add standby logfile group 5(‘/oracle/oradata/zhuku/redolog1.log‘) size 50m;

alter database add standby logfile group 6(‘/oracle/oradata/zhuku/redolog2.log‘) size 50m;

alter database add standby logfile group 7(‘/oracle/oradata/zhuku/redolog3.log‘) size 50m;

alter database add standby logfile group 8(‘/oracle/oradata/zhuku/redolog4.log‘) size 50m;


查看結果

select group#,thread#,sequence#,archived,status from v$standby_log;


18.15. 配置備庫standby redo log


sql> alter database recover managed standby database cancel

sql> shutdown immediate;

sql> startup mount;

alter database add standby logfile group 5(‘/u01/app/oracle/oradata/racdb/redolog1.log‘) size 100m;

alter database add standby logfile group 6(‘/u01/app/oracle/oradata/racdb/redolog2.log‘) size 100m;

alter database add standby logfile group 7(‘/u01/app/oracle/oradata/racdb/redolog3.log‘) size 100m;

alter database add standby logfile group 8(‘/u01/app/oracle/oradata/racdb/redolog4.log‘) size 100m;


查看結果

select group#,thread#,sequence#,archived,status from v$standby_log;


啟用接收日誌

alter database recover managed standby database disconnect from session;



備庫驗證資料


切換備用資料庫唯讀模式 

alter database recover managed standby database cancel;

alter database open read only;

查看已經應用的日誌

select sequence#,applied from v$archived_log order by sequence#;

 



 主備庫角色切換

  1. 在主庫中要做資料庫全備


2.確保節點1的日誌已經全部傳送到了備庫


SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;


3.在節點1,確認為TO_STANDBY


SQL> select SWITCHOVER_STATUS from v$database;

SWITCHOVER_STATUS

-------------------------

TO STANDBY


4.將節點一切換成備庫


SQL> alter database commit to switchover to physical standby with session shutdown ;


5.關閉並重新啟動之前的主庫執行個體

sql> shutdown immediate;

sql> startup mount

6.在備庫的v$database視圖中查看備庫的切換狀態


select switchover_status from v$database;


to primary 或者sessions active


7.切換備庫到主庫角色


alter database commit to switchover to primary; (to primary 狀態使用該命令)


alter database commit to switchover to primary with session shutdown; (sessions active 狀態使用該命令)


8.完成備庫到主庫的切換


alter database open;


9.如果備庫以唯讀模式開啟,先關閉資料,然後再重新啟動。


sql> shutdown immediate;

sql> startup ;


10.重新啟動一下新的備庫上的重做日誌應用服務


sql> alter database recover managed standby database disconnect from session;


或者sql> alter database recover managed standby database using current logfile disconnect from session;


11.開始發送重做資料到備庫上

sql> alter system switch logfile;



模式切換:

maximize protection ---> maximize availability ----> maximize performance

當在把dataguard的保護層級按這上面的順序減低的時候,不需要primary庫在mount狀態,primary在open狀態就可以直接執行保護模式更改命令

maximize protection <--- maximize availability <---- maximize performance

當在把dataguard的保護層級按這上面的順序升高的時候,需要primary庫在mount狀態,如果在open更改會報錯誤

select DATABASE_ROLE,open_mode,PROTECTION_MODE,PROTECTION_LEVEL from v$database; --查看保護模式

切換主庫保護模式的文法:

ALTER DATABASE SET STANDBY DATABASE 

TO MAXIMIZE {PROTECTION | AVAILABILITY | PERFORMANCE }

 

SQL> alter database set standby database to maximize performance;

SQL> alter database set standby database to maximize availability;

SQL> alter database set standby database to maximize protection;

以上都是在主庫操作,備庫會隨之改變。


本文出自 “人靜心涼” 部落格,請務必保留此出處http://19911117.blog.51cto.com/11329221/1752096

oracle dataguard 簡易配置文檔

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.