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. 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. - 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 pour les 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.
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 |
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 remarques sur les 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