Speichern temporärer Daten in einem Instance-Speicher von RDS für Oracle - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Speichern temporärer Daten in einem Instance-Speicher von RDS für Oracle

Verwenden Sie einen Instance-Speicher für die temporären Tabellenräume und den Smart-Flash-Cache (Flash-Cache) der Datenbank in unterstützten DB-Instance-Klassen von RDS für Oracle.

Übersicht über den Instance-Speicher von RDS für Oracle

Ein Instance-Speicher stellt temporären Speicher auf Blockebene für eine DB-Instance von RDS für Oracle bereit. Sie können einen Instance-Speicher für das temporäre Speichern von Informationen verwenden, die sich häufig ändern.

Ein Instance-Speicher basiert auf Non-Volatile Memory Express (NVMe)-Geräten, die physisch mit dem Hostcomputer verbunden sind. Der Speicher ist für niedrige Latenzen, Random-I/O-Leistung und sequentiellen Lesedurchsatz optimiert.

Die Größe des Instance-Speichers variiert je nach DB-Instance-Typ. Weitere Informationen zum Instance-Speicher finden Sie unter Instance-Speicher von Amazon EC2 im Benutzerhandbuch für Amazon Elastic Compute Cloud für Linux-Instances.

Datentypen im Instance-Speicher von RDS für Oracle

Sie können die folgenden Typen temporärer Daten von RDS für Oracle in einem Instance-Speicher ablegen:

Ein temporärer Tabellenraum

Oracle Database verwendet temporäre Tabellenräume, um Zwischenergebnisse von Abfragen zu speichern, die nicht in den Speicher passen. Größere Abfragen können große Mengen an Zwischendaten generieren, die vorübergehend zwischengespeichert werden müssen, aber nicht dauerhaft bestehen müssen. Ein temporärer Tabellenräum ist insbesondere nützlich für Sortierungen, Hash-Aggregationen und Joins. Wenn Ihre DB-Instance von RDS für Oracle die Enterprise Edition oder Standard Edition 2 verwendet, können Sie einen temporären Tabellenraum in einem Instance-Speicher ablegen.

Der Flash-Cache

Der Flash-Cache verbessert die Leistung von zufälligen Einzelblock-Lesevorgängen im konventionellen Pfad. Es empfiehlt sich, den Cache so zu dimensionieren, dass er den größten Teil Ihres aktiven Datasets aufnehmen kann. Wenn Ihre DB-Instance von RDS für Oracle die Enterprise Edition verwendet, können Sie den Flash-Cache in einem Instance-Speicher ablegen.

Standardmäßig ist ein Instance-Speicher für einen temporären Tabellenraum konfiguriert, jedoch nicht für den Flash-Cache. Sie können Oracle-Datendateien und Datenbankprotokolldateien nicht in einem Instance-Speicher ablegen.

Vorteile des Instance-Speichers von RDS für Oracle

Sie könnten erwägen, einen Instance-Speicher zu verwenden, um temporäre Dateien und Caches zu speichern, deren Verlust Sie hinnehmen können. Wenn Sie die DB-Leistung verbessern möchten oder wenn eine steigende Workload Leistungsprobleme für Ihren Amazon-EBS-Speicher verursacht, sollten Sie eine Skalierung auf eine Instance-Klasse in Betracht ziehen, die einen Instance-Speicher unterstützt.

Wenn Sie Ihren temporären Tabellenraum und Flash-Cache in einem Instance-Speicher ablegen, erhalten Sie folgende Vorteile:

  • Niedrigere Lese-Latenzen

  • Höherer Durchsatz

  • Geringere Auslastung Ihrer Amazon-EBS-Volumes

  • Geringere Speicher- und Snapshot-Kosten aufgrund geringerer Amazon-EBS-Last

  • Weniger Druck, hohe IOPS bereitzustellen, was möglicherweise Ihre Gesamtkosten senkt

