Utiliser des tables cloud pour stocker les informations de journalisation et de diagnostic
Vous pouvez créer des tables cloud où les données de table résident sur le stockage cloud géré par Oracle et où les données de table n'utilisent pas le stockage de base de données.
- A propos des tables cloud
Vous pouvez créer des tables cloud en tant qu'alternative complémentaire aux tables dans la base de données. - Création de tables cloud
Affiche les étapes de création d'une table cloud sur Autonomous Database. - Notes sur les tables cloud
Fournit des notes sur l'utilisation des tables cloud.
Rubrique parent : Développement
A propos des tables cloud
Vous pouvez créer des tables cloud en tant qu'alternative complémentaire aux tables dans la base de données.
Toutes les données de table cloud sont stockées dans Object Storage géré par Oracle. Le stockage d'objets géré par Oracle est un stockage externe, en dehors de la base de données, qu'Autonomous Database crée et gère.
Vous pouvez utiliser des tables cloud pour stocker des données de journalisation d'application rarement utilisées, des informations de diagnostic ou pour stocker d'autres données. Dans certaines applications existantes qui ne sont pas exécutées sur Autonomous Database, vous pouvez stocker ce type d'informations dans des fichiers sur un système de fichiers local (par exemple, en utilisant des API UTL_FILE
). Ces mécanismes de journalisation et les fichiers associés peuvent être très utiles lorsque vous devez diagnostiquer et résoudre les erreurs d'application. Toutefois, le stockage des informations dans les tables de base de données peut utiliser de grandes quantités de stockage de base de données pour les données rarement utilisées. A l'aide des tables cloud, les données persistantes sont enregistrées dans Object Storage géré par Oracle, sans consommer de stockage de base de données.
Le paramètre
CLOUD_TABLE_COMMIT_THRESHOLD
s'applique à toutes les tables cloud et peut être défini par tout utilisateur disposant du privilège ALTER SESSION
. Par conséquent, les tables cloud ne conviennent pas aux données critiques pour la sécurité lorsque les modifications validées doivent être durables et doivent être immédiatement visibles par les lecteurs simultanés. Pour cette raison, les tables cloud peuvent ne pas être appropriées pour des cas d'utilisation tels que les tables de journal d'audit.
Restrictions SELECT et DML pour les tables cloud
Les tables cloud fonctionnent comme les tables de base de données ordinaires avec certaines restrictions. Vous pouvez utiliser des instructions SELECT et DML, des instructions de manipulation de données, avec les exceptions suivantes :
- Les instructions
MERGE
ne sont pas prises en charge. - Les colonnes
LOB
sont limitées à 10 Mo de données. - Le contrôle de simultanéité DML est différent, et donc :
LOCK TABLE
n'empêche pas les opérations LMD simultanées, comme c'est le cas pour une table de base de données.INSERT
n'acquiert pas de verrou sur la table. Par conséquent, INSERT n'est jamais bloqué par des opérations LMD simultanées.- Les opérations
UPDATE
etDELETE
acquièrent toutes deux un verrou exclusif sur une table cloud. Par conséquent, les transactionsUPDATE
ouDELETE
bloquent les opérationsUPDATE
ouDELETE
simultanées sur une table cloud.
- Seules les contraintes NOT NULL sont appliquées.
- Le langage DML est autorisé dans une instance Autonomous Database en lecture-écriture comme pour toute autre table. Les tables cloud autorisent également les opérations LMD dans un clone actualisable.
Les tables cloud ne prennent pas en charge les éléments suivants :
- Index
- colonnes invisibles
- Colonnes virtuelles
- Déclencheurs LMD
- plus de 996 colonnes ;
- Colonnes de type de données booléennes
Opérations de gestion du cycle de vie et tables cloud
Les données de table cloud sont stockées dans Object Storage géré par Oracle. Cela signifie que certaines opérations sur Autonomous Database traitent les tables cloud différemment des tables dans la base de données, comme suit :
-
Les données de table cloud sont exclues de la sauvegarde et de la récupération d'une instance Autonomous Database (les données ne sont pas sauvegardées et vous ne pouvez pas restaurer les données de table cloud).
-
Les données de table cloud sont protégées via Object Storage géré par Oracle.
-
Les opérations de gestion du cycle de vie qui ont une incidence sur l'état d'une instance Autonomous Database n'ont aucune incidence sur les données stockées dans les tables cloud.
La dénomination des tables cloud dans Object Storage est définie de manière unique pour chaque instance Autonomous Database, en fonction de son OCID. Cela signifie que toute opération qui modifie ou introduit un nouvel OCID pour une base de données existante a un impact sur les tables cloud. L'exemple suivant illustre l'impact des opérations de cycle de vie sur les données de Cloud Table.
Opération de cycle de vie | Disponibilité des données de table cloud |
---|---|
Clone de base de données de même région | Table cloud clonée sans données de table cloud |
Clone de base de données inter-région | Table cloud clonée sans données de table cloud |
Même région (locale) de secours Autonomous Data Guard | Les données de table cloud et de table cloud sont accessibles |
Base de données de secours Autonomous Data Guard inter-région | Cloud Table est disponible sur la base de données de secours, sans les données Cloud Table |
Même région (locale) homologue de récupération après sinistre basé sur la sauvegarde | Les données de table cloud et de table cloud sont accessibles |
Pair de récupération après sinistre basé sur la sauvegarde inter-région | Cloud Table est disponible sur la base de données de secours, sans données Cloud Table |
Opérations de gestion du cycle de vie ayant une incidence sur le numéro SCN/l'horodatage d'une instance Autonomous Database, notamment :
|
La table cloud continuera d'être mise à jour et l'ancien état des données de la table cloud n'est pas conservé ou restauré. Cela signifie que seules les données actuelles de la table cloud sont disponibles. |
Opérations de gestion du cycle de vie, notamment :
|
Aucun impact sur les tables cloud ou sur les données des tables cloud |
Mise en mémoire tampon avec des tables cloud
Par défaut, les modifications LMD apportées aux tables cloud sont exportées vers Object Storage lors de la validation LMD. Toutefois, cela peut ne pas fonctionner correctement lorsque les instructions LMD sont structurées en petites transactions fréquemment validées. Pour améliorer les performances dans ce scénario, définissez le paramètre CLOUD_TABLE_COMMIT_THRESHOLD
afin d'activer la mise en mémoire tampon des modifications LMD de table cloud au sein d'une session.
Lorsque le paramètre CLOUD_TABLE_COMMIT_THRESHOLD
est défini sur une valeur différente de zéro, le système traite la valeur comme un seuil de nombre de modifications et les modifications de la table cloud sont mises en mémoire tampon jusqu'à ce que le nombre de modifications atteigne le seuil spécifié. Lorsque le seuil est atteint, les modifications mises en mémoire tampon sont exportées vers Object Storage. Les modifications mises en mémoire tampon sont également exportées lorsque la session se termine normalement, même si CLOUD_TABLE_COMMIT_THRESHOLD
n'a pas été atteint. Avant d'exporter les modifications mises en mémoire tampon, les sessions simultanées ne voient pas les modifications. Dans de rares cas, les modifications mises en mémoire tampon risquent de ne jamais être exportées et de ne pas être durables (c'est-à-dire que les modifications mises en mémoire tampon ne sont pas exportées vers la banque d'objets).
Pour plus d'informations, reportez-vous à CLOUD_TABLE_COMMIT_THRESHOLD.
Créer des tables cloud
Présente les étapes de création d'une table cloud sur Autonomous Database.
Pour créer une table cloud :
Utilisez DROP TABLE
pour supprimer une table cloud.
Par exemple :
DROP TABLE CLOUD_TABLE_TEST;
Les tables cloud ne prennent pas en charge la corbeille.
Pour plus d'informations, reportez-vous à Notes sur les tables cloud.
Notes de table cloud
Fournit des notes sur l'utilisation des tables cloud.
Voici les remarques relatives à l'utilisation des tables cloud :
-
Vous pouvez accorder des privilèges
SELECT
,INSERT
etUPDATE
pour une table cloud. Aucun autre privilège ne peut être accordé à une table cloud.Pour plus d'informations, reportez-vous à Configuration de l'autorisation de privilège et de rôle.
-
Les contraintes de table cloud sont limitées aux contraintes en mode
RELY DISABLE NOVALIDATE
, ce qui signifie que la contrainte n'est pas appliquée. La seule exception à cette règle concerne les contraintesNOT NULL
.Les tables cloud prennent en charge tous les modes de contrainte
NOT NULL
, y compris le mode par défaut (ENABLE VALIDATE
). Les contraintesPRIMARY KEY
,UNIQUE
,FOREIGN KEY
etNOT NULL
sont prises en charge ; les contraintesCHECK
ne le sont pas.Vous pouvez déclarer des contraintes en ligne dans le cadre de
COLUMN_LIST
.Par exemple :
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; /Reportez-vous à Notes sur la table cloud pour connaître les limites supplémentaires de la table cloud.
-
Le package
DBMS_CLOUD
est un package de droits de l'appelant. La procédureDBMS_CLOUD.CREATE_CLOUD_TABLE
vous permet uniquement de créer une table dans le schéma de l'appelant.Pour plus d'informations, reportez-vous à Clause Droits de l'appelant et Droits du créateur.
-
Le paramètre
column_list
dans un appel de procédureDBMS_CLOUD.CREATE_CLOUD_TABLE
peut inclure la clauseDEFAULT
, qui fonctionne comme la clauseDEFAULT
dansCREATE TABLE
. Pour plus d'informations, reportez-vous à CREATE TABLE.Par exemple :
BEGIN
DBMS_CLOUD.CREATE_CLOUD_TABLE
( table_name => 'CLOUD_TABLE_TEST_DEFAULT', column_list => 'I INTEGER, STR2 VARCHAR2(32) DEFAULT ''ABC'''); END; /Vous pouvez ensuite insérer des valeurs par défaut. Par exemple :
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
-
Vous pouvez utiliser le paramètre d'initialisation
CLOUD_TABLE_COMMIT_THRESHOLD
pour activer la mise en mémoire tampon pour les tables cloud. Pour plus d'informations, reportez-vous à CLOUD_TABLE_COMMIT_THRESHOLD.