Uso de tablas en la nube para almacenar información de registro y diagnóstico
Puede crear tablas en la nube en las que los datos de tabla residan en el almacenamiento en la nube gestionado por Oracle y en las que los datos de tabla no consuman almacenamiento de base de datos.
- Acerca de las tablas en la nube
Puede crear tablas en la nube como alternativa complementaria a las tablas en la base de datos. Todos los datos de la tabla en la nube se almacenan en el almacenamiento de objetos gestionado por Oracle. El almacenamiento de objetos gestionado por Oracle es un almacenamiento externo, fuera de la base de datos, que Autonomous Database crea y gestiona. - Crear tablas en la nube
Muestra los pasos para crear una tabla en la nube en Autonomous Database. - Notas de la tabla en la nube
Proporciona notas para tablas en la nube:
Tema principal: Desarrollo
Acerca de las Tablas en la Nube
Puede crear tablas en la nube como alternativa complementaria a las tablas de la base de datos. Todos los datos de la tabla en la nube se almacenan en el almacenamiento de objetos gestionado por Oracle. El almacenamiento de objetos gestionado por Oracle es un almacenamiento externo, fuera de la base de datos, que Autonomous Database crea y gestiona.
Puede utilizar tablas en la nube para almacenar datos de registro de aplicaciones, información de diagnóstico o para almacenar otros datos que no se utilizan con frecuencia. En algunas aplicaciones existentes que no se ejecutan en Autonomous Database, puede almacenar este tipo de información en archivos de un sistema de archivos local (por ejemplo, mediante las API de UTL_FILE
). Estos mecanismos de registro y los archivos asociados pueden ser muy útiles cuando necesita diagnosticar y resolver errores de la aplicación. Sin embargo, el almacenamiento de información en tablas de base de datos puede utilizar grandes cantidades de almacenamiento de base de datos para datos que se utilizan con poca frecuencia. Con las tablas en la nube, los datos persistentes se guardan en el almacenamiento de objetos gestionado por Oracle sin consumir almacenamiento de base de datos.
Restricciones SELECT y DML para tablas en la nube
Las tablas en la nube funcionan como tablas de base de datos ordinarias con algunas restricciones. Puede utilizar sentencias de manipulación de datos SELECT y DML, con las siguientes excepciones:
- Las sentencias
MERGE
no están soportadas. - Las columnas
LOB
están limitadas a 10 MB de datos. - El control de simultaneidad de DML es diferente y, por lo tanto:
LOCK TABLE
no puede evitar DML simultáneo como lo hace para una tabla de base de datos.INSERT
no adquiere un bloqueo en la tabla y, por lo tanto, las operaciones DML simultáneas nunca bloquean INSERT.- Las operaciones
UPDATE
yDELETE
adquieren un bloqueo exclusivo en una tabla en la nube. Por lo tanto, las transaccionesUPDATE
oDELETE
bloquean las operaciones simultáneasUPDATE
oDELETE
en una tabla en la nube.
- Solo se aplican las restricciones NOT NULL.
- DML está permitido en una instancia de Autonomous Database de lectura-escritura como lo está para cualquier otra tabla; las tablas en la nube también permiten operaciones DML en una clonación de refrescamiento.
Las tablas en la nube no soportan lo siguiente:
- Índices
- Columnas visibles
- Columnas Virtuales
- Disparadores DML
- Más de 996 columnas
- Columnas de tipo de datos booleanos
Operaciones de gestión del ciclo de vida y tablas en la nube
Los datos de la tabla en la nube se almacenan en el almacenamiento de objetos gestionado por Oracle. Esto significa que determinadas operaciones de Autonomous Database manejan tablas en la nube de forma diferente a las tablas de la base de datos, de la siguiente forma:
-
Los datos de la tabla de nube se excluyen de la copia de seguridad y recuperación de una instancia de Autonomous Database (no se realiza una copia de seguridad de los datos y no se pueden restaurar los datos de la tabla de nube).
-
Los datos de tabla en la nube están protegidos mediante el almacenamiento de objetos gestionado por Oracle.
-
Las operaciones de gestión del ciclo de vida que afectan al estado de una instancia de Autonomous Database no afectan a los datos almacenados en tablas en la nube.
La nomenclatura de tablas en la nube en Object Storage se define de forma única para cada instancia de Autonomous Database, según su OCID. Esto significa que cualquier operación que cambie o introduzca un nuevo OCID para una base de datos existente tiene un impacto en las tablas en la nube. A continuación se muestra el impacto de las operaciones de ciclo de vida en los datos de la tabla en la nube.
Operación de Ciclo de Vida | Disponibilidad de datos de tabla en la nube |
---|---|
Clonación de base de datos de la misma región | La tabla de nube se clona sin datos de tabla de nube |
Clonación de base de datos entre regiones | La tabla de nube se clona sin datos de tabla de nube |
Base de datos en espera de Autonomous Data Guard en la misma región (local) | Se puede acceder a los datos de tabla en la nube y tabla en la nube |
Base de datos en espera de Autonomous Data Guard entre regiones | La tabla en la nube está disponible en la base de datos en espera, sin los datos de la tabla en la nube |
Par de Recuperación ante desastres basada en copias de seguridad de la misma región (local) | Se puede acceder a los datos de tabla en la nube y tabla en la nube |
peer de recuperación ante desastres basada en copias de seguridad entre regiones | La tabla en la nube está disponible en la base de datos en espera, sin datos de tabla en la nube |
Operaciones de gestión del ciclo de vida que afectan al SCN/registro de hora de una instancia de Autonomous Database, que incluyen:
|
La tabla de nube se seguirá actualizando y el estado antiguo de los datos de la tabla de nube no se conservará ni restaurará. Esto significa que solo están disponibles los datos actuales de la tabla en la nube. |
Operaciones de gestión del ciclo de vida, que incluyen:
|
No afecta a las tablas en la nube ni a los datos de las tablas en la nube |
Crear tablas en la nube
Muestra los pasos para crear una tabla en la nube en Autonomous Database.
Para crear una tabla de nube:
Utilice DROP TABLE
cuando desee borrar una tabla en la nube.
Por ejemplo:
DROP TABLE CLOUD_TABLE_TEST;
Las tablas en la nube no soportan la papelera de reciclaje.
Consulte Notas de la tabla en la nube para obtener más información.
Notas de tabla de nube
Proporciona notas para tablas en la nube:
-
Puede otorgar privilegios
SELECT
,INSERT
yUPDATE
para una tabla en la nube. No se pueden otorgar otros privilegios a una tabla en la nube.Consulte Configuring Privilege and Role Authorization para obtener más información.
-
Las restricciones de la tabla en la nube están limitadas a restricciones en el modo
RELY DISABLE NOVALIDATE
, lo que significa que la restricción no se aplica. La única excepción es para las restriccionesNOT NULL
.Las tablas en la nube soportan todos los modos de restricción
NOT NULL
, incluido el modo por defecto (ENABLE VALIDATE
). Las restriccionesPRIMARY KEY
,UNIQUE
,FOREIGN KEY
yNOT NULL
están soportadas; las restriccionesCHECK
no están soportadas.Puede declarar restricciones en línea como parte de
COLUMN_LIST
.Por ejemplo:
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; /Consulte Notas de la tabla en la nube para conocer las limitaciones adicionales de la tabla en la nube.
-
El paquete
DBMS_CLOUD
es un paquete de derechos del invocador. El procedimientoDBMS_CLOUD.CREATE_CLOUD_TABLE
sólo permite crear una tabla en el esquema del invocador.Consulte Cláusula de Derechos del Invocador y Derechos del Definidor para obtener más información.
-
El parámetro
column_list
de una llamada de procedimientoDBMS_CLOUD.CREATE_CLOUD_TABLE
puede incluir la cláusulaDEFAULT
, que funciona como la cláusulaDEFAULT
enCREATE TABLE
. Consulte CREATE TABLE para obtener más información.Por ejemplo:
BEGIN
DBMS_CLOUD.CREATE_CLOUD_TABLE
( table_name => 'CLOUD_TABLE_TEST_DEFAULT', column_list => 'I INTEGER, STR2 VARCHAR2(32) DEFAULT ''ABC'''); END; /A continuación, puede insertar con los valores por defecto. Por ejemplo:
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