1. 程式人生 > >【oracle】Oracle Data Guard 環境搭建

【oracle】Oracle Data Guard 環境搭建

Oracle Data Guard 環境搭建

二、 配置主庫

1、 強制寫日誌 

2、 設定資料庫為歸檔模式 

3、 在主庫新增備庫日誌檔案 

4、 檢視備庫日誌檔案 

5、 配置靜態監聽引數 

6、 配置網路連線名 

7、 配置pfile 

三、 配置備庫

1、 配置備庫監聽引數 

2、 配置網路連線名 

3、 檢驗網路連線名 

4、 修改之前從主庫拷貝過來的pfile 

5、 拷貝密碼檔案 

6、 建立啟動需要的目錄 

7、 啟動資料庫到nomount狀態 

四、 最後配置

1、 複製主庫到備庫 

2、 開啟備庫 

3、 備庫實時應用日誌檔案 

4、 查詢主備資料庫各自狀態 

五、 驗證資料同步

Oracle Data Guard 環境搭建

一、安裝前所需環境

兩臺虛擬機器,兩臺都配置好網路,裝好ORACLE軟體,一臺裝好ORACLE資料庫,一臺不裝資料庫

版本資訊

二、配置主庫

兩臺虛擬機器的hosts需要配置好

此處我的

主庫的ip為192.168.43.14 主機名為zzz3

備庫的ip為192.168.43.15 主機名為zzz4

開啟資料庫

強制寫日誌

alter database force logging;

設定資料庫為歸檔模式

把資料庫關閉

shutdown immediate

把資料庫啟動到nomount模式

startup nomount

歸檔模式

alter database archivelog;

開啟資料庫

alter database open;

檢視

archive log list;

歸檔日誌路徑

alter system set log_archive_dest_1 =’location=/u01/arch’;

歸檔日誌型別

alter system set log_archive_format =’%t_%s_%r.arc’;

在主庫新增備庫日誌檔案

個數為當前日誌數加1

 alter  database add  standby  logfile '/u02/app/oracle/oradata/orcl3/stdredo01.log'  size 200M;

 alter  database add  standby  logfile '/u02/app/oracle/oradata/orcl3/stdredo02.log'  size 200M;

 alter  database add  standby  logfile '/u02/app/oracle/oradata/orcl3/stdredo03.log'  size 200M;

 alter  database add  standby  logfile '/u02/app/oracle/oradata/orcl3/stdredo04.log'  size 200M;

 alter  database add  standby  logfile '/u02/app/oracle/oradata/orcl3/stdredo05.log'  size 200M;

 alter  database add  standby  logfile '/u02/app/oracle/oradata/orcl3/stdredo06.log'  size 200M;

如果想刪除

程式碼為

ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;

ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;

ALTER DATABASE DROP STANDBY LOGFILE GROUP 8;

ALTER DATABASE DROP STANDBY LOGFILE GROUP 9;

ALTER DATABASE DROP STANDBY LOGFILE GROUP 10;

ALTER DATABASE DROP STANDBY LOGFILE GROUP 11;

檢視備庫日誌檔案

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

配置靜態監聽引數

vim $ORACLE_HOME/network/admin/listener.ora

圖中orcl3為例項名

配置網路連線名

vim $ORACLE_HOME/network/admin/tnsname.ora

ORCL_S =

 (DESCRIPTION =

   (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST = zzz4)(PORT = 1521))

    )

   (CONNECT_DATA =

     (SERVICE_NAME = orcl3)

    )

  )

ORCL_P =

 (DESCRIPTION =

   (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = TCP)(HOST = zzz3)(PORT = 1521))

    )

   (CONNECT_DATA =

     (SERVICE_NAME = orcl3)

    )

  )

圖中zzz4,zzz3可在本文第一張圖中看到

orcl3為例項名

orcl_s為備庫

orcl_p為主庫

檢驗是否可用

tnsping orcl_p

如圖即為成功

配置pfile

檔案為

$ORACLE_HOME/dbs/initorcl3.ora

先拷貝一份到備庫

修改主庫pfile,加入以下引數

*.db_name='orcl3'

*.db_unique_name='orcl_p'

*.log_archive_config='dg_config=(orcl_p,orcl_s)'

*.log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=orcl_p'

*.log_archive_dest_2='service=orcl_s valid_for=(online_logfiles,primary_role)  lgwr affirm sync db_unique_name=orcl_s'

*.log_archive_dest_state_1=enable

*.log_archive_dest_state_2=enable

*.standby_file_management='auto'

*.fal_server='orcl_s'

*.log_file_name_convert='/u02/app/oracle/oradata/orcl3','/u01/app/oracle/oradata/orcl3'

*.db_file_name_convert='/u02/app/oracle/oradata/orcl3','/u01/app/oracle/oradata/orcl3'

三、配置備庫

配置備庫監聽引數

如主庫

配置網路連線名

如主庫

檢驗網路連線名

tnsping orcl_p

tnsping orcl_s

修改之前從主庫拷貝過來的pfile

加上如下程式碼

*.db_name='orcl3'

*.db_unique_name='orcl_s'

*.log_archive_config='dg_config=(orcl_p,orcl_s)'

*.log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=orcl_s'

*.log_archive_dest_2='service=orcl_p valid_for=(online_logfiles,primary_role)  lgwr affirm sync db_unique_name=orcl_p'

*.log_archive_dest_state_1=enable

*.log_archive_dest_state_2=enable

*.standby_file_management='auto'

*.fal_server='orcl_p'

*.log_file_name_convert='/u02/app/oracle/oradata/orcl3','/u01/app/oracle/oradata/orcl3'

*.db_file_name_convert='/u02/app/oracle/oradata/orcl3','/u01/app/oracle/oradata/orcl3'

拷貝密碼檔案

密碼檔案為

$ORACLE_HOME/dbs/oraporcl3

建立啟動需要的目錄

mkdir -p /u01/app/oracle/admin/orcl3/adump

啟動資料庫到nomount狀態

shutdown immediate

startup nomount

四、最後配置

複製主庫到備庫

到主庫使用rman

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

duplicate target database for standby from active database nofilenamecheck dorecover;

開啟備庫

到備庫

alter database open;

備庫實時應用日誌檔案

alter database recover managed standby database using current logfile disconnect from session;

取消實時應用日誌檔案的指令

alter database recover managed standby database cancel;

查詢主備資料庫各自狀態

主庫

select log_mode,open_mode,database_role from v$database;

備庫

select log_mode,open_mode,database_role from v$database;

五、驗證資料同步

主庫

建立一個表 ,插入若干資料

強制切換日誌

到備庫檢視

資料同步成功