RMAN-08137: warning: archived log not deleted, needed for standby or upstream capture process

Ingeniero informático, Oracle ACE, DBA y Arquitecto OCI, con más de 15 años de experiencia en plataformas Oracle. Certificado en OCI Certified Architect Professional y OCI Migration and Integration Certified Professional.
A la hora de revisar porque RMAN no era capaz de eliminar los archive logs dándonos el siguiente error:
RMAN-08137: warning: archived log not deleted, needed for standby or upstream capture process
archived log file name=+RECO/XXXXXX/ARCHIVELOG/2024_07_26/thread_2_seq_31382.5872.1175352221 thread=2 sequence=31382
RMAN-08137: warning: archived log not deleted, needed for standby or upstream capture process
archived log file name=+RECO/XXXXXX/ARCHIVELOG/2024_07_26/thread_2_seq_31383.3853.1175352377 thread=2 sequence=31383
Este error es causado porque en una migración no eliminaron de manera correcta los procesados integrados del extract de un ogg.
SQL> r
1 Select Capture_Name,
2 Capture_Type,
3 Status,
4 To_Char(Required_Checkpoint_Scn, '999999999999999') As Req_Scn,
5 To_Char(Oldest_Scn, '999999999999999') As Oldest_Scn
6* From Dba_Capture
CAPTURE_NAME CAPTURE_TY STATUS REQ_SCN OLDEST_SCN
------------------ ---------- -------- ---------------- ----------------
OGG$CAP_KA2 LOCAL DISABLED 0 0
OGG$CAP_KA2 LOCAL DISABLED 0 0
Para eliminarlo, deberíamos entrar en el ogg y ejecutar la siguiente sentencia para cada proceso que se ha quedado obsoleto UNREGISTER EXTRACT #CAPTURE_NAME# DATABASE.
Una vez lanzada la sentencia anterior, si consultamos de nuevo la consulta debería devolvernos cero filas en caso que lo hayamos realizado bien
SQL> r
1 Select Capture_Name,
2 Capture_Type,
3 Status,
4 To_Char(Required_Checkpoint_Scn, '999999999999999') As Req_Scn,
5 To_Char(Oldest_Scn, '999999999999999') As Oldest_Scn
6* From Dba_Capture
no rows selected
Ejecutamos nuestro pequeño scripts para comprobar que podemos ya eliminar esos archive logs obsoletos
[oracle@_scripts]$ cat rman.sh
#!/bin/bash
. /home/oracle/.bashrc
LOG=$(hostname -s)_`date +%Y%m%d%H%M%S`
touch ${P_RAIZ}/log/${LOG}.log
rman target / log=${P_RAIZ}/log/${LOG}.log << EOF
run
{
DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1';
}
EOF
[oracle@_scripts]$ . rman.sh
[oracle@_scripts]$
Listo. ¡Espero que os sirva!
![[OCI] Upgrade 19c a 26ai](https://cdn.hashnode.com/uploads/covers/65605419d28f19cc44df7ef1/a3c1b3a1-9152-47c4-8209-11bffce67e8e.png)
![[OCI] 19c DBCA - Silent mode](https://cdn.hashnode.com/uploads/covers/65605419d28f19cc44df7ef1/290a85d4-e3d3-475f-a6a6-5f4095bd9d3a.png)
![[OCI] Oracle Grid Infrastructure 19c (Oracle Restart + ASM)](https://cdn.hashnode.com/uploads/covers/65605419d28f19cc44df7ef1/d022eac1-1acd-4def-8ec1-7612950afe1c.png)
![[26ai] SQL: Calendar functions/Aggregation Filters "CALENDAR"](https://cdn.hashnode.com/uploads/covers/65605419d28f19cc44df7ef1/587e3328-9877-4c7a-aad7-7811e251f81e.png)
![[OCI] Recreación PDB$SEED](https://cdn.hashnode.com/uploads/covers/65605419d28f19cc44df7ef1/289ede5b-558c-4f93-b5c0-fa04680c91ca.png)