Tôi có cơ sở dữ liệu Thử nghiệm là hệ thống RAC 2 nút. Tôi đang làm việc hướng tới mục tiêu đưa cơ sở dữ liệu sản xuất lên Oracle 12.1.0.2 trong khoảng thời gian khoảng một tháng. Tất nhiên, điều này có nghĩa là tôi phải nâng cấp Cơ sở hạ tầng lưới trước khi nâng cấp db. Tôi đã nâng cấp GI trên cụm dự phòng và cả trên cơ sở dữ liệu Thử nghiệm của mình. Nâng cấp GI chính được lên lịch vào tối nay.
Kể từ khi tôi nâng cấp GI trong Thử nghiệm vài tuần trước, tôi đã nhận được các cảnh báo từ EM12c tương tự như sau:
Host = host01 Loại mục tiêu
= Cụm
Tên mục tiêu = kiểm tra-quét
Danh mục = Doanh nghiệp
Message = Máy chủ bị tăng áp lực bộ nhớ và các dịch vụ trên tất cả các phiên bản trên máy chủ này sẽ bị dừng
Mức độ nghiêm trọng = Cảnh báo
Thời gian báo cáo sự kiện = Ngày 29 tháng 7 năm 2015 1:05:13 CH CDT Hệ điều hành
= Linux Nền tảng
= x86_64
Loại sự kiện = Cảnh báo số liệu
Tên sự kiện = wlm_event:wlm_qosm_mpa_risk_state Nhóm số liệu
= Sự kiện QoS
Metric = Trạng thái rủi ro phân tích áp suất bộ nhớ Giá trị số liệu
= ĐỎ
Một số chi tiết cảnh báo đã bị xóa cho ngắn gọn.
Vậy điều này đến từ đâu? Tại sao nó có ý nghĩa với tôi?
Lỗi này đến từ Chất lượng dịch vụ (QoS) của Oracle trong Cơ sở hạ tầng lưới. Nó dựa trên thông tin theo dõi sức khỏe cụm (CHM). Cụ thể hơn, cảnh báo này đến từ Memory Guard. Để biết một số thông tin về Memory Guard, hãy xem PDF này, cụ thể là ở cuối trang thứ hai.
Memory Guard đang cố gắng cứu tôi khỏi chính mình, và như chúng ta sẽ thấy, nó đang làm rất tốt nhiệm vụ của mình. Ý tưởng là khi máy chủ có áp lực bộ nhớ, Memory Guard sẽ đưa bất kỳ dịch vụ nào trên nút đó ra ngoài dịch vụ. Cho phép nhiều kết nối hơn sẽ tiêu tốn nhiều bộ nhớ hơn và có thể làm cho tình hình tồi tệ hơn. Các yêu cầu kết nối mới phải đến một nút khác trong cụm đang chạy dịch vụ đó. Đây chính xác là những gì giá trị Thông báo trong cảnh báo đang cho tôi biết.
Theo tài liệu EM 12c này, phần 4.3.2, Trạng thái Rủi ro Phân tích Áp suất Bộ nhớ, văn bản cảnh báo phải chứa tên máy chủ. Tuy nhiên, văn bản thông báo ở trên không cho tôi biết máy chủ nào đang gặp sự cố. May mắn cho tôi, đó chỉ là một cụm RAC 2 nút, vì vậy tôi không có quá nhiều thứ để kiểm tra.
Khi tôi xem xét việc sử dụng CPU, mọi thứ đều ổn. Sử dụng hoán đổi trên thực tế là không trên cả hai nút. Bộ nhớ trống là hơn 25% trên cả hai nút. Tò mò… tại sao lại có cảnh báo ngay từ đầu?
Mỗi khi tôi nhận được thông báo này, tôi có thể gửi một email khác cho biết tình trạng bệnh sẽ được giải quyết trong vòng vài phút. Vì vậy, vấn đề chỉ tồn tại trong thời gian ngắn. Tuy nhiên, các cảnh báo vẫn tiếp tục đến.
Hóa ra, sau một số cuộc điều tra, Oracle đã thực hiện thay đổi đối với Bộ nhớ bảo vệ trong Cơ sở hạ tầng lưới 12.1.0.2. Trong các phiên bản trước đó, Memory Guard chỉ chăm sóc các cơ sở dữ liệu được quản lý theo chính sách. Trong GI 12.1.0.2, Memory Guard cũng bắt đầu chăm sóc các cơ sở dữ liệu do quản trị viên quản lý. Và cơ sở dữ liệu RAC của tôi thường do quản trị viên quản lý, đó là một lý do tại sao tôi thấy điều này ngay bây giờ.
Để bổ sung thêm cho vấn đề, dường như GI 12.1.0.2 đã biết lỗi 1582630 trong đó dung lượng bộ nhớ trống nếu được tính toán không chính xác. Lưu ý 1929994.1 liệt kê một cách giải quyết và cũng có một bản vá. Tôi đã áp dụng giải pháp thay thế và nó đã giải quyết được sự cố của tôi. Tôi sẽ áp dụng bản vá cho Thử nghiệm trước khi bắt đầu sản xuất trong tương lai không xa.
Rất may, tôi đã phát hiện ra điều này trước khi nâng cấp GI sản xuất vào cuối đêm nay. Nếu không, tôi sẽ khiến người dùng cuối khó chịu vì có thể đã gặp sự cố khi kết nối với cơ sở dữ liệu. Đây chỉ là một ví dụ nữa về lý do tại sao tôi có một nền tảng thử nghiệm tốt để phát hiện và giải quyết các vấn đề trước khi thực hiện thay đổi trong quá trình sản xuất.