Indem Sie Ihren temporären Tabellenraum im Instance-Speicher ablegen, erzielen Sie eine sofortige Leistungssteigerung für Abfragen, die temporären Speicherplatz verwenden. Wenn Sie den Flash-Cache im Instance-Speicher ablegen, haben zwischengespeicherte Blocklesevorgänge in der Regel eine viel geringere Latenz als Amazon-EBS-Lesevorgänge. Der Flash-Cache muss „aufgewärmt“ werden, bevor er Leistungsvorteile bietet. Der Cache wärmt sich selbst auf, da die Datenbank Blöcke in den Flash-Cache schreibt, wenn sie für den Datenbankpuffer-Cache zu alt werden.

Anmerkung

In einigen Fällen verursacht der Flash-Cache aufgrund der Cache-Verwaltung einen Leistungs-Overhead. Bevor Sie den Flash-Cache in einer Produktionsumgebung aktivieren, sollten Sie Ihre Workload analysieren und den Cache in einer Testumgebung testen.

Unterstützte Instance-Klassen für den Instance-Speicher von RDS für Oracle

Amazon RDS unterstützt den Instance-Speicher für die folgenden DB-Instance-Klassen:

  • db.m5d

  • db.r5d

  • db.x2idn

  • db.x2iedn

RDS für Oracle unterstützt die vorgenannten DB-Instance-Klassen nur für das BYOL-Lizenzmodell. Weitere Informationen finden Sie unter Unterstützte RDS für Oracle-DB-Instance-Klassen und Bringen Sie Ihre eigene Lizenz (BYOL) für EE mit und SE2.

Wenn Sie den gesamten Instance-Speicher für die unterstützten Instance-Typen anzeigen möchten, führen Sie den folgenden Befehl in der AWS-CLI aus.

aws ec2 describe-instance-types \ --filters "Name=instance-type,Values=*5d.*large*" \ --query "InstanceTypes[?contains(InstanceType,'m5d')||contains(InstanceType,'r5d')][InstanceType, InstanceStorageInfo.TotalSizeInGB]" \ --output table

Der vorhergehende Befehl gibt die unformatierte Gerätegröße für den Instance-Speicher zurück. RDS für Oracle verwendet einen kleinen Teil dieses Speicherplatzes für die Konfiguration. Der Speicherplatz im Instance-Speicher, der für temporäre Tabellenräume oder den Flash-Cache zur Verfügung steht, ist etwas kleiner.

Unterstützte Engine-Versionen für den Instance-Speicher von RDS für Oracle

Der Instance-Speicher wird von folgenden Engine-Versionen von RDS für Oracle unterstützt:

  • Version 21.0.0.0.ru-2022-01.rur-2022-01.r1 oder höhere Versionen von Oracle Database 21c

  • 19.0.0.0.ru-2021-10.rur-2021-10.r1 oder höhere Versionen von Oracle Database 19c

Unterstützte AWS-Regionen für den Instance-Speicher von RDS für Oracle

Der Instance-Speicher ist in allen AWS-Regionen verfügbar, in denen einer oder mehrere dieser Instance-Typen unterstützt werden. Weitere Informationen zu den Instance-Klassen db.m5d und db.r5d finden Sie unter . Weitere Informationen zu den Instance-Klassen, die von Amazon RDS für Oracle unterstützt werden, finden Sie unter RDS für Oracle-DB-Instance-Klassen.

Kosten des Instance-Speichers von RDS für Oracle

Die Kosten des Instance-Speichers sind in die Kosten der Instances integriert, für die der Instance-Speicher aktiviert ist. Es entstehen keine zusätzlichen Kosten, wenn Sie einen Instance-Speicher auf einer DB-Instance von RDS für Oracle aktivieren. Weitere Informationen zu Instances, für die der Instance-Speicher aktiviert ist, finden Sie unter Unterstützte Instance-Klassen für den Instance-Speicher von RDS für Oracle.

Aktivieren eines Instance-Speichers von RDS für Oracle

Führen Sie einen der folgenden Schritte aus, um den Instance-Speicher für temporäre Daten von RDS für Oracle zu aktivieren:

Konfigurieren eines Instance-Speichers von RDS für Oracle

