溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux6.4+Oracle11.2.0.4搭建DG

發(fā)布時(shí)間:2020-09-04 17:43:41 來(lái)源:網(wǎng)絡(luò) 閱讀:623 作者:湛康穎 欄目:關(guān)系型數(shù)據(jù)庫(kù)

試驗(yàn)環(huán)境描述

硬件信息

本次測(cè)試環(huán)境使用的虛擬環(huán)境如下圖所示,使用VMware Workstation 11搭建的兩臺(tái)Oracle Linux 6.4 64位操作系統(tǒng),通過(guò)兩臺(tái)機(jī)器橋接到一塊虛擬網(wǎng)卡。

Linux6.4+Oracle11.2.0.4搭建DG

系統(tǒng)信息

服務(wù)器一(主)

服務(wù)器二(備)

主機(jī)名:zhanky

IP  192.168.214.10

數(shù)據(jù)庫(kù)版本: oracle   11.2.0.4

庫(kù)名:zky  TNSNAMEDGZ        

主機(jī)名:zhanky

IP  192.168.214.11

數(shù)據(jù)庫(kù)版本: oracle   11.2.0.4

庫(kù)名:zky  TNSNAMEDGB        

DG故障切換示意

         主備庫(kù)正常情況客戶端訪問(wèn)流量訪問(wèn)主庫(kù),數(shù)據(jù)自動(dòng)同步到備庫(kù)。當(dāng)主庫(kù)出現(xiàn)故障時(shí),管理員手動(dòng)將備庫(kù)切換為主庫(kù)。此時(shí)客戶端訪問(wèn)備庫(kù)實(shí)現(xiàn)業(yè)務(wù)不中斷正常訪問(wèn)。

Linux6.4+Oracle11.2.0.4搭建DG

測(cè)試流程

         我們模仿正式環(huán)境,先將primary服務(wù)器準(zhǔn)備好,然后在standby服務(wù)器上只安裝數(shù)據(jù)庫(kù)軟件。在本次測(cè)試中我們使用rman的方式來(lái)備份數(shù)據(jù)庫(kù),然后在standby上面還原。關(guān)鍵實(shí)施步驟如下

Primary

1、  打開(kāi)歸檔模式,開(kāi)啟強(qiáng)制記錄日志

2、  創(chuàng)建日志組

3、  添加靜態(tài)監(jiān)聽(tīng),添加tns

4、  生成密碼文件

5、  生成pfile添加DG內(nèi)容

6、  重啟通過(guò)pfile啟動(dòng),更新spfile

7、  通過(guò)rman duplicate備份

8、  生成控制文件

Standby

1、  將備份文件拷貝到standby對(duì)應(yīng)的位置 。

2、  將密碼文件考到對(duì)應(yīng)的位子

3、  將監(jiān)聽(tīng)文件修改后考到對(duì)應(yīng)的位置,然后開(kāi)啟監(jiān)聽(tīng)

4、  pfile文件更改后拷貝到standby

5、  通過(guò)oradim創(chuàng)建實(shí)例,加載更改的pfilenomount模式

6、  pfile更新到spfile,然后重啟數(shù)據(jù)庫(kù)

7、  通過(guò)rman 回復(fù)數(shù)據(jù)庫(kù),完成后open

8、  將控制文件替換

9、  然后啟用DG到備庫(kù)模式


DG主服務(wù)器設(shè)置

檢查數(shù)據(jù)庫(kù)歸檔

查看歸檔日志是否開(kāi)啟     

SQL> archive   log list

Linux6.4+Oracle11.2.0.4搭建DG

上圖看出庫(kù)開(kāi)啟了歸檔模式。如果沒(méi)有開(kāi)啟則按照以下步驟開(kāi)啟歸檔模式

SQL>   shutdown immediate

SQL>   startup mount

SQL>   alter database archivelog;

SQL>   alter database force logging;

SQL>   alter database open;

Linux6.4+Oracle11.2.0.4搭建DG

創(chuàng)建日志組

創(chuàng)建日志組

[oracle@zhanky /]$ mkdir   /u01/archive

SQL> alter database add   standby logfile group 4 '/u01/archive/STAN04.LOG' size 50m;

SQL> alter database add standby logfile group 5 '/u01/archive/STAN05.LOG'   size 50m;

SQL> alter database add standby logfile group 6 '/u01/archive/STAN06.LOG'   size 50m;

