日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle11g高可用,oracle11g 搭建DG环境总结

發(fā)布時間:2023/12/2 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle11g高可用,oracle11g 搭建DG环境总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本帖最后由 zhofly 于 2016-6-24 23:19 編輯

測試環(huán)境為:兩臺服務器配置一樣:Oracle Linux Server release 6.5??X86_64, DB??11.2.0.4.0

前提環(huán)境:一臺已經安裝好數據庫軟件并創(chuàng)建數據庫實例的服務器

另一臺也就是備庫,只安裝了數據庫軟件,空實例。

安裝環(huán)境與創(chuàng)建數據庫這里就不用說了,很簡單的。

整個環(huán)境為成4個步驟:

1,主備(gydg)修改

2,備庫(yzdg)修改

3,主備duplicate數據庫

4,測試DG是否成功

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

1.1 查看數據庫是否在歸檔與是否強制LOGGING模式。

SQL> select log_mode,force_logging from v$database;

LOG_MODE? ???FOR

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

ARCHIVELOG? ?NO

SQL> ALTER DATABASE FORCE LOGGING;

Database altered.

1.2 查看數據庫的日志組個數與大小,因為我們創(chuàng)建standby日志組的個數是原日志組個數+1再與thread的積,size不能小于原日志文件的大小。

SQL> select group#,bytes/1024/1024 from v$log;

GROUP# BYTES/1024/1024

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

1? ?? ?? ?? ???50

2? ?? ?? ?? ???50

3? ?? ?? ?? ???50

SQL> select member from v$logfile;

MEMBER

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

/u01/app/oracle/oradata/gydg/redo03.log

/u01/app/oracle/oradata/gydg/redo02.log

/u01/app/oracle/oradata/gydg/redo01.log

1.3 創(chuàng)建standby日志組,位置與原日志組相同的路徑。創(chuàng)建完成后查詢是否成功

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby01.log' size 50m;

Database altered.

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby02.log' size 50m;

Database altered.

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby03.log' size 50m;

Database altered.

SQL> alter database add standby logfile '/u01/app/oracle/oradata/gydg/standby04.log' size 50m;

Database altered.

SQL> select group#,status,type,member from v$logfile;

GROUP# STATUS??TYPE? ? MEMBER

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

3? ?? ?? ?ONLINE??/u01/app/oracle/oradata/gydg/redo03.log

2? ?? ?? ?ONLINE??/u01/app/oracle/oradata/gydg/redo02.log

1? ?? ?? ?ONLINE??/u01/app/oracle/oradata/gydg/redo01.log

4? ?? ?? ?STANDBY /u01/app/oracle/oradata/gydg/standby01.log

5? ?? ?? ?STANDBY /u01/app/oracle/oradata/gydg/standby02.log

6? ?? ?? ?STANDBY /u01/app/oracle/oradata/gydg/standby03.log

7? ?? ?? ?STANDBY /u01/app/oracle/oradata/gydg/standby04.log

1.4 修改相關的參數,與DG的參數就只與幾個參數相關,大概就是日志,文件的位置的轉換,GAP的處理,其實GAP已經會自動的處理,不過這里我們還是介紹配置FAL_SERVER,FAL_CLIENT參數。

SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(gydg,yzdg)';

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch/gydg/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=gydg';

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=gydg LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=gydg';

SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;

SQL> alter system set FAL_SERVER=yzdg;

SQL> alter system set FAL_CLIENT=gydg;

SQL>alter system set db_file_name_convert='/u01/app/oracle/oradata/gydg/','/u01/app/oracle/oradata/yzdg/' scope=spfile;

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

SQL> create pfile from spfile;

1.5 把dbs下的內容同步到standby主機上面,主要是密碼文件與init文件。(如果SID不一樣,創(chuàng)建密碼文件要保證entries值一致;)

orapwd file=orapwupsh password=123456 entries=5;( 在主庫創(chuàng)建密碼文件)

$scp initSID.ora orapwSID oracle@192.168.137.99:$ORACLE_HOME/dbs

1.6 配置靜態(tài)監(jiān)聽

主庫:

1、修改/u01/app/oracle/product/11.2.0.4.0/network/admin/listener.ora

[oracle@gydg admin]$ vi listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = gydg)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0.4.0)

(SID_NAME = gydg)

)

)

LISTENER =

(DESCRIPTION =

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

)

ADR_BASE_LISTENER = /u01/app/oracle

2、修改 /u01/app/oracle/product/11.2.0.4.0/network/admin/tnsnames.ora

[oracle@gydg admin]$ vi tnsnames.ora

yzdg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = yzdg)(UR=A)

)

)

gydg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = gydg)(UR=A)

)

)

備庫

1、修改/u01/app/oracle/product/11.2.0.4.0/network/admin/listener.ora

[oracle@yzdg admin]$ vi listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = yzdg)

(ORACLE_HOME = /u01/app/oracle/product/11.2.0.4.0)

(SID_NAME = yzdg)

)

)

LISTENER =

(DESCRIPTION =

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

)

ADR_BASE_LISTENER = /u01/app/oracle

2、修改 /u01/app/oracle/product/11.2.0.4.0/network/admin/tnsnames.ora

[oracle@yzdg admin]$ vi??tnsnames.ora

yzdg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = yzdg)(UR=A)

)

)

