เมื่อ Database เราทำงานไปนานๆเข้า พื้นที่ของ oracle home ก็จะใหญ่ขึ้นๆ เนื่องจากมันมีการสร้างไฟล์ต่างๆเต็มไปหมดทุกวัน ทุกครั้งทีเกิดปัญหา หรือแม้แต่ Bug ต่างๆของ version ต่างๆก็เก็บไว้เป็นชนิดไฟล์ที่เราไม่สามารถเข้าใจได้
สำหรับนำไปให้ Oracle support ช่วยเหลือเราในยามที่ความรู้ที่เรามีไม่สามารถแก้ไขได้ ส่วนระยะการเก็บรักษานั้นก็แล้วแต่ Policy ของแค่ละที่หละครับว่าอยากเก็บไว้เผื่อฉุกเฉินกี่ปี กี่เดือน กี่วัน
รายชื่อไฟล์ที่อยู่ใน directory ของ ORACLE_HOME ที่สามารถลบเพื่อคืนพื้นที่โดยไม่มีผลกระทบกับ Oracle Database มีดังนี้ครับ
- ไฟล์ .trc และ.trm ที่อยู่ใน directory $ORACLE_HOME/admin/orcl/bdump – ไฟล์ต่างๆ เหล่านี้ใช้สำหรับการ investigate ปัญหาที่อาจจะเกิดขึ้นกับ background process ของ Oracle หากปัญหาได้รับการแก้ไขไปแล้วหรือมี file เก่าๆ เก็บอยู่เป็นจำนวนมาก สามารถ clear ออกจากระบบได้ครับ
- ไฟล์ที่อยู่ใน directory $ORACLE_HOME/admin/orcl/cdump – ไฟล์เหล่านี้เป็น core dump ของ Oracle Database ส่วนใหญ่จะเกิดขึ้นเมื่อมี error ของ Oracle process เช่นเดียวกันกับไฟล์ใน bdump สามารถลบไฟล์เก่าๆ ออกได้ หากไม่ต้องการใช้ในการ analyze ปัญหาครับ
- alert.logใน directory $ORACLE_HOME/admin/orcl/bdump – สามารถ backup โดยการ mv ออกไปอยู่ที่อื่นได้ Oracle จะทำการ สร้าง file ขึ้นมาใหม่ให้โดยอัตโนมัติครับ
- ไฟล์ .trc และ.trm ที่อยู่ใน directory $ORACLE_HOME/admin/orcl/udump – ไฟล์ต่างๆ เหล่านี้ใช้สำหรับการ investigate ปัญหาที่อาจจะเกิดขึ้นกับ user process เป็น file ที่ generate ออกมาจาก user แต่ละ session เองสามารถลบไฟล์เก่าๆ ออกได้เช่นเดียวกับ bdump
- ไฟล์ listener.logใน directory $ORACLE_HOME/network/log – หากไฟล์นี้มีขนาดใหญ่มากสามารถ clear ได้ด้วยขั้นตอนดังนี้ครับ
# su – oracle
$ lsnrcrt
LSNRCTL> set log_status off
LSNRCTL> exit
$ cd $ORACLE_HOME/network/log
$ mv listener.log <destination>
$ touch listener.log
$ cd $ORACLE_HOME/network/log
$ mv listener.log <destination>
$ touch listener.log
$ lsnrctl
LSNRCTL> set log_status on
LSNRCTL> exit
ตรวจสอบว่าไฟล์ listener.log ถูกเขียนแล้วหรือไม่
** alert.log ควร Backup เก็บไว้ก่อนนะครับ Log ตัวนี้ค่อนข้างสำคัญมากๆ