SQL> alter database add standby logfile group 7 '/u01/archive/STAN07.LOG'   size 50m;

Linux6.4+Oracle11.2.0.4搭建DG

檢查密碼文件

密碼文件要拷貝到DG備庫(kù),保持兩邊密碼文件一致。

[oracle@zhanky ~]$ ls /u01/app/oracle/product/11.2.0/db_1/dbs/

Linux6.4+Oracle11.2.0.4搭建DG

如果沒(méi)有密碼文件可以手動(dòng)創(chuàng)建

SQL>   orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky password=manager   entries=10

建議設(shè)置密碼永不過(guò)期

SQL> alter profile default limit password_life_time unlimited;

配置監(jiān)聽(tīng)文件

配置靜態(tài)監(jiān)聽(tīng),在listener.ora文件中添加靜態(tài)監(jiān)聽(tīng)

[oracle@zhanky ~]$ vi   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

SID_LIST_LISTENER=

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = zky)

      (ORACLE_HOME   =/u01/app/oracle/product/11.2.0/db_1)

      (SID_NAME = zky)

    )

  )

Linux6.4+Oracle11.2.0.4搭建DG

注意linux環(huán)境中更改偵聽(tīng)需要先stop在修改,不然會(huì)導(dǎo)致偵聽(tīng)服務(wù)無(wú)法正常啟動(dòng)關(guān)閉

配置TNS文件

配置tnsname.ora,設(shè)置DG主和DG備服務(wù)器監(jiān)聽(tīng)

[oracle@zhanky ~]$ vi   /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

DGZ =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = zky)

    )

  )

DGB =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = zky)

    )

  )

Linux6.4+Oracle11.2.0.4搭建DG

配置DG參數(shù)

下面開(kāi)始配置dg文件了,配置完成后記得重啟數(shù)據(jù)庫(kù)。

SQL> alter system set   db_unique_name=dgz scope=spfile;

SQL> alter system set   LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGZ,DGB)' scope=both;

SQL> alter system set   LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/zky/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=DGZ' scope=spfile;

SQL> alter system set   LOG_ARCHIVE_DEST_2= 'service=DGB lgwr async   VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=DGB' scope=both;

SQL> alter system set   LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;

SQL> alter system set   LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;

SQL> alter system set   FAL_SERVER='DGZ' scope=both;

SQL> alter system set   STANDBY_FILE_MANAGEMENT=AUTO scope=both;

SQL> alter system set   DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/zky/','/u01/app/oracle/oradata/zky/'   scope=spfile;

SQL> alter system set   LOG_FILE_NAME_CONVERT='/u01/archive/','/u01/archive/' scope=spfile;

Linux6.4+Oracle11.2.0.4搭建DG

創(chuàng)建參數(shù)文件

創(chuàng)建參數(shù)文件供備庫(kù)用

SQL> create pfile='/u01/zk.int' from spfile;

Linux6.4+Oracle11.2.0.4搭建DG


DG備服務(wù)器設(shè)置

復(fù)制文件

將密碼文件和參數(shù)文件拷貝到DG備庫(kù)對(duì)應(yīng)的位置并賦予讀寫(xiě)權(quán)限

[oracle@zhanky ~]$ scp   oracle@192.168.214.10:/u01/zk.int /u01/bk.int

[oracle@zhanky ~]$ scp   oracle@192.168.214.10:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky   /u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky

[oracle@zhanky ~]$ chmod 777   /u01/bk.int

[oracle@zhanky ~]$ chmod   777 /u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky

Linux6.4+Oracle11.2.0.4搭建DG

創(chuàng)建文件夾

[oracle@zhanky /]$ mkdir -p   /u01/archive/

[oracle@zhanky /]$ mkdir -p   /u01/app/oracle/admin/zky/adump/

[oracle@zhanky /]$ mkdir -p   /u01/app/oracle/oradata/zky/

[oracle@zhanky /]$ mkdir -p   /u01/app/oracle/fast_recovery_area/zky/

Linux6.4+Oracle11.2.0.4搭建DG 

配置監(jiān)聽(tīng)文件

配置靜態(tài)監(jiān)聽(tīng),在listener.ora文件中添加靜態(tài)監(jiān)聽(tīng)

[oracle@zhanky ~]$ vi   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

SID_LIST_LISTENER=

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = zky)

      (ORACLE_HOME   =/u01/app/oracle/product/11.2.0/db_1)

      (SID_NAME = zky)

    )

  )

