Which two statements are true regarding server-side connect-time load balancing for a RAC database when using SCAN listeners?
A.
It is based on performance metrics provided by the database instances LREG processes.
B.
LOCAL_LISTENER must be configured to point to the SCAN to enable server-side load balancing.
C.
The service’s connection load balancing goal must be manually configured to enable server-side connect-time load balancing.
D.
It’s enabled only when LOAD_BALANCE=YES is included in the TNS entry used by the client.
E.
Server-side load balancing requires the REMOTE_LISTENER to point to the SCAN.
Explanation:
C: With server-side load balancing, the SCAN listener directs a connection request to the best instance currently providing the service, based on the -clbgoal and –
rlbgoal settings for the service.
E: The SCAN is an essential part of Database configuration. So, by default, the REMOTE_LISTENER parameter is set to the SCAN, assuming that the Database is
created using standard Oracle tools. This enables the instances to register with the SCAN Listeners as remote listeners to provide information on what services are
being provided by the instance, the current load, and a recommendation on how many incoming connections should be directed to the instance.
Note: Single Client Access Name (SCAN) is an Oracle Real Application Clusters (Oracle RAC) feature that provides a single name for clients to access Oracle
Databases running in a cluster.
Incorrect Answers:
B: You must set the LOCAL_LISTENER parameter to the node-VIP. If you need fully qualified domain names, then ensure that the LOCAL_LISTENER parameter
is set to the fully qualified domain name. By default, a node listener is created on each node in the cluster during cluster configuration. With Oracle Grid
Infrastructure, the node listener runs out of the Oracle Grid Infrastructure home and listens on the node-VIP using the specified port.
D: LOAD_BALANCE=on, not LOAD_BALANCE=YES, is used.
https://docs.oracle.com/database/121/JJDBC/scan.htm#JJDBC29151
https://docs.oracle.com/database/121/RACAD/hafeats.htm#RACAD7122
C,E
A,E:
LREG:
•registers instance information with the listener.
•is a critical background process for each database instance (if it is killed, Oracle goes down).
•does everything PMON used to do and report: service_update, service_register, service_died in the listener.log.
Yisus is right!
“Expert Oracle RAC 12c
Service Metrics
The MMON (Memory Monitor) database background process calculates the service-level metrics using service statistics, and these metrics are visible at v$activeservice dynamic performance view. Metrics are calculated at intervals of 5 seconds and 1 minute. In the following output, the first line shows the metrics calculated at 1-minute intervals, and the second line shows the metrics calculated at 5-second intervals.
Two sets of metrics are calculated by the MMON background process, one indicating service_time and the other indicating throughput. “”Depending on the service configuration, goodness of a service is calculated and PMON (Process Monitor) or LREG (Listener Registration – 12c) background processes communicate the service metrics to the SCAN and VIP listeners””.
…
But, in version 12c, this possibility is eliminated as the LREG parameter performs service registration and PMON is freed from listener registration.
…
In version 12c, listener registration is performed by a new mandatory background process named LREG. At database start, the LREG process polls the listeners specified in the local_listener and remote_listener parameters to identify whether the listeners are running. If the listeners are available, then the services are registered to the listeners by the LREG process. The earlier command to trace listener registration in version 11.2 is applicable to
version 12c also, but the listener registration details are written to an LREG trace file instead of a PMON trace file.
”
“With server-side load balancing, the SCAN listener directs a connection request to the best instance currently providing the service, based on the -clbgoal and –rlbgoal settings for the service.”
“server-side connect-time load balancing”
“http://docs.oracle.com/database/121/HABPT/config_cw.htm#HABPT4860
Server-side load balancing When you create an Oracle RAC database with DBCA, it automatically:
Configures and enables server-side load balancing
Sets the remote listener parameter to the SCAN listener (Note: If you do not use DBCA, you should set the REMOTE_LISTENER database parameter to scan_name:scan_port.)
Creates a sample client-side load balancing connection definition in the tnsnames.ora file on the server.
To further enhance connection load balancing, use the Load Balancing Advisory and define the connection load balancing for each service. Load Balancing Advisory provides information to applications about the current service levels that the database and its instances are providing. The load balancing advisory makes recommendations to applications about where to direct application requests to obtain the best service based on the policy that you have defined for that service. Load balancing advisory events are published through ONS. There are two types of service-level goals for run-time connection load balancing:
SERVICE_TIME: Attempts to direct work requests to instances according to response time. Load balancing advisory data is based on elapsed time for work done in the service plus available bandwidth to the service. An example for the use of SERVICE_TIME is for workloads such as internet shopping where the rate of demand changes. The following example shows how to set the goal to SERVICE_TIME for connections using the online service:
srvctl modify service -d db_unique_name -s online -B SERVICE_TIME -j SHORT
THROUGHPUT: Attempts to direct work requests according to throughput. The load balancing advisory is based on the rate that work is completed in the service plus available bandwidth to the service. An example for the use of THROUGHPUT is for workloads such as batch processes, where the next job starts when the last job completes. The following example shows how to set the goal to THROUGHPUT for connections using the sjob service:
srvctl modify service -d db_unique_name -s sjob -B THROUGHPUT -j LONG
So, “C” is wrong, is not to enable, but, to use!
why D wrong can you explain
we can use LOAD_BALANCE=YES
and LOAD_BALANCE= ON
and LOAD_BALANCE = TRUE
The values on, yes, and true are all equivalent, and any of these values can be used with the LOAD_BALANCE and FAILOVER parameters.
The values off, no, and false are also equivalent to each other, and any of these values can be used with the LOAD_BALANCE and FAILOVER parameters.
This is Client-side load balancing. They are asking for server-side load balancing