Utiliser des tables cloud pour stocker les informations de journalisation et de diagnostic
Vous pouvez créer des tables cloud dans lesquelles les données de table résident sur le stockage cloud géré par Oracle et dans lesquelles les données de table ne consomment pas de 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 le stockage d'objet géré par Oracle. Le stockage d'objets géré par Oracle est un stockage externe, en dehors de la base de données, créé et géré par Autonomous Database. - 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 le stockage d'objet géré par Oracle. Le stockage d'objets géré par Oracle est un stockage externe, en dehors de la base de données, créé et géré par Autonomous Database.
Vous pouvez utiliser les tables cloud pour stocker des données de journalisation d'application peu utilisées, des informations de diagnostic ou 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, à l'aide des API UTL_FILE
). Ces mécanismes de journalisation et les fichiers associés peuvent être très utiles lorsque vous avez besoin de diagnostiquer et de résoudre des 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 de tables cloud, les données persistantes sont enregistrées dans Object Storage géré par Oracle sans utiliser 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é d'accès LMD est différent et, par conséquent :
LOCK TABLE
ne peut pas empêcher les opérations LMD simultanées, comme 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 DML dans un clone actualisable.
Les tables cloud ne prennent pas en charge les éléments suivants :
- Indexes
- Colonne invisible
- Colonnes virtuelles
- Déclencheurs LMD
- Plus de 996 colonnes
- Colonnes de type de données boolean
Opérations de gestion du cycle de vie et tables cloud
Les données de table cloud sont stockées dans le stockage d'objet 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 table cloud.
Opération de cycle de vie | Disponibilité des données de table cloud |
---|---|
Clone de base de données de même région | La table cloud est clonée sans données de table cloud |
Clone de base de données inter-région | La table cloud est 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 dans plusieurs régions | La table cloud est disponible sur la base de données de secours, sans les données de table cloud |
Même homologue de récupération après sinistre basé sur une sauvegarde (local) de région | Les données de table cloud et de table cloud sont accessibles |
Homologue de récupération après sinistre basé sur la sauvegarde inter-régions | La table cloud est disponible sur la base de données de secours, sans données de table cloud |
Opérations de gestion du cycle de vie ayant un impact sur le numéro SCN/l'horodatage d'une instance Autonomous Database, notamment :
|
La table cloud continuera à être mise à jour et l'ancien état des données de 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 de table 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, procédez comme suit :
Utilisez DROP TABLE
pour supprimer une table cloud.
Exemple :
DROP TABLE CLOUD_TABLE_TEST;
Les tables cloud ne prennent pas en charge la corbeille.
Pour plus d'informations, reportez-vous aux notes sur le tableau cloud.
Remarques sur la 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 des privilèges et des rôles.
-
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
.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 aux notes de table cloud pour plus d'informations sur les limitations de 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 Invoker's Rights and Definer's Rights.
-
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.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. 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