How to free oracle disk space – Automate disk cleanup.

by mn.sobieh
 

In part one we explained what files Oracle Instance creates and eats our precious disk-space, This article explains how to identify and free oracle server disk space.

Reasons for the server to stop creating new files.

Servers might stop creating new files or adding new files due to multiple reasons:

1. You consumed all available disk space.

in that error, you get the message.

[email protected]$ touch textfile 
touch: cannot touch ‘textfile’: No space left on device

You can detect file system disk space usage by executing the du command with -h parameter.

2. Your disk quota reached its limit.

[email protected]$ mkdir tstdir
mkdir: cannot create directory ‘tstdir’: Disk quota exceeded

3. You consumed all allowed Inodes. 

An inode is a data structure used to keep information about a file on your hosting account. The number of inodes indicates the number of files and folders you have. This includes everything on your account, emails, files, folders, anything you store on the server.

 using du command with parameter -i it will show total nodes used and available Inodes for each mounted disk.

[email protected]$ du -i

What directories need cleaning?

in that clustered environment which consists of two nodes and ASM. The script cleans the following directories

  • ASM Audit trail.
    in ASM home  “create separate ” script to be executed by grid user

/u01/app/12.1.0/grid/rdbms/audit

  • Database Audit trails.
    in Database home

$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace

  • Database trace files.
    in Database home

$ORACLE_BASE/admin/$ORACLE_SID/adump

ADRCI to clean your Oracle disk-space 

After identifying the biggest directories that consume your server disk space. you need three environment variables which are ORACLE_UNIQNAME, ORACLE_SID, ORACLE_BASE

export ORACLE_UNQNAME=cdb1 
export ORACLE_SID=cdb1
export ORACLE_BASE=/u01/app/oracle

Clear Audit and trace files using the Automatic Diagnostic Repository (ADR) tool. adrci located in bin under oracle home. 

/u01/app/oracle/product/12.1.0/dbhome_1/bin/adrci

Next, list available homes that have logs. 

adrci> show homes
ADR Homes:
diag/rdbms/omandb/omandb
diag/rdbms/tst/tst
diag/rdbms/db12c/db12c
diag/rdbms/cdb1/cdb1
diag/rdbms/dbks/dbks
diag/tnslsnr/ora12c/listener
diag/clients/user_oracle/host_1954257820_82

Then, set adrci home that the purge command will work in. for example, for cdb1  

set home diag/rdbms/cdb1/cdb1

After that, purge all logs.

adrci> purge -age 60

Finally, repeat this process with each home. in addition, if there are other oracle software installed change the adrci base, then repeat the same process. 

How to free oracle disk-space-04-adrci

Schedule cleaning script.

First, create a cleanup script and put in it the command that will remove all traces and audit files.
[email protected]$ vi /u01/cleanUP.sh

export ORACLE_UNQNAME=cdb1 
export ORACLE_SID=cdb1 
export ORACLE_BASE=/u01/app/oracle 
find $ORACLE_BASE/admin/$ORACLE_SID/adump -name “*.aud” -mtime +14 -type f -delete 
find $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace -name “*.tr?” -mtime +14 -type f -delete

now you add it to cron scheduler to execute every day at 1AM. Read corn manual for more information  

[email protected]$ crontab -e 

00 01 * * * find /u01/cleanUP.sh

To conclude,

Related Posts

Leave a Comment