adrci (Automatic Diagnostic Repository Command Interpreter) là 1 công cụ dòng lệnh mới có ở 11g để hỗ trợ thao tác với log file.

Từ version 11G, các thư mục log của Oracle database đã thay đổi, không còn nằm hoàn toàn trong ORACLE_BASE/admin/ nữa, mà nằm trong thư mục ORACLE_BASE/diag/ và có kiến trúc như sau:

 

ADR Base

 

ADR Base (Automatic Diagnostic Repository Base) cho mỗi database instance được set trong parameter diagnostic_dest, thường là /u01/app/oracle.

Nếu không set parameter đó thì default ADR Base sẽ là ORACLE_BASE, nếu ORACLE_BASE không set thì ADR sẽ là thư mục ORACLE_HOME/log.

 

Trên server để vào adrci:

 

 

Kiểm tra các thư mục home chứa log liên quan:

 

 

Như vậy ta thấy adrci quản lý thư mục log của ASM, database, listener, và cả client nếu có.

Trên 10G, để xóa log file, trace file, ta thường phải xóa tay hay viết script đặt lịch xóa, tính ra cũng khá mất công. Với adrci, ta có thể cấu hình để hệ thống xóa log file, trace file 1 cách tự động, nhanh chóng và gọn lẹ.

 

Trong thư mục diag thường có các kiểu tập tin như sau:

Kiểu tập tinVị trí
ALERTcác tập tin nằm trong thư mục alert
INCIDENTcác tập tin nằm trong thư mục incident/incdir_<incid>
TRACEcác tập tin trace nằm trong thư mục trace
CDUMPcác tập tin nằm trong thư mục cdump
UTSCDMPcác tập tin nằm trong thư mục trace/cdmp_<timestamp>
STAGEcác tập tin nằm trong thư mục stage
SWEEPcác tập tin nằm trong thư mục sweep
HMcác tập tin nằm trong thư mục hm và metadata trong schema HM
IPScác tập tin nằm trong thư mục incpkg và metadata trong schema IPS

 

Để kiểm tra cấu hình xóa log file, ta phải set home, sau đó dùng lệnh show control

  

 

Ngoài set home về thư mục chứa log database instance dùng đường dẫn như trên, có thể dùng set home rdbms, hoặc set home <ORACLE_SID>. Có thể query thông tin ngắn gọn dùng câu select như sau:

 

 

LAST_MOD_TIME là thời gian sửa cấu hình gần nhất. LAST_AUTOPRG_TIME là thời gian hệ thống tự xóa log gần nhất. LAST_MANUPRG_TIME là thời gian DBA vào xóa log thủ công gần nhất.

 

Cái ta cần quan tâm là Short PolicyLong Policy.

 

Short policy là “độ tuổi sẽ được xóa” của các file sau:

  • TRACE
  • CDUMP
  • UTSCDMP
  • IPS

Như ở trên ta kiểm tra, các file log cũ hơn 720 giờ = 30 ngày sẽ bị xóa.

 

Long policy là “độ tuổi sẽ được xóa” của các file sau:

  • ALERT
  • INCIDENT
  • SWEEP
  • STAGE
  • HM

Như ở trên ta kiểm tra, các file log cũ hơn 8760 giờ = 365 ngày sẽ bị xóa.

 

Ta sẽ set lại short policy còn 15 ngày = 360 giờ, và policy thành 6 tháng ~ 180 ngày = 4320 giờ

 

 

Việc thực hiện xóa log tự động này sẽ được thực hiện bởi process MMON. Auto purge job sẽ chạy lần đầu tiên sau khi instance start được 2 ngày, và sau đó cứ 7 ngày sẽ chạy 1 lần.

Trong 1 số trường hợp khi log quá nhiều, ta muốn tự xóa log, có thể dùng lệnh purge

  

 

VD: ta muốn xóa trace file cũ hơn 6 ngày:

 

 

Lưu ý: trong lệnh purge thời gian tính bằng phút. Trong policy tính bằng giờ.

 

Tuy vậy, các file audit (*.aud) trong thư mục ORACLE_BASE/admin/<ORACLE_SID>/adump không nằm trong phạm vi quản lý của adrci. Muốn xóa các file này ta cũng có 1 số phương pháp, mình sẽ đề cập ở 1 bài viết riêng.