We need to delete archivelogs which are applied on standby servers. Following script will do the job for you.
- vi /home/oracle/crons/remove_applied_archivelog.sh
#!/bin/ksh
#
#
# Remove applied archivelog all;
#
#
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1; export ORACLE_HOME
tmpfile=/tmp/arch_id.tmp
$ORACLE_HOME/bin/sqlplus -S /nolog <<EOF > $tmpfile
connect / as sysdba
set head off
set pages 0
select max(sequence#) from v\$archived_log where applied = 'YES';
exit
EOF
echo DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = `head -n 1 $tmpfile | awk '{print $1}'` ';' > $tmpfile
$ORACLE_HOME/bin/rman target / <<EOF
@$tmpfile
exit
EOF
2. Give executable permission to the file
chmod +x /home/oracle/crons/remove_applied_archivelog.sh
3. Add to cron. It runs everyday at 22:05
crontab -e 5 22 * * */home/oracle/crons/remove_applied_archivelog.sh
