Ir al contenido principal

RMAN: Cual es la diferencia entre "expired" y "obsolete"?


En RMAN podemos encontrar ambos status.

La diferencia entre ellos es:

Expired:

Se refiera a archivos que RMAN "tiene" como fisicamente disponibles, pero no lo estan, para este ejemplo revisaremos los archivelogs.

Cada que se crea un nuevo archivelog, se registra en el controlfile.

Ejecutamos el siguiente comando en RMAN.









Ahi podemos ver que tenemos 3 archivelogs, y lo comprobamos fisicamente.



Ahora procedemos a borrar algun(os) de los archivos.



Volvemos a ejecutar "list archivelog all" para comprobar que RMAN lo sigue teniendo como disponible.
 




















Ejecutamos el commando crosscheck, para que RMAN verifique si los archivos estan o no fisicamente disponible:









Despues del comando, podemos ver como el status ha cambiado, y ahora si se reportan como expirados un par de archive log.







Para finalizar los eliminamos:



  
Al volver a ejecutar los comandos ya no aparece ninguno como expirado.



El status obsolete es para los archivos que de acuerdo a la configuracion de retencion ya no son necesarios.

Ejecutamos show all, para obtener la configuracion actual, observemos que Retention policy esta configurado en 1.















Esto especifica cuantos backups full o de nivel 0 de todos los datafiles que RMAN debe de retener, los respaldos mas viejos son considerados obsoletos.

Listamos los backups actuales, en este caso 1.

  Piece Name: +FRA/STACK/BACKUPSET/2017_03_12/nnndf0_tag20170312t183921_0.289.938457563















Revisamos si existen obsoletos:












Ejecutamos un backup full.










Listamos los backups en este caso ya hay 2:























Ejecutamos report obsolete:
Notemos que el backup anterior ahora esta marcado como obsolete

Piece Name: +FRA/STACK/BACKUPSET/2017_03_12/nnndf0_tag20170312t183921_0.289.938457563

















Si modificamos "Retention policy" a 2:


 











En este caso el respaldo ya no es obsoleto, notese como ahora indica 2 en lugar de 1 como anteriormente lo hacia.



En resumen:

Expired: Los "archivos" que RMAN tiene registrados, pero que ya NO estan fisicamente disponibles, para que RMAN los marque efectivamente como expired, hay que ejecutar el comando crosscheck.

Obsolete: Los "archivos" que RMAN considera que ya no son necesarios, de acuerdo a su politica de retencion, Esta puede ser por redundancia, o por el "recovery Window"

FR.


Comentarios

Entradas más populares de este blog

Como saber que Service Pack tengo instalado en SQL Server?

Para saber que Service pack se tiene instalado en SQL Server, Hay que ejecutar el siguiente comando: SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') Este regresa algo parecido a: 9.00.3042.00 SP2 Enterprise Edition El primer registro es la versión, el segundo es el nivel de producto (en este caso Service pack 2), y el ultimo es la edición, En este caso Enterprise. Esta es una tabla con las versiones de SQL y su respectivo Service pack. RTM SP1 SP2 SP3 SP4 SQL Server 2017 SQL Server 2016 13.0.2149.0 13.0.4001.0 SQL Server 2014 12.0.2000.8 12.0.4100.1 12.0.5000.0 SQL Server 2012 11.0.2100.60 11.0.3000.00 11.0.5058.0 11.0.6020.0 11.0.7001.0 SQL Server 2008 R2 10.50.1600.1 10.50.2500.0 10.50.4000.0 10.50.6000.34 SQL Server 2008 10.00.1600.22   10.00.2531.00 10.00.4000.00 10.00.5500.00 10.0.6000.29 SQL Server 2005 9.00.1399 9.00.2047 9.00.3042 9.00.4035 9.00.5000 SQL Serve

Mover Bases de Datos Replicadas, sin deshacer replicacion. Mover Distribution database

Hay veces por el crecimiento de una BD que puede ser necesario mover un datafile, de una Base de datos que esta siendo replicada a otro disco. El procedimiento normal seria hacer un detach de la BD y mover los datafiles al nuevo drive, sin embargo esto no es posible cuando una BD esta replicada. Para estos casos se tendria que deshacer la replica, hacer detach de la BD, mover los datafiles hacer attach de las BD y volver a crear la replica. En SQL 7 y SQL 2000 hay un camino mas facil. Cabe mencionar que como involucra actualizar manualmente las tablas de sistema esto NO esta soportado por Microsoft. Aunque yo lo he hecho muchas veces y nunca he tenido problemas. Primero hay que activar el setting "Allow Modifications to be made directly to the system catalogs" que esta en Server Settings en las opciones del Servidor en el enterprise manager. Recuerden sacar un respaldo de Master por cualquier problema que podamos llegar a tener. Una vez hecho esto matamos o desconectamos toda

Memoria utilizada por Oracle

Ocasionalmente al estar trabajando con oracle, algunos clientes pueden recibir errores de que hace falta memoria, mas sin embargo en el task manager vemos que oracle no esta usando toda la memoria que esta asignada para el proceso. Esto es por el diseño de los servidores de windows a 32 bits, que solo pueden asignar a una aplicacion alrededor de 2 GB (no recuerdo el numero exacto) y como en windows los procesos de usuarios son en realidad Threads del proceso de oracle, toda la memoria es agrupada bajo el proceso de oracle. Para ver la memoria realmente usada por oracle podemos utilizar el siguiente query. select sum(bytes)/1024/1024 Mb from (select bytes from v$sgastat union select value bytes from v$sesstat s, v$statname n where n.STATISTIC# = s.STATISTIC# and n.name = 'session pga memory' ); Este query nos regresa la memoria usada por oracle junto con todos sus procesos de usuario ( y su respectiv