Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:rac_sqlnet_konfiguration

Rund um SQL*Net und Real Application Cluster

Load Balancing

RAC unterstütuzt die folgenden Loadbalancing-Mechanismen:

  • Client-side Loadbalancing
    Die Verteilung erfolgt durch den Oracle Client ( z.b. tnsnames.ora).
  • Server-side Loadbalancing
    Die Listener Prozesse der Knsoten tauschen regelmäßig Informationen aus und hängen die Verbindungen zum Client um. Die Konfiguration über die REMOTE_LISTENER Konfiguration.
    Es ist eine Connection-Count (round-robin-Verteilung) oder workload-basiert Verteilung der Sessions möglich.

Client-side Loadbalancing

Wichtig ist die Verwendung der VIP Interface Namen, diese sollten sauber im Netz aufgelößt werden können!
Mit LOAD_BALANCE = yes wird SQL*Net angewiesen zufällig einen der Einträge in der ADDRESS_LIST zu verwenden.

Eintrag in TNSNames.ora:

MYDB  =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = RACmydb1VIP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = RACmydb12VIP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = RACmydb13VIP)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVICE_NAME = opera)
    )
  )
 )

Server-side Loadbalancing

Die Listener kommunizieren mit Hilfe des Oracle PMON Prozesse untereinander über den Auslastungsgrad

Konfiguration: vor 11gR2
Eintrag eines TNSAliases für die anderen Listener mit dem Parameter REMOTE_LISTENER in init.ora eine jeden DB Knotens TNSNames Eintrag in der TNSNAmes im Oracle Home der Datenbank Instance auf jeden Knoten

ab 11gR2
Eintrag der SCAN Listener Adresse <name>:<port>

Wie ist die aktuelle Einstellung:

SELECT 
     name
    ,TO_CHAR(creation_date, 'mm-dd-yyyy hh24:mi:ss') created_on
    ,goal AS SRV_Workload_Management_Goal
    ,clb_goal AS onnection_Load_Balancing_Goal
    ,aq_ha_notifications AS AQ_High_Availability_Notific
  FROM dba_services
 WHERE name NOT LIKE 'SYS%'
 ORDER BY name

Quelle siehe auch: http://www.databasejournal.com/features/oracle/article.php/3666396/Oracle-10gR2-RAC-Load-Balancing-Features.htm

Einen Knoten des Clusters aus dem Benutzerzugriff nehmen

Szenario: Ein Node der Datenbank soll neu gestartet werden. Die Anwender sollen sich in den Tagen zuvor nicht mehr an diesen Knoten anmelden, damit sowenig Störungen wie möglich durch bereits angemeldete Sessions entstehen.

Ablauf:

  1. Clients: Anpassen der TNSNames der Clients (Adresseintrag des Knotens löschen)
  2. DB Knoten: Remote Listener Eintrag auf dem Knoten, der neu gestartet werden soll, entfernen.
    Damit wird der Knoten wird aus dem Load Balacing genommen.
    mit „alter system set REMOTE_LISTENER='' scope=memory sid='node2';
  3. Client: SQL*Plus Session ca. 20/30 mal starten um den Effekt zuprüfen!
  4. DB Knoten: Knoten vor dem Reboot mit „srvctl stop instance -d mydb -i node2“ stoppen
  5. Clients: Nach dem Reboot Client TNSNames wieder anpassen
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
dba/rac_sqlnet_konfiguration.txt · Zuletzt geändert: 2015/02/17 19:52 von Gunther Pippèrr