Posts

Showing posts with the label CONCEPT

ALTER SYSTEM ARCHIVE LOG CURRENT vs ALTER SYSTEM SWITCH LOGFILE

Ambos comandos forzan el Switch de los grupos de Redo Log Online, pero ALTER SYSTEM SWITCH LOGFILE: Es asíncrono, no espera la confirmación que los archivos de redolog online se hayan sido archivados, mientras que ALTER SYSTEM ARCHIVE LOG CURRENT: Es síncrono y espera la confirmación que los Redo Log Online fueron archivados por el ARCHIVER. 00.- Nuestro ambiente: Un RAC de 2 nodos con 3 grupos de Redo Log Online en cada Instancia de Base de Datos. SQL> select inst_id, instance_name from gv$instance; INST_ID INSTANCE_NAME ---------- ---------------- 1 CURSO1 2 CURSO2 select thread#, group#, status,bytes/1024/1024 size_mb from v$log order by thread#, group#; THREAD# GROUP# STATUS ---------- ---------- ---------------- 1 1 INACTIVE 1 2 INACTIVE 1 3 CURRENT <---Grupo que esta siendo escrito por el Log Writter. 2 4 INACTIVE 2

Datapump – 03 Directorios

Una diferencia obvia entre Datapump y el export/import tradicional es el uso de objetos Directorio, lo cual algunas personas les causa un poco de confusión. Son objetos de base de datos que apuntan a un directorio específico en el sistema operativo, estos permiten flexibilidad en el manejo de códigos y script, a diferencia de poner explícitamente la ruta del directorio, lo que se conoce como *"quemar" o "harcodear",  solo utilizas este alias, es decir si la ruta cambia no afecta al código. Comencemos: Como crear un directorio: CREATE OR REPLACE DIRECTORY EXP_DIR AS '/u01/workarea'; Si requerimos que otros usuarios tengan acceso de lectura y/o escritura: GRANT READ, WRITE ON DIRECTORY EXP_DIR TO otro_usuario; Chequear quienes tienen permisos sobre el directorio: COL TABLE_NAME FOR A32 COL GRANTEE FOR A24 COL OWNER FOR A16 COL GRANTOR FOR A16 COL PRIVILEGE FOR A12 SELECT * FROM DBA_TAB_PRIVS WHERE TABLE_NAME='EXP_DIR'; Revisar los directori

NULLIF, NVL, NVL2, COALESCE Functions

create table hr . dummy (id number , name varchar2 ( 32 ), bdate date ) tablespace users; insert into hr . dummy (id,name, bdate ) values ( 3 , 'Carl' ,SYSDATE); insert into hr . dummy (id,name, bdate ) values ( 7 , 'Gary' ,SYSDATE); insert into hr . dummy (id,name, bdate ) values ( 2 ,NULL,SYSDATE); insert into hr . dummy (id,name, bdate ) values ( 6 ,NULL,SYSDATE); insert into hr . dummy (id,name, bdate ) values ( 1 , 'Anna' , SYSDATE); insert into hr . dummy (id,name, bdate ) values ( 5 , 'Fitzgerald' ,SYSDATE); insert into hr . dummy (id,name, bdate ) values ( 4 ,NULL,SYSDATE); insert into hr . dummy (id,name, bdate ) values ( 0 ,NULL,SYSDATE); commit; NVL2  lets you determine the value returned by a query based on whether a specified expression is null or not null NVL just return something whether expression is NULL. SELECT NAME, NVL2(NAME, 'Registered' , 'Pen