Standardmäßig werden 100 % des Instance-Speicherplatzes dem temporären Tabellenraum zugewiesen. Wenn Sie den Instance-Speicher für die Zuweisung von Speicherplatz für den Flash-Cache und den temporären Tabellenraum konfigurieren möchten, legen Sie die folgenden Parameter in der Parametergruppe für Ihre Instance fest:

db_flash_cache_size={DBInstanceStore*{0,2,4,6,8,10}/10}

Dieser Parameter gibt den Speicherplatz an, der für den Flash-Cache zugewiesen ist. Dieser Parameter ist nur für Oracle Database Enterprise Edition gültig. Der Standardwert ist {DBInstanceStore*0/10}. Wenn Sie für db_flash_cache_size einen Wert ungleich Null festlegen, aktiviert Ihre Instance von RDS für Oracle den Flash-Cache, nachdem Sie die Instance neu gestartet haben.

rds.instance_store_temp_size={DBInstanceStore*{0,2,4,6,8,10}/10}

Dieser Parameter gibt den Speicherplatz an, der für den temporären Tabellenraum zugewiesen ist. Der Standardwert ist {DBInstanceStore*10/10}. Dieser Parameter kann für Oracle Database Enterprise Edition geändert werden und ist für Standard Edition 2 schreibgeschützt. Wenn Sie für rds.instance_store_temp_size einen Wert ungleich Null festlegen, weist Amazon RDS Speicherplatz im Instance-Speicher für den temporären Tabellenraum zu.

Sie können die Parameter db_flash_cache_size und rds.instance_store_temp_size für DB-Instances festlegen, die keinen Instance-Speicher verwenden. In diesem Fall werden beide Einstellungen mit 0 ausgewertet, wodurch die Funktion deaktiviert wird. In diesem Fall können Sie dieselbe Parametergruppe für verschiedene Instance-Größen und für Instances verwenden, die keinen Instance-Speicher verwenden. Wenn Sie diese Parameter ändern, stellen Sie sicher, dass Sie die zugehörigen Instances neu starten, damit die Änderungen wirksam werden.

Wichtig

Wenn Sie Speicherplatz für einen temporären Tabellenraum zuweisen, erstellt Amazon RDS den temporären Tabellenraum nicht automatisch. Informationen zum Erstellen des temporären Tabellenraums im Instance-Speicher finden Sie unter Erstellen eines temporären Tabellenraums im Instance-Speicher.

Der kombinierte Wert der vorhergehenden Parameter darf 10/10 oder 100 % nicht überschreiten. Die folgende Tabelle veranschaulicht gültige und ungültige Parametereinstellungen.

db_flash_cache_size rds.instance_store_temp_size Erklärung

db_flash_cache_size={DBInstanceStore*0/10}

rds.instance_store_temp_size={DBInstanceStore*10/10}

Dies ist eine gültige Konfiguration für alle Editionen von Oracle Database. Standardmäßig weist Amazon RDS 100 % des Instance-Speicherplatzes dem temporären Tabellenraum zu. Dies ist die Standardeinstellung.

db_flash_cache_size={DBInstanceStore*10/10}

rds.instance_store_temp_size={DBInstanceStore*0/10}

Dieser Parameter ist nur für Oracle Database Enterprise Edition gültig. Standardmäßig weist Amazon RDS 100 % des Instance-Speicherplatzes dem Flash-Cache zu.

db_flash_cache_size={DBInstanceStore*2/10}

rds.instance_store_temp_size={DBInstanceStore*8/10}

Dieser Parameter ist nur für Oracle Database Enterprise Edition gültig. Amazon RDS weist 20 % des Instance-Speicherplatzes dem Flash-Cache und 80 % des Instance-Speicherplatzes dem temporären Tabellenraum zu.

db_flash_cache_size={DBInstanceStore*6/10}

rds.instance_store_temp_size={DBInstanceStore*4/10}

Dieser Parameter ist nur für Oracle Database Enterprise Edition gültig. Amazon RDS weist 60 % des Instance-Speicherplatzes dem Flash-Cache und 40 % des Instance-Speicherplatzes dem temporären Tabellenraum zu.

db_flash_cache_size={DBInstanceStore*2/10}

rds.instance_store_temp_size={DBInstanceStore*4/10}

