Database Incarnation – Reset Logs

Cuando tenemos un proceso de restore de una base de datos que se encuentra registrada en un catalogo de rman, y al abrirla utilzamos :

alter database open resetlogs

Asistimos a una nueva versión de la base que tenemos registrada, por que estamos reseteando los ON LINE REDO LOGS.

Que ocurre cuando usamos la clausula resetlogs ?

Lo que ocurre es que estamos flusheando el contenidos de nuestros REDOLOGS , reiniciando nuestro(s) controlfile(s) para que pueda leer toda la nueva metadata y todos los cambios que puedieren haber afectado a los datafiles actuales. Sigue leyendo

FLASHBACK – Restore Point

Vamos a presentar algunas carateristicas del flashback en el motor de la base de Datos y este abrira una serie de articulos relativos a este tema.

  • Realizar consultas que devuelven últimos datos.
  • Realizar consultas que los metadatos de retorno que muestra una historia detallada de cambios en la base de datos.
  • Recuperar tablas o filas a un punto anterior en el tiempo.
  • Seguimiento automático de cambios y el archivo de datos transaccionales.
  • Deshacer una transacción y sus dependientes, mientras que las transacciones de la base de datos permanece en línea.

Algunas desventajas que podemos objetar :

  • No se puede usar Flashback como medio de recuperación en el caso de que la corrupción de la base de datos se da a nivel físico.
  • Es un producto pensado para volver atrás cambios no deseados realizados en un pasado cercano. Cuanto tiempo atrás uno puede ir, es configurable, pero limitado según la cantidad de transacciones que se realicen en la base y el espacio disponible para guardar las transacciones realizadas.

Prerequisitos

  1. La base debe encontrarse en modo ARCHIVELOG.
  2. La base debe encontrarse en modo FLASHBACK ON. (Podes Mirar Acá como hacer esta tarea)
  3. Debemos contar con espacio suficiente para los flashback logs.

La sintaxis es sencilla:

FLASHBACK DATABASE TO {SCN | TIMESTAMP [expr] | RESTORE POINT}

Lo que primero debemos hacer es chequear el numero de SCN que posee la base al momento de decidir a que punto en el tiempo vamos a retornar.

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
             15626203412

Sigue leyendo

GRID CONTROL : Stop and Deleting jobs in EMREP Oracle Grid Control

Commit No Nuisance - Heffernan Lane, Melbourne

Image by avlxyz via Flickr

Muchas veces nos encontramos con querer eliminar un target y o crear un target nuevo. Pero esto causa dolores de cabeza, y muchas veces se debe a que cuando deregistramos una instancia, de alguna manera el proceso no borra todo lo asociado a esa misma instancia.

Revisando este caso particular que me venia ocurriendo con algunos agentes decido ingresar a la base y consultar los jobs que estaban corriendo.

Ahi me doy cuenta que nunca se llego a eliminar ese JOB asociado a la instancia a eliminar.

SQL> connect sysman
Enter password:
Connected.
SQL> COL job_owner FORMAT a20
col JOB_OWNER format a60
col JOB_NAME format a20
set line 150
col JOB_OWNER  format a20
col JOB_NAME format a60
SQL> SQL> SQL> SQL> SQL> SQL>
SQL> select job_id, job_name, job_owner from mgmt_job where job_name like '%BACKUP%';

JOB_ID				 JOB_NAME						      JOB_OWNER
-------------------------------- ------------------------------------------------------------ --------------------
54FD965636DD1124E040010A71023A29 BACKUP_SPFILE_DAPRO					      DCARCAS
8C5110397F02588EE040007F01002492 RMAN_BACKUP_CTL					      JMERCADO
8C5110397EE9588EE040007F01002492 BACKUP_SPFILE_VOLT					      JMERCADO
8214018F4FEE7FD6E040010A7102654D BACKUP_SPFILE_TRON					      JMERCADO
5D124F3D2CB94BB4E040010A71020EBB BACKUP_SPFILE_TRONNC					      JMERCADO
8213AB9F5AB442EEE040010A71026536 BACKUP_SPFILE_VOLTNC					      JMERCADO
81773A837E1ED2D3E040010A71021491 BACKUP_SPFILE_MAITEN					      JMERCADO
67883609BC305B3AE040010A7102353C RMAN_BACKUP_HOT					      JMERCADO
54D100C30CF4D965E040010A710254EF BACKUP_SPFILE_APPNOV					      DCARCAS

9 rows selected.

Sigue leyendo

Linux Services – Oracle Database And Grid Control Service START/STOP

Oracle Databases

Image via Wikipedia

Cuando trabajamos en la automatización de procesos un punto importante en las single instances es configurar un servicio del sistema operativo para poder levantarlas.

Que es un servicio ?

Un servicio son scripts automatizados para realizar start/down de programas o “servicios” (Valga la redundancia) que son lanzados cuando el kernel se carga en memoria al inicializar el Sistema Operativo y ejecuta cada uno de ellos según en el run level que se encuentren.

