Tôi thề rằng khi tôi ngày càng tiến xa hơn trong sự nghiệp Oracle của mình, tôi ngày càng khó khăn hơn và khó theo kịp các quy trình nền tảng của Oracle. Tôi muốn đánh dấu vấn đề này cho đến khi già đi, nhưng sau khi tìm hiểu kỹ về nó, tôi khá chắc chắn rằng sự bùng nổ quy trình nền của Oracle chỉ trong 11g đã khiến tôi phù hợp.
Đầu ngày hôm nay, tôi đã xem tab hiệu suất cơ sở dữ liệu sản xuất trong Grid Control. Cụm RAC 3 nút của tôi đang gặp tình trạng CPU cao, vì vậy tôi đã tìm hiểu kỹ và nhận thấy rằng phần lớn các chu kỳ CPU là từ một quy trình nền có tên là NSA2. Gì?!?!?! NSA2 là gì? Tôi khá chắc rằng điều này không liên quan gì đến an ninh quốc gia.
Khi thực hiện tìm kiếm trên Google về quy trình nền này, tôi đã bắt gặp một truy vấn tiện lợi để cung cấp cho bạn mô tả nhanh về từng quy trình nền của Oracle. Bạn sẽ cần chạy nó dưới dạng SYS vì nó truy vấn bảng X $:
column EXTERNAL_NAME format a13
;
column INTERNAL_NAME format a13
set lin 120
SELECT x$ksbdd.ksbddidn AS external_name,
x$ksmfsv.ksmfsnam AS internal_name, x$ksbdd.ksbdddsc AS description
FROM x$ksbdd, x$ksbdp, x$ksmfsv
WHERE x$ksbdd.indx = x$ksbdp.indx AND x$ksbdp.addr = x$ksmfsv.ksmfsadr
ORDER BY 1
Trong cơ sở dữ liệu 11.2.0.2 của tôi, truy vấn này trả về 296 hàng! Không có gì ngạc nhiên khi tôi không thể theo kịp. Tôi nhớ khi tôi có thể liệt kê tất cả các quy trình nền ra khỏi đầu (SMON, PMON, ARCH, DBWR, LGWR, CKPT và RECO). Mỗi phiên bản Oracle mới đều tăng số lượng quy trình nền, đây có lẽ là một điều tốt. Nhưng điều này khiến DBA đôi khi khó chẩn đoán sự cố.
Vậy NSA2 là gì? Quy trình vận chuyển làm lại của nó chịu trách nhiệm vận chuyển các nhật ký làm lại đã lưu trữ đến cơ sở dữ liệu Dự phòng của tôi. Khi tôi nhìn thấy mô tả từ truy vấn ở trên, điều đó thật hiển nhiên.
Vì vậy, hãy đọc trong cơ sở dữ liệu của bạn để xem tất cả các quy trình nền tuyệt vời mà bạn có thể gặp trên hành trình của mình. Một trong những mục yêu thích của tôi trong danh sách là TEST.
Cập nhật - 09/12/2012 - Sau khi tôi viết blog này, tôi thấy rằng Oracle đã ghi lại các Quy trình Nền trong Phụ lục F của Tham chiếu Cơ sở dữ liệu. Tôi không chắc Oracle bắt đầu phụ lục này khi nào và nếu tôi biết về nó, tôi sẽ chỉ cần tra cứu quy trình NSAx. Nhưng đoạn mã ở trên vẫn thú vị và có thể được sử dụng để khám phá các quy trình nền mới mà Oracle chưa ghi lại.