Dieser Parameter ist nur für Oracle Database Enterprise Edition gültig. Amazon RDS weist 20 % des Instance-Speicherplatzes dem Flash-Cache und 40 % des Instance-Speicherplatzes dem temporären Tabellenraum zu.

db_flash_cache_size={DBInstanceStore*8/10}

rds.instance_store_temp_size={DBInstanceStore*8/10}

Dies ist eine ungültige Konfiguration, da der kombinierte Prozentsatz des Instance-Speicherplatzes 100 % übersteigt. In solchen Fällen gibt Amazon RDS bei einem Konfigurationsversuch einen Fehler aus.

Überlegungen beim Ändern des DB-Instance-Typs

Wenn Sie den DB-Instance-Typ ändern, kann sich dies auf die Konfiguration des Flash-Caches oder des temporären Tabellenraums im Instance-Speicher auswirken. Berücksichtigen Sie die folgenden Änderungen und deren Auswirkungen:

Sie skalieren die DB-Instance, die den Instance-Speicher unterstützt, hoch oder herunter.

Die folgenden Werte erhöhen oder verringern sich proportional zur neuen Größe des Instance-Speichers:

  • Die neue Größe des Flash-Caches.

  • Der Speicherplatz, der den temporären Tabellenräumen zugewiesen ist, die sich im Instance-Speicher befinden.

Beispielsweise stellt die Einstellung db_flash_cache_size={DBInstanceStore*6/10} auf einer db.m5d.4xlarge-Instance etwa 340 GB Flash-Cache-Speicherplatz bereit. Wenn Sie den Instance-Typ auf db.m5d.8xlarge hochskalieren, erhöht sich der Flash-Cache-Speicherplatz auf etwa 680 GB.

Sie ändern eine DB-Instance, die keinen Instance-Speicher verwendet, in eine Instance mit Instance-Speicher.

Wenn db_flash_cache_size auf einen Wert größer als 0 festgelegt wird, ist der Flash-Cache konfiguriert. Wird rds.instance_store_temp_size auf einen Wert größer als 0 festgelegt, wird der Instance-Speicherplatz zur Verwendung durch einen temporären Tabellenraum zugewiesen. RDS für Oracle verschiebt temporäre Dateien nicht automatisch in den Instance-Speicher. Informationen zur Verwendung des zugewiesenen Speicherplatzes finden Sie unter Erstellen eines temporären Tabellenraums im Instance-Speicher oder Hinzufügen einer temporären Datei zum Instance-Speicher auf einer Read Replica.

Sie ändern eine DB-Instance, die einen Instance-Speicher verwendet, in eine Instance ohne Instance-Speicher.

In diesem Fall entfernt RDS für Oracle den Flash-Cache. RDS erstellt die temporäre Datei neu, die sich derzeit im Instance-Speicher eines Amazon-EBS-Volumes befindet. Die maximale Größe der neuen temporären Datei entspricht der früheren Größe des rds.instance_store_temp_size-Parameters.

Arbeiten mit einem Instance-Speicher auf einer Oracle Read Replica

Read Replicas unterstützen den Flash-Cache und temporäre Tabellenräume in einem Instance-Speicher. Während der Flash-Cache genauso funktioniert wie auf der primären DB-Instance, sind bei temporären Tabellenräume folgende Unterschiede zu beachten:

  • Sie können keinen temporären Tabellenraum auf einer Read Replica erstellen. Wenn Sie einen neuen temporären Tabellenraum auf der primären Instance erstellen, repliziert RDS für Oracle die Tabellenrauminformationen ohne temporäre Dateien. Wenn Sie eine neue temporäre Datei hinzufügen möchten, verwenden Sie eine der folgenden Methoden:

    • Verwenden Sie das Amazon-RDS-Verfahren rdsadmin.rdsadmin_util.add_inst_store_tempfile. RDS für Oracle erstellt eine temporäre Datei im Instance-Speicher Ihrer Read Replica und fügt sie dem angegebenen temporären Tabellenraum hinzu.

    • Führen Sie den Befehl ALTER TABLESPACE … ADD TEMPFILE aus. RDS für Oracle legt die temporäre Datei im Amazon-EBS-Speicher ab.

    Anmerkung

    Die Größen und Speichertypen der temporären Datei können auf der primären DB-Instance und der Read Replica unterschiedlich sein.

  • Sie können die standardmäßige temporäre Tabellenraumeinstellung nur auf der primären DB-Instance verwalten. RDS für Oracle repliziert die Einstellung auf alle Read Replicas.

  • Sie können die temporären Tabellenraumgruppen nur auf der primären DB-Instance konfigurieren. RDS für Oracle repliziert die Einstellung auf alle Read Replicas.

