Ausführen allgemeiner Datenbank-Aufgaben für Oracle DB-Instances - Amazon Relational Database Service

Ausführen allgemeiner Datenbank-Aufgaben für Oracle DB-Instances

Im Folgenden erfahren Sie, wie Sie bestimmte allgemeine DBA-Aufgaben durchführen können, die mit den Datenbanken Ihrer Amazon RDS-DB-Instances in Oracle zusammenhängen. Um eine verwaltete Service-Erfahrung zu bieten, ermöglicht Amazon RDS keinen Shell-Zugriff auf DB-Instances. Amazon RDS schränkt auch den Zugriff auf einige Systemverfahren und Tabellen ein, die erweiterte Berechtigungen erfordern.

Ändern des globalen Namens einer Datenbank

Um den globalen Namen einer Datenbank zu ändern, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_util.rename_global_name. Die Prozedur rename_global_name hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_new_global_name

varchar2

Ja

Der neue globale Name für die Datenbank

Die Datenbank muss geöffnet sein, damit die Änderungen übernommen werden. Weitere Informationen über das Ändern des globalen Namens einer Datenbank finden Sie unter ALTER DATABASE in der Oracle-Dokumentation.

Im folgenden Beispiel wird der globale Name einer Datenbank geänder new_global_name.

EXEC rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => 'new_global_name');

Erstellen und Größenfestlegung von Tabellenräumen

Amazon RDS unterstützt nur Oracle Managed Files (OMF) für Datendateien, Protokolldateien und Kontrolldateien. Wenn Sie Dateien oder Protokolldateien erstellen, können Sie die physikalischen Dateinamen nicht festlegen.

Standardmäßig werden Tabellenräume mit aktivierter Auto-Erweiterung und ohne Obergrenze für die Größe erstellt. Durch diese Standardeinstellungen können Tabellenräume so sehr anwachsen, dass sie den gesamten zugewiesenen Speicherplatz verwenden. Wir empfehlen, dass Sie eine angemessene Maximalgröße für permanente und temporäre Tabellenräume festlegen, und dass Sie die Speicherverwendung sorgfältig überwachen.

Im folgenden Beispiel wird ein Tabellenraum mit dem Namen users2, mit einer Anfangsgröße von 1 GB und einer Maximalgröße von 10 GB erstellt:

CREATE TABLESPACE users2 DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 10G;

Im folgenden Beispiel wird ein temporärer Tabellenraum mit dem Namen erstell temp01:

CREATE TEMPORARY TABLESPACE temp01;

Wir raten Ihnen davon ab, Tabellenräume für kleine Dateien zu verwenden, da bei Tabellenräumen für kleine Dateien mit Amazon RDS for Oracle keine Größenänderung möglich ist. Sie können zu einem Tabellenraum für kleine Dateien jedoch eine Datendatei hinzufügen.

Sie können die Größe eines Tabellenraums mit großen Dateien mithilfe von änder ALTER TABLESPACE. Sie können die Größe in Kilobytes (KB), Megabytes (MB), Gigabytes (GB) oder Terabytes (TB) festlegen.

Im folgenden Beispiel wird ein Tabellenraum mit dem Namen users2 für große Dateien bis 200 MB erstellt.

ALTER TABLESPACE users2 RESIZE 200M;

Im folgenden Beispiel wird eine zusätzliche Datendatei zu einem Tabellenraum für kleine Dateien mit dem Namen hinzugefüg users2.

ALTER TABLESPACE users2 ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;

Einrichten des Standard-Tabellenraums

Um den Standard-Tablespace festzulegen, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_util.alter_default_tablespace. Die Prozedur alter_default_tablespace hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

tablespace_name

varchar

Ja

Der Name des Standard-Tabellenraums

Im folgenden Beispiel wird der Standard-Tabellenraum auf users2 gesetzt:

EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');

Einrichten des temporären Standard-Tabellenraums

Um den temporären Standard-Tablespace festzulegen, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_util.alter_default_temp_tablespace. Die Prozedur alter_default_temp_tablespace hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

tablespace_name

varchar

Ja

Der Name des temporären Standard-Tabellenraums

Im folgenden Beispiel wird der temporäre Standard-Tabellenraum auf temp01 gesetzt.

EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');

Überprüfung einer Datenbank

Um die Datenbank zu überprüfen, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_util.checkpoint. Die Prozedur checkpoint hat keine Parameter.

Im folgenden Beispiel wird die Datenbank stichprobenartig kontrolliert.

EXEC rdsadmin.rdsadmin_util.checkpoint;

Einstellen der verteilten Wiederherstellung

Um die verteilte Wiederherstellung festzulegen, verwenden Sie die Amazon-RDS-Prozeduren rdsadmin.rdsadmin_util.enable_distr_recovery und disable_distr_recovery. Die Prozeduren haben keine Parameter.

Im folgenden Beispiel wird die verteilte Wiederherstellung aktiviert.

EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;

Im folgenden Beispiel wird die verteilte Wiederherstellung deaktiviert.

EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;

Einstellen der Datenbank-Zeitzone

Sie können die Zeitzone Ihrer Amazon RDS Oracle-Datenbank auf folgende Weise festlegen:

  • Die Option Timezone

    Die Option Timezone ändert die Zeitzone auf Host-Ebene und wirkt sich auf alle Datumsspalten und -Werte aus, wie zum Beispiel auf SYSDATE. Weitere Informationen finden Sie unter Oracle-Zeitzone.

  • Das Amazon RDS-Verfahren rdsadmin.rdsadmin_util.alter_db_time_zone

    Die Prozedur alter_db_time_zone ändert die Zeitzone nur für bestimmte Datentypen und ändert nicht SYSDATE. Beim Einstellen der Zeitzone bestehen weitere Beschränkungen, die Sie in der Oracle-Dokumentation nachlesen.

Anmerkung

Sie können auch die Standardzeitzone für Oracle Scheduler festlegen. Weitere Informationen finden Sie unter Festlegen der Zeitzone für Oracle Scheduler-Aufgaben.

Die Prozedur alter_db_time_zone hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_new_tz

varchar2

Ja

Die neue Zeitzone als benannte Region oder ein absoluter Versatz von der koordinierten Weltzeit (UTC). Gültige Offsets liegen im Bereich von -12:00 bis +14:00.

Im folgenden Beispiel wird die Zeitzone auf UTC plus drei Stunden geändert.

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+3:00');

Im folgenden Beispiel wird die Zeitzone auf die Zeitzone „Afrika/Algerien“ geändert.

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Africa/Algiers');

Nachdem Sie die Zeitzone mithilfe der Prozedur alter_db_time_zone geändert haben, starten Sie Ihre DB-Instance neu, damit die Änderung übernommen wird. Weitere Informationen finden Sie unter Neustarten einer DB-Instance. Weitere Informationen zum Aktualisieren von Zeitzonen finden Sie unter Überlegungen zur Zeitzone.

Arbeiten mit externen Oracle-Tabellen

Externe Oracle-Tabellen sind Tabellen mit Daten, die sich nicht in der Datenbank befinden. Stattdessen befinden sich die Daten in externen Dateien, auf die die Datenbank zugreifen kann. Durch die Verwendung externer Tabellen können Sie auf die Daten zugreifen, ohne sie in die Datenbank zu laden. Weitere Informationen zu externen Tabellen finden Sie unter Managing External Tables in der Oracle-Dokumentation.

Mit Amazon RDS können Sie externe Tabellendateien in Verzeichnisobjekten speichern. Sie können ein Verzeichnisobjekt erstellen oder eines verwenden, das in der Oracle-Datenbank vordefiniert ist, z. B. das Verzeichnis DATA_PUMP_DIR. Weitere Informationen zum Erstellen von Verzeichnisobjekten finden Sie unter Erstellen und Löschen von Verzeichnissen im Hauptdatenspeicherbereich. Sie können die Ansicht ALL_DIRECTORIES abfragen, um die Verzeichnisobjekte für Ihre Amazon RDS Oracle DB-Instance aufzulisten.

Anmerkung

Verzeichnisobjekte zeigen auf den von Ihrer Instance verwendeten Datenspeicherplatz (Amazon EBS-Volume). Der belegte Speicherplatz – mit Datendateien, Redo-Logs, Audit- und Nachverfolgungsdateien sowie anderen Dateien – wird auf den zugewiesenen Speicherplatz angerechnet.

Sie verschieben eine externe Datendatei von einer Oracle-Datenbank in eine andere Datenbank, indem Sie das Paket DBMS_FILE_TRANSFER oder das Paket UTL_FILE verwenden. Die externe Datendatei wird von einem Verzeichnis auf der Quelldatenbank in das angegebene Verzeichnis auf der Zieldatenbank verschoben. Weitere Informationen zur Verwendung von DBMS_FILE_TRANSFER finden Sie unter Importieren mit Oracle Data Pump.

Nachdem Sie die externe Datendatei verschoben haben, können Sie damit eine externe Tabelle anlegen. Im folgenden Beispiel wird eine externe Tabelle erstellt, die die Datei emp_xt_file1.txt im Verzeichnis USER_DIR1 verwendet.

CREATE TABLE emp_xt ( emp_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), user_name VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY USER_DIR1 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (emp_id,first_name,last_name,user_name) ) LOCATION ('emp_xt_file1.txt') ) PARALLEL REJECT LIMIT UNLIMITED;