gydg =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(service_name = gydg)(UR=A)

)

)

啟動主備庫的監(jiān)聽

[oracle@yzdg admin]$lsnrctl

LSNRCTL> start

測試監(jiān)聽是否正常

sqlplus sys/oracle@gydg as sysdba

sqlplus sys/oracle@yzdg as sysdba

備庫上創(chuàng)建相關文件與修改參數文件

[oracle@yzdg dbs]$ more inityzdg.ora

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/app/oracle/oradata/yzdg/control01.ctl','/u01/app/oracle/fast_recovery_area/yzdg/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='gydg'

*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=4385144832

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=gydgXDB)'

*.fal_client='YZDG'

*.fal_server='GYDG'

*.log_archive_config='DG_CONFIG=(yzdg,gydg)'

*.log_archive_dest_1='LOCATION=/u01/app/oracle/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=yzdg'

*.log_archive_dest_2='SERVICE=gydg LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=gydg'

*.log_archive_dest_state_1='ENABLE'

*.log_archive_dest_state_2='ENABLE'

*.log_file_name_convert='/u01/app/oracle/oradata/logfile/','/u01/app/oracle/oradata/logfile/'

*.memory_target=1270874112

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

*.DB_UNIQUE_NAME='yzdg'

*.db_file_name_convert='/u01/app/oracle/oradata/gydg/','/u01/app/oracle/oradata/yzdg/'

[oracle@gydg admin]$ mkdir -p? ?/u01/app/oracle/oradata/logfile/? ?? ?? ?? ???(主備都創(chuàng)建)

[oracle@gydg admin]$ mkdir -p??/u01/app/oracle/fast_recovery_area/yzdg

[oracle@gydg admin]$ mkdir -p /u01/app/oracle/oradata/yzdg/

[oracle@gydg admin]$ mkdir -p /u01/app/oracle/oradata/gydg/

在備庫創(chuàng)建spfile,并啟動數據庫到NOMOUNT

[oracle@yzdg yzdg]$ echo $ORACLE_SID

yzdg

SQL> startup nomount;

SQL> create spfile from pfile;

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

重啟主庫

SQL> shutdown immediate;

SQL> startup

duplicate開始

在主庫上通過rman進行復制備庫(注意在這一步之前必須退出備庫的所有連接,否則會報錯)

rman target sys/123456 auxiliary sys/123456@yzdg

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

把備庫啟動到open only下面。并recover

SQL> alter database open read only;

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

查看兩邊狀態(tài):主庫

SQL> select database_role,switchover_status from v$database;

DATABASE_ROLE? ? SWITCHOVER_STATUS

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

PRIMARY? ?? ?? ? TO STANDBY

備庫

SQL> select database_role,switchover_status from v$database;

DATABASE_ROLE? ? SWITCHOVER_STATUS

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

PHYSICAL STANDBY NOT ALLOWED

注: 備庫的SWITCHOVER_STATUS狀態(tài)為 NOT ALLOWED??是正常的,只有當主庫切換為備庫時,原備庫的狀態(tài)才會變。

查看兩邊的sequence# 是否一致

SQL> select max(sequence#) from v$archived_log;

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

下面就是開始測試了。這里我們是用的SCOTT這個用戶來做測試,在SCOTT用戶下面創(chuàng)建一個表,在備庫去查詢看是否創(chuàng)建成功,與在主庫上面SWIRCH一次日志,看alert中的日志輸出內容。

在主庫上面做測試

[oracle@11g admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Fri Sep 7 05:57:41 2012

Copyright (c) 1982, 2010, Oracle.??All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> alter database set standby to maximize??availability;

Database altered.

SQL> alter user scott identified by oracle;

User altered.

SQL> alter user scott account unlock;

User altered.

SQL> create table scott.test1 as select * from dba_objects;

Table created.

備庫上面

SQL> select count(*) from scott.test1;

COUNT(*)

----------

72391

說明已經同步

主庫上面刷新日志。

SQL> conn / as sysdba

Connected.

SQL> alter system archive log current;

System altered.

日志

ALTER SYSTEM ARCHIVE LOG

Fri Sep 07 06:04:45 2012

LGWR: Standby redo logfile selected to archive thread 1 sequence 11

LGWR: Standby redo logfile selected for thread 1 sequence 11 for destination LOG_ARCHIVE_DEST_2

Thread 1 advanced to log sequence 11 (LGWR switch)

Current log# 2 seq# 11 mem# 0: /u01/app/oracle/oradata/htz/redo02.log

Fri Sep 07 06:04:48 2012

Archived Log entry 12 added for thread 1 sequence 10 ID 0x6e285e98 dest 1:

備庫日志

Standby controlfile consistent with primary

RFS[5]: Selected log 5 for thread 1 sequence 11 dbid 1848107928 branch 793343515

Thu Sep 06 18:40:13 2012

Media Recovery Waiting for thread 1 sequence 11 (in transit)

Recovery of Online Redo Log: Thread 1 Group 5 Seq 11 Reading mem 0

Mem# 0: /u01/app/oracle/oradata/htz/standby02.log

Thu Sep 06 18:40:16 2012

Archived Log entry 5 added for thread 1 sequence 10 ID 0x6e285e98 dest 1:

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的oracle11g高可用,oracle11g 搭建DG环境总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。