Konfiguration einer temporären Tabellenraumgruppe in einem Instance-Speicher und Amazon EBS

Sie können eine temporäre Tabellenraumgruppe so konfigurieren, dass sie temporäre Tabellenräume sowohl in einem Instance-Speicher als auch in Amazon EBS einschließt. Diese Methode ist nützlich, wenn Sie mehr temporären Speicher benötigen, als aufgrund der Maximaleinstellung von rds.instance_store_temp_size zulässig ist.

Wenn Sie eine temporäre Tabellenraumgruppe sowohl in einem Instance-Speicher als auch in Amazon EBS konfigurieren, weisen die beiden Tabellenräume deutlich unterschiedliche Leistungsmerkmale auf. Oracle Database wählt den Tabellenraum für Abfragen basierend auf einem internen Algorithmus aus. Daher können ähnliche Abfragen in der Leistung variieren.

In der Regel erstellen Sie einen temporären Tabellenraum im Instance-Speicher wie folgt:

  1. Erstellen Sie einen temporären Tabellenraum im Instance-Speicher.

  2. Legen Sie den neuen Tabellenraum als temporären Standardtabellenraum der Datenbank fest.

Wenn die Größe des Tabellenraums im Instance-Speicher nicht ausreicht, können Sie wie folgt zusätzlichen temporären Speicher erstellen:

  1. Weisen Sie den temporären Tabellenraum im Instance-Speicher einer temporären Tabellenraumgruppe zu.

  2. Erstellen Sie einen neuen temporären Tabellenraum in Amazon EBS, falls noch keiner vorhanden ist.

  3. Weisen Sie den temporären Tabellenraum in Amazon EBS derselben Tabellenraumgruppe zu, die den Instance-Speicher-Tabellenraum enthält.

  4. Legen Sie die Tabellenraumgruppe als temporären Standardtabellenraum fest.

Im folgenden Beispiel wird davon ausgegangen, dass die Größe des temporären Tabellenraums im Instance-Speicher nicht Ihren Anwendungsanforderungen entspricht. In dem Beispiel wird der temporäre Tabellenraum temp_in_inst_store im Instance-Speicher erstellt und der Tabellenraumgruppe temp_group zugewiesen. Der vorhandene Amazon-EBS-Tabellenraum mit dem Namen temp_in_ebs wird dieser Gruppe hinzugefügt und diese Gruppe wird als temporärer Standardtabellenraum festgelegt.

SQL> EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace('temp_in_inst_store'); PL/SQL procedure successfully completed. SQL> ALTER TABLESPACE temp_in_inst_store TABLESPACE GROUP temp_group; Tablespace altered. SQL> ALTER TABLESPACE temp_in_ebs TABLESPACE GROUP temp_group; Tablespace altered. SQL> EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace('temp_group'); PL/SQL procedure successfully completed. SQL> SELECT * FROM DBA_TABLESPACE_GROUPS; GROUP_NAME TABLESPACE_NAME ------------------------------ ------------------------------ TEMP_GROUP TEMP_IN_EBS TEMP_GROUP TEMP_IN_INST_STORE SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE'; PROPERTY_VALUE -------------- TEMP_GROUP

Entfernen eines Instance-Speichers von RDS für Oracle

Wenn Sie den Instance-Speicher entfernen möchten, ändern Sie Ihre DB-Instance von RDS für Oracle so, dass sie einen Instance-Typ verwendet, der keinen Instance-Speicher unterstützt, wie db.m5 oder db.r5.