Linux6.4+Oracle11.2.0.4搭建DG

注意linux環(huán)境中更改偵聽(tīng)需要先stop在修改,不然會(huì)導(dǎo)致偵聽(tīng)服務(wù)無(wú)法正常啟動(dòng)關(guān)閉

配置TNS文件

配置tnsname.ora,設(shè)置DG主和DG備服務(wù)器監(jiān)聽(tīng)

[oracle@zhanky ~]$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

DGZ =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = zky)

    )

  )

DGB =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = zky)

    )

  )

Linux6.4+Oracle11.2.0.4搭建DG

配置DG參數(shù)

將復(fù)制過(guò)來(lái)的參數(shù)文件更改下列紅色標(biāo)識(shí)的地方

[oracle@zhanky ~]$ vi   /u01/bk.int

db_unique_name=dgb scope=spfile;

LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGZ,DGB)'   scope=both;

LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/zky/   VALID_FOR=(ALL_LOGFILES,ALL_ROLES)    DB_UNIQUE_NAME=DGZ' scope=spfile;

LOG_ARCHIVE_DEST_2=   'service=DGB lgwr async   VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=DGB' scope=both;

FAL_SERVER='DGZ' scope=both;

完成更改后,進(jìn)入數(shù)據(jù)庫(kù)創(chuàng)建spfile,重啟到nomount狀態(tài)準(zhǔn)備還原數(shù)據(jù)庫(kù)

[oracle@zhanky /]$ sqlplus / as sysdba

SQL> create spfile from   pfile='/u01/bk.int';

SQL> startup nomount;

Linux6.4+Oracle11.2.0.4搭建DG

還原數(shù)據(jù)庫(kù)

[oracle@zhanky ~]$ rman   target sys/manager@DGZ auxiliary sys/manager@DGB

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

Linux6.4+Oracle11.2.0.4搭建DG

提示:還原數(shù)據(jù)庫(kù)要在nomount模式

 

DG配置

將庫(kù)配置為standby庫(kù),開(kāi)啟到只讀模式,開(kāi)啟實(shí)時(shí)應(yīng)用日志。

SQL> shutdown immediate

SQL> startup nomount;

SQL> alter database mount standby   database;

SQL> alter database open read only;

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

Linux6.4+Oracle11.2.0.4搭建DG

測(cè)試DG同步

主庫(kù)插入

SQL> create table zkydg as(select username   from dba_users where username='SYSTEM');

Linux6.4+Oracle11.2.0.4搭建DG

備庫(kù)查詢

SQL> select * from zkydg;

Linux6.4+Oracle11.2.0.4搭建DG


測(cè)試切換主備庫(kù)

主庫(kù)操作

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

SQL> startup nomount;

SQL> alter database mount standby   database;

SQL> alter database open read only;

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

 Linux6.4+Oracle11.2.0.4搭建DG

查看切換狀態(tài)

SQL> select   switchover_status from v$database;

Linux6.4+Oracle11.2.0.4搭建DG

備庫(kù)操作

SQL> alter database recover managed   standby database cancel;

SQL> alter database commit to   switchover to primary;

SQL> shutdown immediate

SQL> startup

Linux6.4+Oracle11.2.0.4搭建DG

測(cè)試切換是否成功DG同步

新主庫(kù)插入

SQL>    create table zkydgqh as(select username from dba_users where   username='SYS');

Linux6.4+Oracle11.2.0.4搭建DG

老主庫(kù)查詢

SQL> select * from zkydgqh;

Linux6.4+Oracle11.2.0.4搭建DG


常用檢查命令

查看切換狀態(tài)

SQL> select   switchover_status from v$database;

Linux6.4+Oracle11.2.0.4搭建DG

查看是否同步

SQL> SELECT   SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

Linux6.4+Oracle11.2.0.4搭建DG

強(qiáng)制切換為主庫(kù)

         當(dāng)主庫(kù)掛了無(wú)法控制時(shí),可直接在備庫(kù)上強(qiáng)制接管數(shù)據(jù)庫(kù)

SQL> RECOVER MANAGED   STANDBY DATABASE FINISH force;

 

SQL> shutdown immediate
SQL> startup nomount;
SQL> alter database mount standby   database;
SQL> alter database open read only;
SQL> alter database recover managed   standby database using current logfile disconnect from session;


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI