dg 配置,建議關閉shared 模式。

xychong123發表於2016-12-15
Database connections that require SYSDBA privilege and broker connections should be performed through dedicated server based connections NOT dispatchers and shared server processes.


NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
dispatchers                          string                           (PROTOCOL=TCP)(DISPATCHERS=8)


 
[oracle@hpejxjgdbcheck ~]$ ps -ef|grep d00
oracle   24751     1  0 Dec09 ?        00:00:06 ora_d000_jk
oracle   24753     1  0 Dec09 ?        00:00:06 ora_d001_jk
oracle   24755     1  0 Dec09 ?        00:00:06 ora_d002_jk
oracle   24757     1  0 Dec09 ?        00:00:06 ora_d003_jk
oracle   24759     1  0 Dec09 ?        00:00:06 ora_d004_jk
oracle   24761     1  0 Dec09 ?        00:00:06 ora_d005_jk
oracle   24763     1  0 Dec09 ?        00:00:06 ora_d006_jk
oracle   24765     1  0 Dec09 ?        00:00:06 ora_d007_jk
oracle   24767     1  0 Dec09 ?        00:00:06 ora_d008_jk
oracle   24769     1  0 Dec09 ?        00:00:06 ora_d009_jk


alter system set dispatchers=' (PROTOCOL=TCP)(DIS=0)';

SOLUTION

The problem here is a configuration issue where the _DGB services have dispatchers registered against them and the TNS alias used to establish the broker configuration and used by the broker processes to obtain database information are not forcing the use of a dedicated server connection.

The TNS Alias you are using to connect to the primary and standby sites are resolving to a service that has both dedicated and shared server processes available to handle the connection.
The TNS Alias alias bnt00p_dgb for example is connecting to a service_name of BNT00P and has not specified that it is to be a dedicated server connection.

tnsping bnt00p_dgb

TNS Ping Utility for Solaris: Version 11.2.0.3.0 - Production on 27-FEB-2014 17:02:20

Copyright (c) 1997, 2011, Oracle. All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = YOURNODENAME.YOURCO.COM)(PORT = 1530))) (CONNECT_DATA = (SERVICE_NAME = BNT00P)))
OK (10 msec)


The listener service listing shows that connections are indeed being made to the _DGB service used by the brokers through dispatchers and shared servers.

Service "BNT00P_DGB" has 2 instance(s).
 Instance "BNT00P", status UNKNOWN, has 1 handler(s) for this service...
  Handler(s):
  "DEDICATED" established:6 refused:0
  LOCAL SERVER
 Instance "BNT00P", status READY, has 9 handler(s) for this service...
  Handler(s):
  "D007" established:13 refused:0 current:1 max:1022 state:ready
  DISPATCHER 
  (ADDRESS=(PROTOCOL=tcp)(HOST=YOURNODENAME)(PORT=33262))




To correct this issue  perform the following:

1. Create a new TNS Alias that forces the use of dedicated server based sessions within your database.

For example:

BNT00P_DED=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = YOURNODENAME)(PORT = 1530))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BNT00P)))


2. Change the broker configuration alias that is used to establish sessions

DGMGRL> edit database BNT00P set property DGConnectIdentifier ='BNT00P_DED';


3. You also need to make sure that no dispatchers are being registered against the listener service BNT00P_DGB as this will also be used by the broker. While the use of dispatchers is fine for end users, SYSDBA based connections should always be performed through dedicated server processes.

For example the example database below has only got dispatchers registered against the service rs1XDB. There are no dispatcher registered for the BNT00P_DGB service specifically.

SQL> show parameter dispatcher
dispatchers string (PROTOCOL=TCP) (SERVICE=rs1XDB )



Once the changes above have been implemented disable the broker configuration and re-enable it once more.

4. Disable the configuration and re-enable it again

DGMGRL> disable configuration

In the Primary site

SQL> alter system set dg_broker_start=false
SQL> alter system set dg_broker_start=true

DGMGRL> enable configuration

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20747382/viewspace-2130676/,如需轉載,請註明出處,否則將追究法律責任。

相關文章