Configure Client Failover For Dataguard Connections Using DB Services-1429223.1
How To Configure Client Failover For Dataguard Connections Using Database Services (文件 ID 1429223.1)
In this Document
Goal |
Solution |
Pre 11.2 Configuration: |
Configuration in 11.2 or later release: |
Applies to:
Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.3 [Release 10.2 to 11.2]Information in this document applies to any platform.
Goal
In a Data Guard environment you have primary database which is open in read write mode and the standby database which can be in mount mode or open in read only mode for reporting purpose.
This document describes how to setup clients to connect to Data Guard databases (primary and standby) and configure automatic client failover such that in case there is role change due to switchover or failover, the client connections should still be valid i.e. the clients that need to connect to read only standby should always connect to the current standby irrespective of which database in the Data Guard configuration is currently in standby role and same for primary connections.
This goal is achieved via database services.
In 11gR2, we have the concept of role-based database services. For Data Guard environments running older release, this is achieved via a database startup trigger.
Pre 11.2 Configuration
11.2 or later Configuration
Solution
Pre 11.2 Configuration:
+ On the current primary, create 2 services, one to connect to the primary (prim_db) and another (stby_db) to connect to the read only standby:
SQL> exec dbms_service.create_service('prim_db','prim_db'); SQL> exec dbms_service.create_service('stby_db','stby_db');
+ On the current primary, start the service that is needed to connect to primary:
SQL> exec dbms_service.start_service('prim_db');
+ Now, on the current primary, create the trigger to manage these services accordingly:
CREATE OR REPLACE TRIGGER startDgServices after startup on database DECLARE db_role VARCHAR(30); db_open_mode VARCHAR(30); BEGIN SELECT DATABASE_ROLE, OPEN_MODE INTO db_role, db_open_mode FROM V$DATABASE; IF db_role = 'PRIMARY' THEN DBMS_SERVICE.START_SERVICE('prim_db'); END IF; IF db_role = 'PHYSICAL STANDBY' AND db_open_mode LIKE 'READ ONLY%' THEN DBMS_SERVICE.START_SERVICE('stby_db'); END IF; END; /
+ Note down the current online redo log sequence on primary and switch the current logfile:
SQL> select thread#, sequence# from v$log where status = 'CURRENT'; SQL> alter system archive log current;
Ensure that the archive with sequence# which was shown as current is shipped and applied on standby. This ensures that the redo from CREATE TRIGGER command is applied on standby.
Now, shutdown and startup the standby database to make the trigger take effect:
SQL> shut immediate; SQL> startup;
.
+ Configure client TNSNAMES.ORA entry. In below example PRIM_DB should be used by clients that need to connect to primary database. STBY_DB should be used by clients that need to access the read only standby database:
PRIM_DB = (DESCRIPTION = (ADDRESS_LIST = (FAILOVER = ON) (LOAD_BALANCE = OFF) (ADDRESS = (PROTOCOL = TCP)(HOST = primary.oracle.com)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = standby.oracle.com)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = prim_db) ) ) STBY_DB = (DESCRIPTION = (ADDRESS_LIST = (FAILOVER = ON) (LOAD_BALANCE = OFF) (ADDRESS = (PROTOCOL = TCP)(HOST = primary.oracle.com)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = standby.oracle.com)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = stby_db) ) )
Configuration in 11.2 or later release:
We will be using role-based database services introduced in 11.2. To use role-based services, Oracle Clusterware must be installed and active on the primary and standby sites for both single instance (using Oracle Restart) and Oracle RAC databases.
+ On the primary and standby hosts create the service (prim_db) that the clients will use to connect to the primary database. The service should be created such that it is associated with and runs on the database when it is in the ‘PRIMARY’ database role:
[oracle@vmOraLinux6 ~]$ srvctl add service -d ora11gR2 -s prim_db -l PRIMARY -e SESSION -m BASIC -w 10 -z 10
On standby:
[oracle@vmOraLinux6 ~]$ srvctl add service -d sby11gR2 -s prim_db -l PRIMARY -e SESSION -m BASIC -w 10 -z 10
+ Start the primary database service (prim_db) on the current primary:
+ Next, on the primary and standby hosts create the service (stby_db) that the clients will use to connect to the read only standby database. The service should be created such that it is associated with and runs on the database when it is in the ‘PHYSICAL_STANDBY’ database role:
[oracle@vmOraLinux6 ~]$ srvctl add service -d ora11gR2 -s stby_db -l PHYSICAL_STANDBY -e SESSION -m BASIC -w 10 -z 10
On standby:
[oracle@vmOraLinux6 ~]$ srvctl add service -d sby11gR2 -s stby_db -l PHYSICAL_STANDBY -e SESSION -m BASIC -w 10 -z 10
+ Now, start the standby service (stby_db) on standby host:
+ Configure client TNSNAMES.ORA entry. In below example PRIM_DB should be used by clients that need to connect to primary database. STBY_DB should be used by clients that need to access the read only standby database:
(DESCRIPTION =
(ADDRESS_LIST =
(FAILOVER = ON)
(LOAD_BALANCE = OFF)
(ADDRESS = (PROTOCOL = TCP)(HOST = primary.oracle.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = standby.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prim_db)
)
)
STBY_DB =
(DESCRIPTION =
(ADDRESS_LIST =
(FAILOVER = ON)
(LOAD_BALANCE = OFF)
(ADDRESS = (PROTOCOL = TCP)(HOST = primary.oracle.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = standby.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = stby_db)
)
)
Also see the MAA Whitepaper "Client Failover Best Practices for Data Guard 11g Release 2" for further Details and Reference.

|
|
- Oracle Database Products > Oracle Database > Oracle Database > Oracle Database - Enterprise Edition > Oracle Data Guard > Active Data Guard
- Oracle Database Products > Oracle Database > Oracle Database > Oracle Database - Enterprise Edition > Oracle Data Guard > All Physical Standby Issues
- Oracle Database Products > Oracle Database > Oracle Database > Oracle Database - Enterprise Edition > Oracle Data Guard > Client Fail Over
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17252115/viewspace-775589/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle dataguard failover 實戰OracleAI
- 【ASK_ORACLE】手動配置DataGuard的自動化Client Failover(故障轉移)的serviceOracleclientAI
- Oracle Dataguard故障轉移(failover)操作OracleAI
- How to configure SAP connections with Connection Transmitter Over air_part1MITAI
- Configure multiple-subnet Always On Availability Groups and failover cluster instances by modifying CIBAI
- ORA-19909(一次DataGuard Failover導致的故障AI
- Connect SQL Server from Linux Client using Windows Authentication and troubleshoot stepsSQLServerLinuxclientWindows
- does not support SSL connections
- 2.4.2 Connections to Containers in a CDBAI
- [AlwaysOn] 建立SQL Server高可用性組T-SQL語法:DB_FAILOVER引數SQLServerAI
- Oracle DataGuard FAL[client, ARC2]: Error 16191 connecting to 問題處理過程記錄OracleclientError
- 【DATAGUARD】Oracle Dataguard nologging 塊修復Oracle
- 【Dataguard】DataGuard運維注意事項運維
- ASA failover配置(A/S)AI
- MySQL ERROR 1040: Too many connectionsMySqlError
- Performing a Failover to a Physical Standby DatabaseORMAIDatabase
- Oracle 11.2.0.4 physical dataguard和snapshot dataguard切換Oracle
- 【DATAGUARD】Oracle Dataguard體系架構詳解Oracle架構
- 【DATAGUARD】Dataguard遠端同步配置最佳實踐
- 【DATAGUARD】Oracle19c dataguard新特性及部署Oracle
- Configure innodb 表空間
- Unable to boot ApiServiceProvider configure..bootAPIIDE
- Oracle:Failover 到物理備庫OracleAI
- MySQL 索引優化 Using where, Using filesortMySql索引優化
- MySQL explain結果Extra中"Using Index"與"Using where; Using index"區別MySqlAIIndex
- 【Autofs】How to Configure Autofs on CentOS 7?CentOS
- ./configure,make,make install的作用
- Install and configure VMware_vSphere 5
- How to Install and Configure VNC on Ubuntu 18.04VNCUbuntu
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- 【Dataguard】Oracle多租戶環境對Dataguard的影響Oracle
- 防火牆入侵於檢測——————5、Translations and Connections防火牆
- PostgreSQL DBA(118) - Develop(Seamless Application Failover)SQLdevAPPAI
- SQL Server Availability Group Failover 測試SQLServerAI
- 解密數倉高可用failover流程解密AI
- RAC+ASM+DATAGUARDASM
- oracle dataguard broker 配置Oracle
- How to Install and Configure VNC Server in CentOS 7VNCServerCentOS
- Failed to configure a DataSource: ‘url‘ attribute is not specified and no embeddedAI