Angenommen, Sie möchten Daten, die sich in einer Amazon RDS Oracle DB-Instance befinden, in eine externe Datendatei verschieben. In diesem Fall können Sie die externe Datendatei füllen, indem Sie eine externe Tabelle anlegen und die Daten aus der Tabelle in der Datenbank auswählen. Die folgende SQL-Anweisung erzeugt z. B. die externe Tabelle orders_xt durch Abfrage der Tabelle orders in der Datenbank.

CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;

In diesem Beispiel werden die Daten in der Datei orders_xt.dmp im Verzeichnis DATA_PUMP_DIR gefüllt.

Generieren von Leistungsberichten mit Automatic Workload Repository (AWR)

Um Leistungsdaten zu sammeln und Berichte zu generieren, empfiehlt Oracle Automatic Workload Repository (AWR). AWR erfordert Oracle Database Enterprise Edition und eine Lizenz für die Diagnostics and Tuning Packs. Um AWR zu aktivieren, legen Sie den CONTROL_MANAGEMENT_PACK_ACCESS-Initialisierungsparameter entweder auf DIAGNOSTIC oder DIAGNOSTIC+TUNING fest.

Arbeiten mit AWR-Berichten in RDS

Um AWR-Berichte zu generieren, können Sie Skripte wie ausführe awrrpt.sql. Diese Skripte werden auf dem Datenbankhostserver installiert. In Amazon RDS haben Sie keinen direkten Zugriff auf den Host. Sie können jedoch Kopien von SQL-Skripten von einer anderen Installation von Oracle Database abrufen.

Sie können AWR auch verwenden, indem Sie Verfahren im SYS.DBMS_WORKLOAD_REPOSITORY-PL/SQL-Paket ausführen. Sie können dieses Paket verwenden, um Baselines und Snapshots zu verwalten und auch ASH- und AWR-Berichte anzuzeigen. Um beispielsweise einen AWR-Bericht im Textformat zu generieren, führen Sie das DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT-Verfahren aus. Sie können diese AWR-Berichte jedoch nicht über die erreich AWS Management Console.

Bei der Arbeit mit AWR empfehlen wir, die rdsadmin.rdsadmin_diagnostic_util-Verfahren zu verwenden. Sie können diese Verfahren verwenden, um Folgendes zu generieren:

  • AWR-Berichte

  • ASH-Berichte (Active Session History)

  • ADDM-Berichte (Automatic Database Diagnostic Monitor)

  • Oracle Data Pump Export-Dump-Dateien von AWR-Daten

Die rdsadmin_diagnostic_util-Verfahren speichern die Berichte im DB-Instance-Dateisystem. Sie können über die Konsole auf diese Berichte zugreifen. Sie können auch mithilfe der rdsadmin.rds_file_util-Verfahren auf Berichte zugreifen, und Sie können auf Berichte zugreifen, die mit der Option „S3-Integration“ in Amazon S3 kopiert werden. Weitere Informationen erhalten Sie unter Lesen von Dateien in einem DB-Instance-Verzeichnis und Amazon S3-Integration.

Sie können die rdsadmin_diagnostic_util-Verfahren in den folgenden Amazon RDS for Oracle-DB-Engine-Versionen verwenden:

  • Alle Versionen von Oracle Database 21c

  • 19.0.0.0.ru-2020-04.rur-2020-04.r1 und höhere Versionen von Oracle Database 19c

  • 12.2.0.1.ru-2020-04.rur-2020-04.r1 und höhere Versionen von Oracle Database 12c Release 2 (12.2)

  • 12.1.0.2.v20 und höhere Versionen von Oracle Database 12c Release 1 (12.1)

Geläufige Parameter für das Diagnose-Utility-Paket

Normalerweise verwenden Sie die folgenden Parameter, wenn AWR und ADDM mit dem rdsadmin_diagnostic_util-Paket verwaltet werden.

Parameter Datentyp Standard Erforderlich Beschreibung

begin_snap_id

NUMBER

Ja

Die ID des beginnenden Snapshots.

end_snap_id

NUMBER

Ja

Die ID des abschließenden Snapshots.

dump_directory

VARCHAR2

BDUMP

Nein

Das Verzeichnis, in das der Bericht oder die Exportdatei geschrieben werden soll. Wenn Sie ein nicht standardmäßiges Verzeichnis angeben, muss der Benutzer, der die rdsadmin_diagnostic_util-Verfahren ausführt, über Schreibberechtigungen für das Verzeichnis verfügen.

p_tag

VARCHAR2

Nein

Eine Zeichenfolge, die verwendet werden kann, um zwischen Backups zu unterscheiden, um den Zweck oder die Verwendung von Backups anzugeben, wie beispielsweise incremental oder daily.

