Direktori tujuan file audit untuk instans ASM dapat berkembang menjadi berisi sejumlah besar file jika tidak dipelihara secara teratur. Memiliki jumlah file yang sangat besar dapat menyebabkan sistem file kehabisan ruang disk atau inode kosong, atau dapat menyebabkan Oracle berjalan sangat lambat karena batas penskalaan direktori sistem file, yang dapat terlihat seperti instans ASM sedang menggantung. memulai.
Posting ini menjelaskan cara menggunakan utilitas cron Linux untuk mengelola jumlah file di direktori tujuan file audit. Langkah-langkah ini harus dilakukan untuk instans ASM di setiap server database. Dokumen ini menjelaskan cara mengelola direktori tujuan file audit untuk instans ASM saja.
Langkah 1 – Identifikasi direktori audit ASM
Ada tiga direktori yang mungkin berisi file audit. Ketiganya harus dikelola untuk mengendalikan pertumbuhan yang berlebihan.
Dua lokasi default didasarkan pada pengaturan variabel lingkungan saat instans ASM dimulai. Untuk menentukan lokasi default untuk sistem Anda, login sebagai pemilik perangkat lunak Infrastruktur Grid (biasanya oracle atau grid), atur lingkungan Anda sehingga Anda dapat terhubung ke instance ASM, lalu jalankan perintah 'echo' yang disediakan di bawah ini. Dalam contoh ini, dua direktori audit default adalah /u01/app/11.2.0/grid/rdbms/audit dan /u01/app/Oracle/admin/+ASM1/adump.
$ . /usr/local/bin/oraenv ORACLE_SID = [+ASM1] ? +ASM1 The Oracle base for ORACLE_HOME=/u01/app/11.2.0/grid is /u01/app/oracle
$ echo $ORACLE_HOME/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit
$ echo $ORACLE_BASE/admin/$ORACLE_SID/adump /u01/app/oracle/admin/+ASM1/adump
Direktori audit ASM ketiga dapat ditemukan dengan masuk ke instance ASM dengan SQL*Plus dan menjalankan pernyataan ini:
$ sqlplus '/ as sysasm' SQL> select value from v$parameter where name = 'audit_file_dest'; VALUE -------------------------------------------------------------------------------- /u01/app/11.2.0/grid/rdbms/audit
Ketiga direktori audit ASM akan dikelola dengan cron.
Langkah 2 – Berikan izin kepada pemilik perangkat lunak Infrastruktur Grid untuk menggunakan cron
File audit dimiliki oleh pemilik perangkat lunak Infrastruktur Grid, yang biasanya berupa oracle atau grid. Perintah untuk memindahkan atau menghapus file audit harus dijalankan sebagai pemilik perangkat lunak Infrastruktur Grid. Sebagai root, tambahkan pemilik perangkat lunak Infrastruktur Grid ke file /etc/cron.allow. Contoh di bawah ini menggunakan oracle pengguna.
# echo oracle >> /etc/cron.allow
Langkah 3 – Tambahkan perintah ke crontab untuk mengelola file audit setiap minggu
Sebagai pemilik perangkat lunak Infrastruktur Grid, tambahkan entri ke file crontab. Perintah berikut akan memulai sesi edit perintah vi(P) untuk mengedit file crontab yang ada atau membuat file crontab baru jika belum ada.
$ crontab -e
Tambahkan yang berikut ke file ini sebagai satu baris:
0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -delete
Entri crontab ini menjalankan perintah find pada pukul 2 pagi setiap hari Minggu. Perintah find menghapus semua file audit di tiga direktori audit ASM yang lebih lama dari 30 hari.
Jika Anda ingin menyimpan file audit untuk jangka waktu yang lebih lama, daripada menghapus file audit dengan perintah find(1), Anda dapat mengarsipkan file audit ke direktori atau perangkat penyimpanan yang berbeda menggunakan entri crontab seperti berikut:
0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -execdir /bin/mv {} /archived_audit_dir \;
Entri crontab ini menjalankan perintah find pada pukul 2 pagi setiap hari Minggu. Perintah find memindahkan semua file audit di tiga direktori audit ASM yang lebih lama dari 30 hari ke /archived_audit_dir. Simpan dan keluar dari file crontab menggunakan perintah vi ([ESC] :wq), lalu verifikasi konten crontab.
$ crontab -l 0 2 * * sun /usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +30 -delete
Pemecahan Masalah
Jika file audit lama tidak dihapus, lakukan langkah-langkah berikut:
1. Untuk memantau bahwa cron menjalankan perintah find sesuai jadwal dan sebagai pemilik perangkat lunak Infrastruktur Grid yang benar, tinjau /var/log/cron file sebagai pengguna root untuk entri seperti berikut:
Feb 20 02:00:01 dm01db01 crond[6936]: (oracle) CMD (/usr/bin/find /u01/app/11.2.0/grid/rdbms/audit /u01/app/11.2.0/grid/rdbms/audit /u01/app/oracle/admin/+ASM1/adump -maxdepth 1 -name '*.aud' -mtime +60 -delete)
2. Masuk sebagai pengguna yang memiliki entri crontab (yaitu pemilik perangkat lunak Infrastruktur Grid). Jalankan perintah find secara manual untuk memverifikasi kebenaran sintaks perintah dan tidak ada kesalahan yang dilaporkan.