GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengelola Pertumbuhan Direktori File Audit database Oracle dengan cron (Hanya Instance ASM)

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.


Linux
  1. Kelola File Audit ASM dengan syslog – konfigurasikan lograte dan audit

  2. Cara Mengaudit Akses File di Linux

  3. Bagaimana cara mengisi file dengan FF menggunakan dd?

  1. Cara Membuat Database di MySQL dengan MySQL Workbench

  2. Linux – Bagaimana Cara Membuat Oracle Java 7 Bekerja Dengan Setcap Cap_net_bind_service+ep?

  3. Bagaimana cara mendaftar semua file dengan hanya membaca jalur file sewenang-wenang, tetapi tidak ada daftar direktori atau sudo?

  1. Bagaimana Cara Mengarahkan Hanya Stderr?

  2. Bagaimana cara mencadangkan database Mysql Anda dengan phpMyAdmin?

  3. Cara mengubah izin file dan direktori dengan Manajer File