[26ai] DBMS_CLOUD — Capitulo Dos
![[26ai] DBMS_CLOUD — Capitulo Dos](/_next/image?url=https%3A%2F%2Fcloudmate-test.s3.us-east-1.amazonaws.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fa21fde07-5a03-4169-9247-2425a1ffe40a.jpg&w=3840&q=75)
El artículo también se encuentra publicado en Ingles English version.
Continuando con el artículo de la semana pasada, donde vimos la configuración y unos primeros usos de DBMS_CLOUD en el día a día, hoy continuaremos con la parte de Data Pump.
Dejo por aquí el enlace del primer capitulo:
[26ai] DBMS_CLOUD — Capitulo Uno
La idea del laboratorio es la siguiente:
Export una tabla a nuestro Bucket.
Importar la tabla que hemos exportado en el punto anterior
Así que sin más, vamos ha realizar cada punto:
Export a un Bucket
Vamos a definir un tabla que utilizaremos para exportar e importar:
SQL>
Create Table My_Grants As
Select TABLE_SCHEMA,TABLE_NAME,PRIVILEGE
From All_Tab_Privs;
Table created.
SQL> set linesize 1000 pages 1000
SQL> col TABLE_SCHEMA format a20
SQL> col table_name format a20
SQL> col privilege format a20
SQL> r
1* Select * From My_Grants FETCH FIRST 10 ROWS ONLY
TABLE_SCHEMA TABLE_NAME PRIVILEGE
-------------------- ------------------------------ --------------------
SYS DUAL SELECT
SYS SYSTEM_PRIVILEGE_MAP READ
SYS TABLE_PRIVILEGE_MAP READ
SYS USER_PRIVILEGE_MAP READ
SYS STMT_AUDIT_OPTION_MAP READ
SYS FINALHIST$ INSERT
SYS DM$EXPIMP_ID_SEQ SELECT
SYS MODELGTTRAW$ SELECT
SYS MODELGTTRAW$ INSERT
SYS PMAPGTT$ SELECT
Utilizaremos la propiedad DEFAULT_CREDENTIAL para setear nuestra credencial por defecto y así no tener que indicarla dentro del parfile del export.
SQL>
ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'TEST.DBA_IN_THE_SHADOW';
Database altered.
SQL>
Select PROPERTY_NAME,PROPERTY_VALUE
From database_properties
Where PROPERTY_NAME= 'DEFAULT_CREDENTIAL';
PROPERTY_NAME PROPERTY_VALUE
-------------------- ----------------------------------------
DEFAULT_CREDENTIAL TEST.DBA_IN_THE_SHADOW
Definimos el parfile:
SQL> ! vi export_to_bucket.par
SQL> ! cat export_to_bucket.par
DUMPFILE=<location_uri>/<TABLE>.dmp
LOGFILE=<TABLE>.log
TABLES=<SCHEMA>.<TABLE>
CONTENT=DATA_ONLY
LOGTIME=ALL
METRICS=YES
FLASHBACK_TIME=SYSTIMESTAMP
encryption_password=hari
Esto es lo que hemos definido:
DUMPILE: La ruta donde se va guardar el dmp, en nuestro caso es el Bucket más un nombre descriptivo.
LOGFILE: Nombre del log.
TABLES: Ahí indicamos la tabla que hemos creado previamente.
CONTENT=DATA_ONLY: Solo exportamos los datos
LOGTIME/METRICS: Métricas de tiempo de nuestro export.
FLASHBACK_TIME: Que sea un export consistente.
ENCRYPTION_PASSWORD: Encrypt de nuestro dmp.
Ejecutamos el export:
Consultamos que el dmp se ha generado correctamente en el Bucket:
SQL>
Select object_name, trunc(bytes / (1024*1024),2) MB
From
dbms_cloud.list_objects('DBA_IN_THE_SHADOW', '<location_uri>');
OBJECT_NAME MB
---------------------------------------- ----------
ORA7445pf_20260205085710_COM_1.zip 57.35
Wallet_OF2BAP.zip .02
Wallet_OF2BCE.zip .02
grant.dmp 0
grant.dmp_segments/aaaaaa 2
grant.dmp_segments/aaaaab .86
6 rows selected.
Fijémonos una cosa sobre el dmp que tenemos en nuestro Bucket. Tenemos tres archivos, cuando hemos indicado uno único archivo sin comodines, es decir, sin %L, %l, %U o %u. El tamaño de nuestro dmp es 0Mb y los fragmentos son los que tiene el peso, esto es porque Data Pump divide cada parte del archivo en fragmentos más pequeños para una carga más rápida.
Import desde Bucket
Ejecutamos el import creando una tabla previa para almacenar ahí la información:
SQL> CREATE TABLE MY_GRANTS_BCK AS SELECT * FROM MY_GRANTS WHERE 2 = 1;
Table created.
SQL> ! vi import_to_bucket.par
SQL> ! cat import_to_bucket.par
DUMPFILE=<location_uri>/<TABLE>.dmp
LOGFILE=MY_GRANTS.log
LOGTIME=ALL
METRICS=YES
REMAP_TABLE = TEST.MY_GRANTS:MY_GRANTS_BCK
encryption_password=yes
Esto es lo que hemos definido:
DUMPILE: La ruta donde se encuentra el dmp.
LOGFILE: Nombre del log.
LOGTIME/METRICS: Métricas de tiempo de nuestro export.
REMAP_TABLE: Queremos que la información del dmp se albergue en otra tabla
ENCRYPTION_PASSWORD= Encrypt de nuestro dmp.
Ejecutamos el import:
Perfecto, hemos podido exportar e importar un dmp desde el Bucket.
Espero que os guste. ¡Nos vemos en el próximo artículo!
![[26ai] ALERT_LOG_MAX_SIZE](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fcbb365d0-4428-4a41-930d-516ce59e3355.jpg&w=3840&q=75)
![[26ai] ConnStr Tool](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F5005f06e-946c-49ba-bfe8-7fe18d1075d9.png&w=3840&q=75)
![[26ai] Instalación de Oracle26ai en Linux 9](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fd9a6ba10-eb2d-4fee-8a0c-f4957cbdc676.png&w=3840&q=75)
![[OCI] Montaje de un Bucket como un FS](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F05595570-0fbd-46ce-9db4-d2f0e9f09003.png&w=3840&q=75)