Como es la estructura de los servicios ?

Veamos paso por paso.

Cuando se inicializa el server, el kernel se carga en memoria como el proceso padre y dispara subprocesos ejecutando en orden lo que se encuentra en los diferentes run levels.

Los subprocesos son los scripts que se encuentran en el /etc/rc.d

Ahi podemos encontrar los subdirectorios (o run levels ) rc0.d, rc1.d … hasta llegar al rc6.d

[root@lxcontrol10 rc.d]# ls -l
total 100
drwxr-xr-x  2 root root  4096 Jul 23 19:50 init.d
-rwxr-xr-x  1 root root  2352 Jan 23  2009 rc
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc0.d
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc1.d
drwxr-xr-x  2 root root  4096 Jul 23 19:50 rc2.d
drwxr-xr-x  2 root root  4096 Jul 23 19:50 rc3.d
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc4.d
drwxr-xr-x  2 root root  4096 Jul 23 19:50 rc5.d
drwxr-xr-x  2 root root  4096 Feb 10  2010 rc6.d
-rwxr-xr-x  1 root root   289 Aug  5 12:20 rc.local
-rwxr-xr-x  1 root root 28059 Jan 23  2009 rc.sysinit

Sigue leyendo

ORA-06508: PL/SQL: could not find program unit being called: “%.DBMS_BACKUP_RESTORE”

ORA-01775: looping chain of synonyms

Saludos a toda la comunidad, hoy vengo con un nuevo problema resuelto que esta referido a RMAN.

Me disponía a la toma de un backup hot de una base que serviría para generar un nuevo ambiente.

En la base había sido aplicado recientemente el patch 10.2.0.4

SQL> SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE	10.2.0.4.0	Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

Cuando me logueo y ejecuto RMAN me encuentro con el error ORA-04063. Sigue leyendo

Grid and Agents – ORA-20600: The specified target is in the process of being deleted.

PROBLEMAS AL AGREGAR UNA INSTANCIA YA ELIMINADA.

(ORA-20600: The specified target is in the process of being deleted.)

Algunas de las cosas que sigo sin comprender es por que tengo que recurrir a opciones manuales cuando GRID CONTROL de oracle tiene tantas cosas automatizadas.

Una de ellas se refiere a cuando elimino un target , ya sea SINGLE o RAC, o cualquier dato como host. etc.

Cuando elimino desde GRID CONTROL o desde la ejecucion de un package, intento agregarla nuevamente y comienzan los problemas.

El error que presento en primer lugar es que me arroja GC.

TASPRO.somedomain.com:
- Connection failure may be due to a slow network, or to the presence of an intervening firewall.
Saving TASPRO.somedomain.com_TASPRO2 ...java.sql.SQLException: ORA-20600: The specified target is in the process of being deleted.(target name = TASPRO.somedomain.com)(target type = rac_database)(target guid = 5B7EF67A10D95539FD55842B846872AD)
ORA-06512: at "SYSMAN.TARGETS_INSERT_TRIGGER", line 36 ORA-04088: error during execution of trigger 'SYSMAN.TARGETS_INSERT_TRIGGER'
ORA-06512: at "SYSMAN.EM_TARGET", line 1936 ORA-06512: at "SYSMAN.MGMT_TARGET", line 2702 ORA-06512: at line 1 - ORA-20600: The specified target is in the process of being deleted.(target name = TASPRO.somedomain.com)(target type = rac_database)(target guid = 5B7EF67A10D95539FD55842B846872AD)
ORA-06512: at "SYSMAN.TARGETS_INSERT_TRIGGER", line 36 ORA-04088: error during execution of trigger 'SYSMAN.TARGETS_INSERT_TRIGGER' ORA-06512: at "SYSMAN.EM_TARGET", line 1936 ORA-06512: at "SYSMAN.MGMT_TARGET", line 2702 ORA-06512: at line 1

Bien , voy a quitarlo de la forma manual , por la linea de comando del SQLPLUS, y comienza mi sorpresa !
No se encuentra !! Sigue leyendo

Moving control file from file system to ASM system

The logo of Oracle Corporation

Image via Wikipedia

Como mover un controlfile de filesystem hacia ASM

Tuve como consultor las tareas de normalizar politicas, standares y otros elementos de seguridad.
La semana pasada, auditando , me tope con una base que estaba en ASM pero que el controlfile se encontraba en filesystem.
De ello es que acerco esta experiencia ya que el DBA que se econtraba no había trabajado nunca con la tecnologia ASM y al levantar la base despues de la instalacion por medio de scripts dio por sentado que esto estaba funcionando sin problemas.

Primero busque la ubicacion del controlfile y comence con mi tarea de migracion de filesytem para ASM.

SQL> sho parameter control

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time	     integer	 7
control_files			     string	 /u01/app/oracle/product/10.2.0
						 /db_ASDEF/dbs/cntrlASDEF.dbf

Sigue leyendo