Wie konfiguriere ich Amazon RDS Oracle-DB-Instances für die Zusammenarbeit mit gemeinsam genutzten Servern?

Lesedauer: 4 Minute
0

Wie konfiguriere ich Oracle-DB-Instances von Amazon Relational Database Service (Amazon RDS) für die Zusammenarbeit mit gemeinsam genutzten Servern?

Kurzbeschreibung

Oracle-Benutzer können sich mit RDS-DB-Instances entweder über dedizierte oder gemeinsam genutzte Serverprozesse verbinden. Bevor Sie gemeinsam genutzte Server verwenden, sollten Sie Folgendes bedenken:

  • Die Verwendung gemeinsam genutzter Server verursacht einen CPU-Overhead, was zu Leistungsproblemen führen kann.
  • Die Verwendung eines gemeinsam genutzten Servers bedeutet, dass die UGA-Zuweisung innerhalb eines großen Pools erfolgt. Vergewissern Sie sich, dass Sie genügend freien Platz in SGA haben, um gemeinsam genutzte Server unterzubringen. Unzureichender freier Speicherplatz kann dazu führen, dass im Warnungsprotokoll und in den Trace-Dateien der Instance die Fehlermeldung „Large Pool Free“ erscheint.
  • Die Verwendung gemeinsam genutzter Server kann zu einer häufigeren dynamischen Neuzuweisung des SGA-Speichers führen, was zu Leistungsproblemen führen kann.
  • Bei einem Neustart der Datenbank oder einem Failover kann ein starker Anstieg der Anwendungsverbindungen die Dispatcher überfordern, wenn der Parameter DISPATCHERS im Verhältnis zum Verbindungsdurchsatz nicht hoch genug eingestellt ist.
  • Das Ausführen von Batch-Prozessen, Abfragen mit langer Laufzeit, hohen Lasten oder langlaufenden DBA-Aufgaben auf gemeinsam genutzten Servern kann dazu führen, dass sich andere Aufträge in die Warteschlange einreihen, was zu Leistungsproblemen führen kann. Verwenden Sie dedizierte Server für große Aufträge.

Weitere Informationen über die Architektur von dem Oracle Database Shared Server und Dedicated Server finden Sie in der Oracle-Dokumentation unter Die Architektur gemeinsam genutzter Server verstehen.

Behebung

Abwägung der Vorteile und Einschränkungen bei der Verwendung gemeinsam genutzter Server:

  • Verwenden Sie gemeinsam genutzte Server für eine große Anzahl von OLTP-Sitzungen, die häufig verbunden und getrennt werden und leichte Operationen durchführen.
  • Verwenden Sie dedizierte Server für langlaufende Batch-Operationen und umfangreiche Verwaltungsaufgaben wie das Erstellen von Indexlisten.

Hinweis: Die folgenden Beispiele dienen als Grundlage für die Aktivierung gemeinsam genutzter Server mit der angegebenen Instance-Größe (db.r3.large instance). Administratoren sollten Parametergruppeneinstellungen anwenden, die den Arbeitsspeicher je nach Anwendungsfall optimieren. Weitere Informationen finden Sie unter Oracle auf Amazon RDS.

1.Ändern Sie die benutzerdefinierte Parametergruppe, um die folgenden Parameter auf den maximal zulässigen Wert oder auf einen Wert festzulegen, der Ihrem Anwendungsfall entspricht:

dispatchers=(PROTOCOL=TCP)(DISPATCHERS=30)
max_dispatchers=30

2.Melden Sie sich bei der Instance an und sehen Sie sich dann den Standardwert von SESSIONS für die Host-Größe an. Wenn Sie nicht die Standardeinstellungen verwenden, testen Sie die Instance mit der Standard-Parametergruppe:

SQL> show parameter sessions
2428

3.Setzen Sie SHARED\ _SERVERS und MAX\ _SHARED\ _SERVERS auf 10 % dieses Wertes:

sessions=2428
shared_servers=243
max_shared_servers=243

4.Setzen Sie LARGE\ _POOL\ _SIZE auf den Wert SHARED\ _SERVERS\ * 1 MB (243* 1048576 Byte in diesem Fall).

large_pool_size= 254803968

5.Überprüfen Sie v$sgastat für large\ _pool\ _size ''free memory', um sicherzustellen, dass die Größe des großen Pools angemessen ist.

SQL> select name, pool, bytes/1024/1024 megs from v$sgastat where name='free memory' and pool='large pool';
Name           POOL        Megs
-------------- ----------- -------
free memory    large pool  243

6.Sehen Sie sich die Parametergruppeneinstellungen an, die auf eine laufende Oracle-Instance angewendet werden und führen Sie dann die folgende SQL-Abfrage von der Instance aus:

select name, value from v$parameter where name in ('processes', 'sessions', 'shared_servers', 'dispatchers', 'memory_target', 'memory_max_target', 'large_pool_size');

7.Führen Sie die folgende SQL-Abfrage von Ihrer Oracle-Instance aus, um zu sehen, ob Sitzungen als gemeinsam genutzt verbunden sind:

SQL> select decode(server,'NONE','SHARED',server), count(*) from v$session
group by decode(server,'NONE','SHARED',server);

Um den Zugriff von dedizierten und gemeinsam genutzten Servern auf dieselbe Oracle-Instance zu ermöglichen, verwenden Sie duale tnsnames.ora-Einträge wie im folgenden Beispiel:

# make the default shared

  dbname =
  (DESCRIPTION=
      (ADDRESS_LIST=
          (ADDRESS=(PROTOCOL=TCP)(HOST=dbname.endpoint.amazonaws.com)(PORT=1521))
      )
      (CONNECT_DATA=
          (SID=dbname)
      )
  )

  # use the dedicated one for batch processes and dba tasks such as creating indexes

  dbname_d=
  (DESCRIPTION=
      (ADDRESS_LIST=
          (ADDRESS=(PROTOCOL=TCP)(HOST=dbname.endpoint.amazonaws.com)(PORT=1521))
      )
      (CONNECT_DATA=
          (SID=dbname)
          (SERVER=DEDICATED)
      )
  )

Ähnliche Informationen

Lokale Benennungsparameter in der Datei tnsnames.ora

Arbeiten mit DB-Parametergruppen

Anzeigen von Parameterwerten für eine DB-Parametergruppe

Neustarten einer DB-Instance

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Jahren