Sie können bis zu 30 Zeichen angeben. Gültige Zeichen sind a-z, A-Z, 0-9, ein Unterstrich (_), ein Bindestrich (-) und ein Punkt (.). Bei einem Tag wird die Groß- und Kleinschreibung nicht beachtet. RMAN speichert Tags immer in Großbuchstaben, unabhängig davon, ob bei der Eingabe Groß- oder Kleinschreibung verwendet wird.

Tags müssen nicht eindeutig sein, daher können mehrere Backups das gleiche Tag haben. Wenn Sie kein Tag angeben, weist RMAN automatisch ein Standard-Tag mithilfe des Formats TAGYYYYMMDDTHHMMSS zu, wobei YYYY für das Jahr steht, MM für den Monat, DD für den Tag, HH für die Stunde (im 24-Stunden-Format), MM für die Minuten und SS für die Sekunden. Datum und Uhrzeit geben an, wann RMAN das Backup gestartet hat. Ein Backup mit dem Standardtag TAG20190927T214517 weist beispielsweise auf ein Backup hin, das am 27.09.2019 um 21:45:17 Uhr gestartet wurde.

Der Parameter p_tag wird für die folgenden Amazon-RDS-for-Oracle-DB-Engine-Versionen unterstützt:

  • Oracle Database 21c (21.0.0)

  • Oracle Datenbank 19c (19.0.0) mit 19.0.0.0.ru-2021-10.rur-2021-10.r1 und höher

  • Oracle Database 12c Release 2 (12.2) mit 12.2.0.1.ru-2021-10.rur-2021-10.r1 und höher

  • Oracle Database 12c Release 1 (12.1) mit 12.1.0.2.V26 und höher

report_type

VARCHAR2

HTML

Nein

Das Format des Berichts. Gültige Werte sind TEXT und HTML.

dbid

NUMBER

Nein

Ein gültiger Datenbankbezeichner (DBID), der in der DBA_HIST_DATABASE_INSTANCE-Ansicht für Oracle angezeigt wird. Wenn dieser Parameter nicht angegeben ist, verwendet RDS den aktuellen DBID, der in der V$DATABASE.DBID-Ansicht angezeigt wird.

Normalerweise verwenden Sie die folgenden Parameter, wenn Sie ASH mit dem rdsadmin_diagnostic_util-Paket verwalten.

Parameter Datentyp Standard Erforderlich Beschreibung

begin_time

DATE

Ja

Die Anfangszeit der ASH-Analyse.

end_time

DATE

Ja

Die Endzeit der ASH-Analyse.

slot_width

NUMBER

0

Nein

Die Dauer der Slots (in Sekunden), die im Abschnitt „Top-Aktivität“ des ASH-Berichts verwendet werden. Wenn dieser Parameter nicht angegeben ist, verwendet das Zeitintervall zwischen begin_time und end_time nicht mehr als 10 Slots.

sid

NUMBER

Null

Nein

Die Sitzungs-ID.

sql_id

VARCHAR2

Null

Nein

Die SQL-ID.

wait_class

VARCHAR2

Null

Nein

Der Name der Warteklasse.

service_hash

NUMBER

Null

Nein

Der Servicenamen-Hash.

module_name

VARCHAR2

Null

Nein

Der Modulname.

action_name

VARCHAR2

Null

Nein

Die Aktionsname.

client_id

VARCHAR2

Null

Nein

Die anwendungsspezifische ID der Datenbanksitzung.

plsql_entry

VARCHAR2

Null

Nein

Der PL/SQL-Einstiegspunkt.

Generieren eines AWR-Berichts

Verwenden Sie das rdsadmin.rdsadmin_diagnostic_util.awr_report-Verfahren, um einen AWR-Bericht zu generieren.

Im folgenden Beispiel wird ein AWR-Bericht für den Snapshot-Bereich 101–106 generiert. Die Ausgabetextdatei heißt awrrpt_101_106.txt. Sie können auf diesen Bericht in der zugreife AWS Management Console.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');

Im folgenden Beispiel wird ein HTML-Bericht für den Snapshot-Bereich 63–65 generiert. Die Ausgabe-HTML-Datei heißt awrrpt_63_65.html. Das Verfahren schreibt den Bericht in das nicht standardmäßige Datenbankverzeichnis namens AWR_RPT_DUMP.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');

Extrahieren von AWR-Daten in eine Dump-Datei

Verwenden Sie das rdsadmin.rdsadmin_diagnostic_util.awr_extract-Verfahren, um AWR-Daten in eine Dump-Datei zu extrahieren.

Im folgenden Beispiel wird der Snapshot-Bereich 101–106 extrahiert. Die Ausgabe-Dump-Datei heißt awrextract_101_106.dmp. Sie können über die Konsole auf diese Datei zugreifen.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);

Im folgenden Beispiel wird der Snapshot-Bereich 63–65 extrahiert. Die Ausgabe-Dump-Datei heißt awrextract_63_65.dmp. Die Datei wird im nicht standardmäßigen Datenbankverzeichnis namens gespeicher AWR_RPT_DUMP.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');

Generieren eines ADDM-Berichts

Verwenden Sie das rdsadmin.rdsadmin_diagnostic_util.addm_report-Verfahren, um einen ADDM-Bericht zu generieren.

Im folgenden Beispiel wird ein ADDM-Bericht für den Snapshot-Bereich 101–106 generiert. Die Ausgabetextdatei heißt addmrpt_101_106.txt. Sie können über die Konsole auf den Bericht zugreifen.

EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);

Im folgenden Beispiel wird ein ADDM-Bericht für den Snapshot-Bereich 63–65 generiert. Die Ausgabetextdatei heißt addmrpt_63_65.txt. Die Datei wird im nicht standardmäßigen Datenbankverzeichnis namens gespeicher ADDM_RPT_DUMP.

EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');

Generieren eines ASH-Berichts

Verwenden Sie das rdsadmin.rdsadmin_diagnostic_util.ash_report-Verfahren, um einen ASH-Bericht zu generieren.

Im folgenden Beispiel wird ein ASH-Bericht generiert, der die Daten von vor 14 Minuten bis zur aktuellen Zeit enthält. Der Name der Ausgabedatei verwendet das Format ashrptbegin_timeend_time.txt, wobei begin_time und end_time das Format YYYYMMDDHH24MISS verwenden. Sie können über die Konsole auf die Datei zugreifen.

BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => SYSDATE-14/1440, end_time => SYSDATE, report_type => 'TEXT'); END; /

Im folgenden Beispiel wird ein ASH-Bericht generiert, der die Daten vom 18. November 2019 um 18:07 Uhr bis zum 18. November 2019 um 18:15 Uhr enthält. Der Name des HTML-Ausgabeberichts lautet ashrpt_20190918180700_20190918181500.html. Der Bericht wird im nicht standardmäßigen Datenbankverzeichnis mit dem Namen gespeicher AWR_RPT_DUMP.

BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'), end_time => TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'), report_type => 'html', dump_directory => 'AWR_RPT_DUMP'); END; /

Zugriff auf AWR-Berichte über die Konsole oder CLI

Um auf AWR-Berichte zuzugreifen oder Dump-Dateien zu exportieren, können Sie die AWS Management Console oder AWS CLI verwenden. Weitere Informationen finden Sie unter Herunterladen einer Datenbank-Protokolldatei.

Für die Verwendung von Oracle-Datenbank-Links mit Amazon RDS-DB-Instances in der selben Virtual Private Cloud (VPC) oder in gleichrangigen VPCs sollten die beiden DB-Instances eine gültige Route untereinander besitzen. Überprüfen Sie die gültige Route zwischen den DB-Instances mithilfe Ihrer VPC-Routing-Tabellen und Netzwerk-Zugriffskontrolllisten (ACL).

Die Sicherheitsgruppe jeder DB-Instance muss den Eintritt und den Austritt von einer zur anderen DB-Instance erlauben. Die eingehenden und ausgehenden Regeln können sich auf Sicherheitsgruppen in der selben VPC oder in gleichrangingen VPCs beziehen. Weitere Informationen finden Sie unter Aktualisieren der Sicherheitsgruppen, um auf Peer-VPC-Gruppen zu verweisen.

Wenn Sie einen benutzerdefinierten DNS-Server mithilfe des DHCP-Options-Sets in Ihrer VPC konfiguriert haben, muss Ihr DNS-Server fähig sein, den Namen des Datenbank-Link-Ziels aufzulösen. Weitere Informationen finden Sie unter Einrichten eines benutzerdefinierten DNS-Servers.

Weitere Informationen über die Verwendung von Datenbank-Links mit Oracle Data Pump finden Sie unter Importieren mit Oracle Data Pump.

Einrichten der Standardversion für eine DB-Instance

Sie können Datenbankobjekte in einer privaten Umgebung neu definieren, einer so genannten Version. Mit der versionsbasierten Neudefinition können Sie die Datenbankobjekte einer Anwendung mit minimalen Ausfallzeiten aktualisieren.

Sie legen die Standardversion einer Amazon RDS-Oracle-DB-Instance mit der Amazon RDS-Prozedur fes rdsadmin.rdsadmin_util.alter_default_edition.

Das folgende Beispiel setzt die Standardversion für die Amazon RDS-Oracle-DB-Instance auf RELEASE_V1.

EXEC rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');

Das folgende Beispiel setzt die Standardversion für die Amazon RDS Oracle DB-Instance zurück auf die Oracle Standardeinstellung.

EXEC rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');

Weitere Informationen über die versionsbasierte Neudefinition von Oracle finden Sie unter About Editions and Edition-Based Redefinition in der Oracle-Dokumentation.

Aktivieren der Prüfung für die SYS.AUD$-Tabelle

Um das Auditing in der Datenbank-Audit-Trail-Tabelle SYS.AUD$ zu aktivieren, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table. Die einzige unterstützte Audit-Eigenschaft ist ALL. Sie können einzelne Anweisungen und Operationen (nicht) prüfen.

Die Aktivierung der Prüfung wird für Oracle DB-Instances unterstützt, die die folgenden Versionen ausführen:

  • Oracle Database 21c (21.0.0)

  • Oracle Database 19c (19.0.0)

  • Oracle Database 12c Release 2 (12.2)

  • Oracle Database 12c Release 1 (12.1.0.2.v14) und höher

Die Prozedur audit_all_sys_aud_table hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_by_access

Boolean

true

Nein

Auf true festlegen, um BY ACCESS zu prüfen. Auf false festlegen, um BY SESSION zu prüfen.

Anmerkung

In einer Single-Tenant-CDB funktionieren die folgenden Vorgänge, aber kein vom Kunden sichtbarer Mechanismus kann den aktuellen Status der Operationen erkennen. Prüfungsinformationen sind innerhalb der PDB nicht verfügbar. Weitere Informationen finden Sie unter Einschränkungen für eine Singletenant-CDB.

Die folgende Abfrage gibt die aktuelle Audit-Konfiguration für SYS.AUD$ für eine Datenbank zurück.

SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';

Die folgenden Befehle aktivieren die Prüfung von ALL auf SYS.AUD$ BY ACCESS.

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table; EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);

Der folgende Befehl aktiviert die Prüfung von ALL auf SYS.AUD$ BY SESSION.

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);

Weitere Informationen finden Sie unter AUDIT (Traditional Auditing) in der Oracle-Dokumentation.

Deaktivieren der Prüfung für die SYS.AUD$-Tabelle

Um das Auditing in der Datenbank-Audit-Trail-Tabelle SYS.AUD$ zu deaktivieren, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table. Diese Prozedur verwendet keine Parameter.

Die folgende Abfrage gibt die aktuelle Audit-Konfiguration für SYS.AUD$ für eine Datenbank zurück:

SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';

Der folgende Befehl deaktiviert die Prüfung von ALL auf SYS.AUD$.

EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;

Weitere Informationen finden Sie unter NOAUDIT (Traditional Auditing) in der Oracle-Dokumentation.

Bereinigen unterbrochener Online-Index-Builds

Zum Bereinigen fehlgeschlagener Online-Index-Builds verwenden Sie das Amazon RDS-Verfahren rdsadmin.rdsadmin_dbms_repair.online_index_clean.

Die Prozedur online_index_clean hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

object_id

binary_integer

ALL_INDEX_ID

Nein

Die Objekt-ID des Index. In der Regel können Sie die Objekt-ID aus dem ORA-08104-Fehlertext verwenden.

wait_for_lock

binary_integer

rdsadmin.rdsadmin_dbms_repair.lock_wait

Nein

Geben Sie rdsadmin.rdsadmin_dbms_repair.lock_wait an (Standardeinstellung), um zu versuchen, eine Sperre für das zugrunde liegende Objekt zu erhalten und den Vorgang zu wiederholen, bis ein interner Grenzwert erreicht ist, wenn die Sperre fehlschlägt.

Geben Sie rdsadmin.rdsadmin_dbms_repair.lock_nowait an, um zu versuchen, eine Sperre für das zugrunde liegende Objekt zu erhalten, den Vorgang jedoch nicht zu wiederholen, wenn die Sperre fehlschlägt.

Das folgende Beispiel bereinigt einen fehlgeschlagenen Online-Index-Build:

declare is_clean boolean; begin is_clean := rdsadmin.rdsadmin_dbms_repair.online_index_clean( object_id => 1234567890, wait_for_lock => rdsadmin.rdsadmin_dbms_repair.lock_nowait ); end; /

Weitere Informationen finden Sie unter ONLINE_INDEX_CLEAN Function in der Oracle-Dokumentation.

Überspringen von beschädigten Blöcken

Zum Überspringen von beschädigten Blöcken während Index- und Tabellenscans verwenden Sie das rdsadmin.rdsadmin_dbms_repair-Paket.

Die folgenden Verfahren umschließen die Funktionalität der sys.dbms_repair.admin_table-Prozedur und verwenden keine Parameter:

  • rdsadmin.rdsadmin_dbms_repair.create_repair_table

  • rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table

  • rdsadmin.rdsadmin_dbms_repair.drop_repair_table

  • rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table

  • rdsadmin.rdsadmin_dbms_repair.purge_repair_table

  • rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table

Die folgenden Verfahren verwenden dieselben Parameter wie ihre Gegenstücke im DBMS_REPAIR-Paket für Oracle-Datenbanken:

  • rdsadmin.rdsadmin_dbms_repair.check_object

  • rdsadmin.rdsadmin_dbms_repair.dump_orphan_keys

  • rdsadmin.rdsadmin_dbms_repair.fix_corrupt_blocks

  • rdsadmin.rdsadmin_dbms_repair.rebuild_freelists

  • rdsadmin.rdsadmin_dbms_repair.segment_fix_status

  • rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks

Weitere Informationen zum Umgang mit Datenbankbeschädigungen finden Sie unter DBMS_REPAIR in der Oracle-Dokumentation.

Beispiel Reaktion auf beschädigte Blöcke

Dieses Beispiel zeigt den grundlegenden Workflow für die Reaktion auf beschädigte Blöcke. Ihre Schritte hängen vom Ort und der Art Ihrer Blockbeschädigung ab.

Wichtig

Bevor Sie versuchen, beschädigte Blöcke zu reparieren, überprüfen Sie sorgfältig die DBMS_REPAIR-Dokumentation.

So überspringen Sie beschädigte Blöcke bei Index- und Tabellenscans

  1. Führen Sie die folgenden Verfahren aus, um Reparaturtabellen zu erstellen, wenn sie noch nicht vorhanden sind.

    EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
  2. Führen Sie die folgenden Verfahren aus, um nach vorhandenen Datensätzen zu suchen und diese ggf. zu löschen.

    SELECT COUNT(*) FROM SYS.REPAIR_TABLE; SELECT COUNT(*) FROM SYS.ORPHAN_KEY_TABLE; SELECT COUNT(*) FROM SYS.DBA_REPAIR_TABLE; SELECT COUNT(*) FROM SYS.DBA_ORPHAN_KEY_TABLE; EXEC rdsadmin.rdsadmin_dbms_repair.purge_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table;
  3. Führen Sie das folgende Verfahren aus, um nach beschädigten Blöcken zu suchen.

    SET SERVEROUTPUT ON DECLARE v_num_corrupt INT; BEGIN v_num_corrupt := 0; rdsadmin.rdsadmin_dbms_repair.check_object ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', corrupt_count => v_num_corrupt ); dbms_output.put_line('number corrupt: '||to_char(v_num_corrupt)); END; / COL CORRUPT_DESCRIPTION FORMAT a30 COL REPAIR_DESCRIPTION FORMAT a30 SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT, CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION FROM SYS.REPAIR_TABLE; SELECT SKIP_CORRUPT FROM DBA_TABLES WHERE OWNER = '&corruptionOwner' AND TABLE_NAME = '&corruptionTable';
  4. Führen Sie das Verfahren skip_corrupt_blocks aus, um das Überspringen von Beschädigungen für betroffene Tabellen zu aktivieren oder zu deaktivieren. Abhängig von der Situation müssen Sie möglicherweise auch Daten in eine neue Tabelle extrahieren und dann die Tabelle löschen, die den beschädigten Block enthält.

    Führen Sie das folgende Verfahren aus, um das Überspringen von Beschädigungen für betroffene Tabellen zu aktivieren.

    begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.skip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';

    Führen Sie das folgende Verfahren aus, um das Überspringen von Beschädigungen zu deaktivieren.

    begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.noskip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
  5. Wenn Sie alle Reparaturarbeiten abgeschlossen haben, führen Sie die folgenden Verfahren aus, um die Reparaturtabellen zu löschen.

    EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;

Größenanpassung des temporären Tabellenraums in einem Lesereplikat

Standardmäßig werden Oracle-Tabellenräume mit aktivierter Auto-Erweiterung und ohne Obergrenze für die Größe erstellt. Durch diese Standardeinstellungen können Tabellenräume bisweilen zu groß werden. Wir empfehlen, dass Sie eine angemessene Maximalgröße für permanente und temporäre Tabellenräume festlegen, und dass Sie die Speicherverwendung sorgfältig überwachen.

Verwenden Sie zur Größenanpassung des temporären Raums in einem Lesereplikat für eine Oracle-DB-Instance die Amazon RDS-Prozedur rdsadmin.rdsadmin_util.resize_temp_tablespace oder rdsadmin.rdsadmin_util.resize_tempfile.

Die Prozedur resize_temp_tablespace hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

temp_tbs

varchar2

Ja

Der Name des temporären Tabellenraums für die Größenanpassung.

size

varchar2

Ja

Sie können die Größe in Bytes (Standard), Kilobytes (KB), Megabytes (MB) oder Gigabytes (GB) angeben.

Die Prozedur resize_tempfile hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

file_id

binary_integer

Ja

Die Dateikennung des temporären Tabellenraums für die Größenanpassung.

size

varchar2

Ja

Sie können die Größe in Bytes (Standard), Kilobytes (KB), Megabytes (MB) oder Gigabytes (GB) angeben.

In den folgenden Beispielen wird die Größe eines temporären Tabellenraums mit der Bezeichnung TEMP auf 4 Gigabyte auf einem Lesereplikat geändert.

EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');

Im folgenden Beispiel wird die Größe eines temporären Tabellenraums auf der Grundlage des Tempfiles mit der Dateikennung 1 auf 2 MB auf einem Lesereplikat geändert.

EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');

Weitere Informationen zu Lesereplikaten für Oracle-DB-Instances finden Sie unter Arbeiten mit Oracle-Replikaten für Amazon RDS.

Bereinigen des Papierkorbs

Wenn Sie eine Tabelle löschen, entfernt Ihre Oracle-Datenbank nicht sofort ihren Speicherplatz. Die Datenbank benennt die Tabelle um und platziert sie und alle zugehörigen Objekte in einem Papierkorb. Durch das Bereinigen des Papierkorbs werden diese Elemente entfernt und der Speicherplatz freigegeben.

Verwenden Sie das Amazon RDS-Verfahren , um den gesamten Papierkorb zu bereinige rdsadmin.rdsadmin_util.purge_dba_recyclebin. Dieser Vorgang kann jedoch den Papierkorb von SYS- und RDSADMIN-Objekten nicht bereinigen. Wenn Sie diese Objekte löschen müssen, wenden Sie sich an den AWS Support.

Im folgenden Beispiel wird der gesamte Papierkorb bereinigt.

EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;

Festlegen der Richtlinie zur Datenredaktion für vollständige Redaktion

Verwenden Sie das Amazon-RDS-Verfahren rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val, um die angezeigten Standardwerte für eine Datenredaktions-Richtlinie für vollständige Redaktion auf Ihrer Amazon-RDS-Oracle-Instance zu ändern.

Die Prozedur dbms_redact_upd_full_rdct_val hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_number_val

number (Zahl

Null

Nein

Ändert den Standardwert für Spalten des Datentyps NUMBER.

p_binfloat_val

binary_float

Null

Nein

Ändert den Standardwert für Spalten des Datentyps BINARY_FLOAT.

p_bindouble_val

binary_double

Null

Nein

Ändert den Standardwert für Spalten des Datentyps BINARY_DOUBLE.

p_char_val

char

Null

Nein

Ändert den Standardwert für Spalten des Datentyps CHAR.

p_varchar_val

varchar2

Null

Nein

Ändert den Standardwert für Spalten des Datentyps VARCHAR2.

p_nchar_val

nchar

Null

Nein

Ändert den Standardwert für Spalten des Datentyps NCHAR.

p_nvarchar_val

nvarchar2

Null

Nein

Ändert den Standardwert für Spalten des Datentyps NVARCHAR2.

p_date_val

date

Null

Nein

Ändert den Standardwert für Spalten des Datentyps DATE.

p_ts_val

timestamp

Null

Nein

Ändert den Standardwert für Spalten des Datentyps TIMESTAMP.

p_tswtz_val

timestamp with time zone

Null

Nein

Ändert den Standardwert für Spalten des Datentyps TIMESTAMP WITH TIME ZONE.

p_blob_val

blob

Null

Nein

Ändert den Standardwert für Spalten des Datentyps BLOB.

p_clob_val

clob

Null

Nein

Ändert den Standardwert für Spalten des Datentyps CLOB.

p_nclob_val

nclob

Null

Nein

Ändert den Standardwert für Spalten des Datentyps NCLOB.

Im folgenden Beispiel wird der standardmäßige redigierte Wert für den Datentyp char auf * geändert:

EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');

Im folgenden Beispiel wird der standardmäßige redigierte Wert für die Datentypen number, date und char geändert:

begin rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val( p_number_val=>1, p_date_val=>to_date('1900-01-01','YYYY-MM-DD'), p_varchar_val=>'X'); end; /

Nachdem Sie die Standardwerte für vollständige Redaktion mit dem Prozess dbms_redact_upd_full_rdct_val geändert haben, starten Sie Ihre DB-Instance neu, damit die Änderung übernommen wird. Weitere Informationen finden Sie unter Neustarten einer DB-Instance.