jueves, 16 de mayo de 2019

Borrar redologs viejos en Oracle

Si utilizamos las base de datos Oracle estaremos familiarizados con el modo ArchiveLog. En este modo la base de datos archiva redologs viejos, lo que nos permite realizar muchas acciones de recuperación de datos, pero nos llena el disco. Por esa razon es conveniente periodicamente remoder redologs muy antiguos.

Para hacerlo debemos utilizar la herramienta RMAN. Para esto nos logeamos en el servidor y tipiamos rman:

% rman

RMAN>

Las conexiones RMAN a una base de datos se especifican y autentican de la misma manera que las conexiones SQL * Plus a una base de datos. La única diferencia es que las conexiones RMAN a una base de datos de destino o auxiliar requieren el privilegio SYSDBA. Las palabras clave AS SYSDBA están implícitas y no se pueden especificar explícitamente.

Puede conectarse a una base de datos con opciones de línea de comandos o mediante el comando CONNECT TARGET. El siguiente ejemplo inicia RMAN y luego se conecta a una base de datos de destino a través de Oracle Net (tenga en cuenta que AS SYSDBA no se especifica porque está implícito). RMAN solicita una contraseña.

RMAN>  CONNECT TARGET SYS@SERVER


Primero listamos los logs :


RMAN> list archivelog all;


Luego removemos los que tienen más de 10 días


RMAN> delete archivelog until time 'SYSDATE-10';



released channel: ORA_DISK_1

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=55 device type=DISK

List of Archived Log Copies for database with db_unique_name SERVER

=====================================================================



Key     Thrd Seq     S Low Time

------- ---- ------- - ---------

504     1    635     A 26-MAR-19

        Name: /1_635_966300309.dbf



505     1    636     A 27-MAR-19

        Name: /1_636_966300309.dbf



...

Do you really want to delete the above objects (enter YES or NO)? YES

deleted archived log

archived log file name=/1_635_966300309.dbf RECID=504 STAMP=1003998698

deleted archived log

...


Y Listo!

También podemos eliminar los logs y de las siguientes maneras :

RMAN>delete archivelog all;
RMAN>delete archivelog until time ‘SYSDATE-10’;
RMAN>delete archivelog from time ‘SYSDATE-10’
RMAN>delete archivelog from time ‘SYSDATE-10’ until time ‘SYSDATE-2’;
RMAN>delete archivelog from sequence 1000;
RMAN>delete archivelog until sequence 1500;
RMAN>delete archivelog from sequence 1000 until sequence 1500;



No hay comentarios.:

Publicar un comentario