Để áp dụng phương pháp 5 Why (5 Tại sao) vào một sự cố Database cụ thể, chúng ta cần đi từ hiện tượng bề mặt (triệu ứng) và hỏi liên tiếp các câu hỏi "Tại sao" để đào sâu vào nguyên nhân gốc rễ (kỹ thuật hoặc quy trình).
Dưới đây là một ví dụ thực tế khi Hệ thống Core Banking bị treo, ứng dụng không thể kết nối đến Database:
📊 Sơ đồ phân tích 5 Why cho sự cố Database
- Hiện tượng ban đầu: Ứng dụng báo lỗi
Connection Timeout, toàn bộ giao dịch bị nghẽn. - Why 1: Tại sao ứng dụng không thể kết nối đến Database?
- Trả lời: Vì Database đã đạt ngưỡng tối đa số lượng kết nối cho phép (
processes/sessionsparameter) và không nhận thêm kết nối mới.
- Trả lời: Vì Database đã đạt ngưỡng tối đa số lượng kết nối cho phép (
- Why 2: Tại sao số lượng kết nối (sessions) lại tăng đột biến chạm ngưỡng?
- Trả lời: Vì hàng loạt session cũ không thể kết thúc mà rơi vào trạng thái treo (active sessions tăng cao liên tục), đứng chờ tài nguyên.
- Why 3: Tại sao các session lại bị treo và đứng chờ tài nguyên?
- Trả lời: Vì tất cả các session này đều đang xếp hàng chờ sự kiện
enq: TX - row lock contention(chờ lock dòng) trên cùng một bảng dữ liệuACCOUNT.
- Trả lời: Vì tất cả các session này đều đang xếp hàng chờ sự kiện
- Why 4: Tại sao lại xảy ra tình trạng giữ lock (blocker) lâu như vậy trên bảng ACCOUNT?
- Trả lời: Vì có một câu lệnh
UPDATEsố dư tài khoản chạy rất chậm từ một tiến trình xử lý lô (Batch Job) chạy đè vào giờ cao điểm, giữ lock dòng mà chưaCOMMIT.
- Trả lời: Vì có một câu lệnh
- Why 5 (Nguyên nhân gốc rễ): Tại sao Batch Job lại chạy đè vào giờ cao điểm và câu lệnh UPDATE đó lại chạy chậm?
- Trả lời: Về kỹ thuật, câu lệnh
UPDATEbị đổiExecution Plan(phác đồ thực thi) do dữ liệu thay đổi đột biến nhưng chưa được gom thống kê (DBMS_STATS). Về quy trình, kế hoạch chạy Batch Job bị cấu hình sai giờ trên hệ thống từ đợt bảo trì tuần trước mà không có biên bản kiểm tra chéo.
- Trả lời: Về kỹ thuật, câu lệnh
🛠️ Hành động khắc phục sau khi tìm ra 5 Why
Sau khi tìm được nguyên nhân gốc rễ, DBA không chỉ dừng lại ở việc "kill session" (xử lý phần ngọn) mà sẽ triển khai các giải pháp triệt để:
- Giải pháp ngắn hạn (Xử lý ngọn): Kill session chặn (blocker), ghim lại phác đồ thực thi tốt (
SQL Plan Baseline) cho câu lệnhUPDATE. - Giải pháp trung hạn (Kỹ thuật): Cấu hình tự động thu thập thống kê cho các bảng biến động mạnh, thiết lập cảnh báo sớm (
Alert) khi số lượng Active Session vượt quá 70%. - Giải pháp dài hạn (Quy trình): Thay đổi quy trình kiểm tra (Checklist) sau bảo trì, bắt buộc phải có bước xác nhận cấu hình lịch trình (
Job Scheduler) trước khi bàn giao hệ thống.
=============================
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty