Logging- und Diagnoseinformationen mit Cloud-Tabellen speichern

Sie können Cloud-Tabellen erstellen, in denen Tabellendaten im von Oracle verwalteten Cloud-Speicher gespeichert sind und die Tabellendaten keinen Datenbankspeicher belegen.

Cloud-Tabellen

Sie können Cloud-Tabellen als ergänzende Alternative zu datenbankinternen Tabellen erstellen. Alle Cloud-Tabellendaten werden in von Oracle verwaltetem Object Storage gespeichert. Von Oracle verwalteter Object Storage ist externer Speicher außerhalb der Datenbank, den Autonomous Database erstellt und verwaltet.

Mit Cloud-Tabellen können Sie selten verwendete Anwendungsloggingdaten, Diagnoseinformationen oder andere Daten speichern. In einigen vorhandenen Anwendungen, die nicht in Autonomous Database ausgeführt werden, können Sie diese Art von Informationen in Dateien in einem lokalen Dateisystem speichern (z.B. mit UTL_FILE-APIs). Solche Logging-Mechanismen und die zugehörigen Dateien können sehr hilfreich sein, wenn Sie Anwendungsfehler diagnostizieren und beheben müssen. Das Speichern von Informationen in Datenbanktabellen kann jedoch große Mengen an Datenbankspeicher für Daten verwenden, die selten verwendet werden. Mit Cloud-Tabellen werden die persistenten Daten im von Oracle verwalteten Object Storage gespeichert, ohne den Datenbankspeicher zu belegen.

SELECT- und DML-Einschränkungen für Cloud-Tabellen

Cloud-Tabellen funktionieren wie normale Datenbanktabellen mit einigen Einschränkungen. Mit den folgenden Ausnahmen können Sie SELECT- und DML-Anweisungen zur Datenbearbeitung verwenden:

  • MERGE-Anweisungen werden nicht unterstützt.
  • LOB-Spalten sind auf 10 MB Daten begrenzt.
  • DML-Nebenläufigkeitskontrolle ist anders und daher:
    • LOCK TABLE verhindert möglicherweise nicht nebenläufige DML wie bei einer Datenbanktabelle.
    • INSERT erhält keine Sperre für die Tabelle. Daher wird INSERT nie durch nebenläufige DML-Vorgänge blockiert.
    • Die Vorgänge UPDATE und DELETE erfordern eine exklusive Sperre für eine Cloud-Tabelle. Daher blockieren UPDATE- oder DELETE-Transaktionen nebenläufige UPDATE- oder DELETE-Vorgänge in einer Cloud-Tabelle.
  • Nur NOT NULL-Constraints werden durchgesetzt.
  • DML ist in einer Autonomous Database mit Lese-/Schreibzugriff wie für jede andere Tabelle zulässig. Cloud-Tabellen lassen auch DML-Vorgänge in einem aktualisierbaren Klon zu.

Cloud-Tabellen unterstützen Folgendes nicht:

  • Indexe
  • unsichtbare Spalten
  • Virtuelle Spalten
  • DML-Trigger
  • Mehr als 996 Säulen
  • Spalten des Typs "Boolescher Datentyp"

Lifecycle Management-Vorgänge und Cloud-Tabellen

Cloud-Tabellendaten werden in von Oracle verwaltetem Object Storage gespeichert. Das bedeutet, dass bestimmte Vorgänge in Autonomous Database Cloud-Tabellen anders verarbeiten als datenbankinterne Tabellen:

  • Cloudtabellendaten werden aus Backup und Recovery einer Autonomous Database-Instanz ausgeschlossen (die Daten werden nicht gesichert, und Sie können Cloudtabellendaten nicht wiederherstellen).

  • Cloud-Tabellendaten werden über von Oracle verwalteten Object Storage geschützt.

  • Die Lebenszyklusmanagementvorgänge, die sich auf den Status einer Autonomous Database-Instanz auswirken, wirken sich nicht auf die in Cloud-Tabellen gespeicherten Daten aus.

Die Benennung von Cloud-Tabellen in Object Storage wird für jede Autonomous Database-Instanz auf Basis ihrer OCID eindeutig definiert. Das bedeutet, dass jeder Vorgang, der eine neue OCID für eine vorhandene Datenbank ändert oder einführt, Auswirkungen auf Cloud-Tabellen hat. Im Folgenden werden die Auswirkungen von Lebenszyklusvorgängen auf Cloud-Tabellendaten dargestellt.

Lebenszyklusvorgang Verfügbarkeit von Cloud-Tabellendaten
Datenbankklon der gleichen Region Cloud-Tabelle wird ohne Cloud-Tabellendaten geklont
Regionsübergreifender Datenbankklon Cloud-Tabelle wird ohne Cloud-Tabellendaten geklont
Gleiche Region (lokale) Autonomous Data Guard-Standby Auf Cloud-Tabellen- und Cloud-Tabellendaten kann zugegriffen werden
Regionsübergreifende Autonomous Data Guard-Standby Cloud-Tabelle ist in der Standbydatenbank ohne Cloud-Tabellendaten verfügbar
Gleiche Region (lokaler) backupbasierter Disaster-Recovery-Peer Auf Cloud-Tabellen- und Cloud-Tabellendaten kann zugegriffen werden
Regionsübergreifender, backupbasierter Disaster-Recovery-Peer Cloud-Tabelle ist in der Standbydatenbank ohne Cloud-Tabellendaten verfügbar
Lifecycle-Management-Vorgänge, die sich auf die SCN/den Zeitstempel einer Autonomous Database-Instanz auswirken, einschließlich:
  • Langfristiges Backup
  • Datenbank wiederherstellen (Point in Time Restore)
  • Von Backup klonen

Die Cloud-Tabelle wird weiterhin aktualisiert, und der alte Status der Cloud-Tabellendaten wird nicht beibehalten oder wiederhergestellt. Das bedeutet, dass nur die aktuellen Cloud-Tabellendaten verfügbar sind.

Lifecycle-Management-Vorgänge, einschließlich:
  • Ressourcenzuweisung verwalten
  • Verschieben
  • Minimieren
  • Rename
  • Modus: Schreibgeschützt/Lesezugriff
  • Workload-Typ ändern: z.B. von Data Warehouse in Transaktionsverarbeitung
Keine Auswirkungen auf Cloud-Tabellen oder Cloud-Tabellendaten

Cloud-Tabellen erstellen

Zeigt die Schritte zum Erstellen einer Cloud-Tabelle in Autonomous Database an.

So erstellen Sie eine Cloud-Tabelle:

  1. Führen Sie die Prozedur CREATE_CLOUD_TABLE aus.

    Beispiele:

    BEGIN
      DBMS_CLOUD.CREATE_CLOUD_TABLE(
       table_name  => 'CLOUD_TABLE_TEST',
       column_list => 'I INTEGER, STR1 VARCHAR2(32)' );
    END;
    /

    Weitere Informationen finden Sie unter Prozedur CREATE_CLOUD_TABLE.

  2. Fügen Sie Daten in die Cloud-Tabelle ein.
    INSERT INTO cloud_table_test VALUES (1, 'xyz');
  3. Wählen Sie Daten aus einer Cloud-Tabelle aus.
    SELECT * FROM cloud_table_test;
    I          STR1
    ---------- --------------------------------
    1          xyz                            

Verwenden Sie DROP TABLE, wenn Sie eine Cloud-Tabelle löschen möchten.

Beispiele:

DROP TABLE CLOUD_TABLE_TEST;

Cloud-Tabellen unterstützen den Papierkorb nicht.

Weitere Informationen finden Sie unter Cloud-Tabellenhinweise.

Cloud-Tabellennotizen

Enthält Hinweise zu Cloud-Tabellen:

  • Sie können die Berechtigungen SELECT, INSERT und UPDATE für eine Cloud-Tabelle erteilen. Eine Cloud-Tabelle kann keine weiteren Berechtigungen erhalten.

    Weitere Informationen finden Sie unter Berechtigung und Rollenautorisierung konfigurieren.

  • Cloud-Tabellen-Constraints sind auf Constraints im RELY DISABLE NOVALIDATE-Modus beschränkt. Dies bedeutet, dass das Constraint nicht durchgesetzt wird. Die einzige Ausnahme ist für NOT NULL-Constraints.

    Cloud-Tabellen unterstützen alle NOT NULL-Constraint-Modi, einschließlich des Standardmodus (ENABLE VALIDATE). Die Constraints PRIMARY KEY, UNIQUE, FOREIGN KEY und NOT NULL werden unterstützt. CHECK-Constraints werden nicht unterstützt.

    Sie können Constraints im Rahmen von COLUMN_LIST inline deklarieren.

    Beispiele:

    BEGIN
      DBMS_CLOUD.CREATE_CLOUD_TABLE(
            table_name  => 'CLOUD_TAB_WITH_CONSTRAINTS',
            column_list => 'PK INTEGER,
                DATE_ID INT REFERENCES DATE_DIM(DATE_ID) RELY DISABLE NOVALIDATE,
                VAL NUMBER NOT NULL,
                CONSTRAINT CLOUD_TAB_PK PRIMARY KEY(PK) RELY DISABLE NOVALIDATE');
    END;
    /

    Weitere Einschränkungen bei Cloud-Tabellen finden Sie unter Cloud-Tabellenhinweise.

  • Das Package DBMS_CLOUD ist ein Rechtepackage des ausführenden Benutzers. Mit der Prozedur DBMS_CLOUD.CREATE_CLOUD_TABLE können Sie nur eine Tabelle im Schema des ausführenden Benutzers erstellen.

    Weitere Informationen finden Sie unter Rechte des ausführenden Benutzers und Rechteklausel des ausführenden Benutzers.

  • Der Parameter column_list in einem DBMS_CLOUD.CREATE_CLOUD_TABLE-Prozeduraufruf kann die Klausel DEFAULT enthalten, die wie die Klausel DEFAULT in CREATE TABLE funktioniert. Weitere Informationen finden Sie unter CREATE TABLE.

    Beispiele:

    BEGIN
      DBMS_CLOUD.CREATE_CLOUD_TABLE(
       table_name  => 'CLOUD_TABLE_TEST_DEFAULT',
       column_list => 'I INTEGER, STR2 VARCHAR2(32) DEFAULT ''ABC''');
    END;
    /

    Anschließend können Sie Daten mit Standardwerten einfügen. Beispiele:

    INSERT INTO cloud_table_test_default (i) VALUES (1); 
    1 row created. 
    INSERT INTO cloud_table_test_default VALUES (2, default);
    1 row created.
    INSERT INTO cloud_table_test_default VALUES (3, null);
    1 row created.
    INSERT INTO cloud_table_test_default VALUES (4, 'xyz');
    1 row created.
    COMMIT;
    Commit complete.
    SELECT * FROM cloud_table_test_default ORDER BY i;
    
    I STR2 
    - ---- 
    1 ABC  
    2 ABC  
    3 null 
    4 xyz