• No results found

Load Balancing Setup For Oracle Parallel Server

N/A
N/A
Protected

Academic year: 2021

Share "Load Balancing Setup For Oracle Parallel Server"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

Load Balancing Setup

For

Oracle Parallel Server

By

Arup Nanda

Version 1

Release Date : 4/16/2001

For load balancing to work properly several parameters have to be set in oracle. This document

discusses the recommended setting of these parameters and the reasons thereof.

Assumptions

??

There are 4 nodes in the OPS cluster named prodsvr1, prodsvr2, prodsvr3 and prodsvr4.

??

Only the first three nodes serve the OLTP clients and the last one (prodsvr4) exclusively serve

the batch processes.

??

Only the OLTP nodes need multithreaded server setup; the batch node needs dedicated

server setup.

??

The database name is PRDN.

??

Load balancing and Failover is to be set up between prodsvr1, prodsvr2 and prodsvr3 only.

The instance on prodsvr4 is not to be balanced for load or is not to participate in failover.

TNSNAMES.ORA on PRODSVR

The tnsnames.ora file has to look the same in all four nodes like this.

PRODSVR1.OURCUSTOMER.COM = (DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr1.OURCUSTOMER.COM) (PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr1.OURCUSTOMER.COM) (PORT = 1526)) ) (CONNECT_DATA = (SERVICE_NAME = PRDN.WORLD) ) ) PRODSVR2.OURCUSTOMER.COM = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr2.OURCUSTOMER.COM) (PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr2.OURCUSTOMER.COM) (PORT = 1526))

)

(2)

(SERVICE_NAME = PRDN.WORLD) ) ) PRODSVR3.OURCUSTOMER.COM = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr3.OURCUSTOMER.COM) (PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr3.OURCUSTOMER.COM) (PORT = 1526)) ) (CONNECT_DATA = (SERVICE_NAME = PRDN.WORLD) ) ) PRODSVR4.OURCUSTOMER.COM = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr4.OURCUSTOMER.COM) (PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr4.OURCUSTOMER.COM) (PORT = 1526)) ) (CONNECT_DATA = (SERVICE_NAME = PRDN.WORLD) ) )

SQLNET.ORA on PRODSVR

All four nodes of PRODSVR machines should have the same sqlnet.ora as follows.

NAMES.DEFAULT_DOMAIN = OURCUSTOMER.COM NAMES.DIRECTORY_PATH= (TNSNAMES)

AUTOMATIC_IPC=FALSE

TNSNAMES.ORA on Application Servers

All app servers (production and development app servers) have to have the same tnsnames.ora as

follows. The name PRODSVR2RR was chosen as the name is currently used and it connects to

the load balance machine. The applications need not change to connect to a load balanced

prodsvr cluster.

The following setup always tries to connect to the listener on prodsvr1 port 1521 and if it’s down,

then the one on prodsvr1 port 1526. If that is down too, it tries to connect to prodsvr2 and so on.

Regardless of which listener it connects to, it connects to the instance that is least loaded. The final

entry PRODSVR2BATCH is needed to connect to the last node as it is being used now.

(3)

PRODSVR2RR = (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=prodsvr1)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=prodsvr1)(PORT=1526)) ) (CONNECT_DATA=(SERVICE_NAME=PRDN.WORLD)) ) (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=prodsvr2)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=prodsvr2)(PORT=1526)) ) (CONNECT_DATA=(SERVICE_NAME=PRDN.WORLD)) ) (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=prodsvr3)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=prodsvr3)(PORT=1526)) ) (CONNECT_DATA=(SERVICE_NAME=PRDN.WORLD)) ) ) PRODSVR2BATCH.OURCUSTOMER.COM = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr4.OURCUSTOMER.COM) (PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr4.OURCUSTOMER.COM) (PORT = 1526)) ) (CONNECT_DATA = (SERVICE_NAME = PRDN.WORLD) (SERVER=DEDICATED) ) )

SQLNET.ORA on Application Servers

All app servers should be setup in such a way that SQL*Net 2.3 client should not use IPC as a

mode of communication if available. If IPC is used then the load balancing will not work.

AUTOMATIC_IPC=FALSE

LISTENER.ORA on PRODSVR

The prodsvr1 machines should have the listener.ora file as follows. On the other machines, the

setup is similar except that the machine names are changed.

LISTENER =

(DESCRIPTION_LIST = (DESCRIPTION =

(4)

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr1.OURCUSTOMER.COM) (PORT = 1521))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) )

)

LISTENER1 =

(DESCRIPTION_LIST = (DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = prodsvr1.OURCUSTOMER.COM) (PORT = 1526)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /oracle/product/8.1.7) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = PRDN.WORLD) (ORACLE_HOME = /oracle/product/8.1.7) (SID_NAME = PRDN) ) ) SID_LIST_LISTENER1 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = PRDN.WORLD) (ORACLE_HOME = /oracle/product/8.1.7) (SID_NAME = PRDN) ) )

INIT.ORA on PRODSVR

The mts_dispatchers parameter of the prodsvr1 machine should have the following value.

MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR1.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)” MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR2.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)” MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR3.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)”

The same in prodsvr2 is similar but the order is changed to make the prodsvr2 the first dispatcher.

MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR2.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)”

(5)

MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR3.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)”

MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR1.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)”

The same goes for prodsvr3.

MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR3.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)” MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR1.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)” MTS_DISPATCHERS=”(PROTOCOL=TCP)(LISTENER=PRODSVR2.OURCUSTOMER.COM)(DISP ATCHERS=20)(CONNECTIONS=500)”

And finally since the prodsvr4 should be dedicated server only, the mts_dispatchers parameter

should have no value in init.ora file. The parameter should be commented out.

References

Related documents

The following subsections summarize the way to deploy and access HTML files, JSP pages, servlets, and utility classes in Apache Tomcat, Macromedia JRun, and Caucho Resin. The

– Download HelloServlet.java from source code archive – Place in development directory (e.g., C:\Servlets+JSP) – Compile (if errors, check CLASSPATH). – Move

include the fields that are included in the existing IRP 5.0 setup file. This delivery date of this single file will depend on the specifics of the servicing agreement, but should

If you're interfacing the audio connections with an accessory port on your radio, depending on the radio model and radio driver, you may need to have the Remote User use a

This research aimed to evaluate the incidence of Entomophthorales species in populations of spittlebugs pests of two species of pasture grass in Pindamonhangaba County, São Paulo

This should connect with MySQL server and allow you to create the test databases using the following commands;. ‣ CREATE DATABASE openeyestest; ‣ CREATE

• Dedicated hardware for server applications (Main Server, Archive Server, Setup Server, workstation) is required - Navigator - Mainviewer - Camera Control - Archive Client -

Riversand MDM Production environment includes Riversand Web Server, Database Server, Batch Server/Job Service server and existing Internal AD6. All Riversand MDM roles will be setup