Hệ thống các khái niệm vá lỗi (patching) của Oracle quả thực là một "mê hồn trận" với rất nhiều thuật ngữ và công cụ. Việc nhầm lẫn giữa user root, user oracle hay khi nào cần sập hệ thống là điều mà hầu hết các DBA đều gặp phải.
Dưới đây là phần phân tích và phân biệt rõ ràng, rành mạch nhất để anh em nắm vững nguyên lý hoạt động của chúng.
PHẦN 1: Phân biệt các loại Patch (Bản vá)
Để hiểu cách dùng tool, ta phải hiểu Oracle có những loại bản vá nào.
| Thuật ngữ | Viết tắt | Ý nghĩa thực tế |
| Interim Patch / One-off Patch | Patch lẻ | Là một bản vá rất nhỏ, chỉ sửa một lỗi cụ thể (bug) do Oracle Support cung cấp riêng khi hệ thống gặp sự cố mà các bản vá lớn chưa có. |
| Critical Patch Update | CPU | Bản vá phát hành hàng quý (tháng 1, 4, 7, 10). Chỉ chứa các bản vá bảo mật (Security fixes). |
| Patch Set Update | PSU | (Dùng phổ biến ở bản 11g/12c). Phát hành hàng quý. Bao gồm bản vá bảo mật (CPU) cộng thêm các bản vá sửa lỗi (bug fixes) quan trọng được khuyên dùng. |
| Release Update | RU | (Dùng từ bản 18c/19c trở đi). Đây là "người kế nhiệm" của PSU. Nó chứa toàn bộ các bản vá bảo mật, sửa lỗi, và thậm chí cập nhật thêm một số tính năng nhỏ. Ví dụ: Nâng từ 19.3 lên 19.15. |
| Patchset | N/A | (Dùng ở các bản cũ như 10g, 11g). Là một bộ cài đặt lớn nâng cấp phiên bản. Ví dụ: nâng từ 11.2.0.3 lên 11.2.0.4. Hiện tại Oracle không dùng khái niệm này nữa mà chuyển sang RU. |
PHẦN 2: Phân biệt opatch apply và opatch auto
Đây là hai công cụ thực thi việc cài đặt các bản vá ở Phần 1. Chúng khác nhau hoàn toàn về mục đích và quyền hạn.
1. opatch apply (Làm thủ công từng bước)
Bản chất: Chỉ đơn thuần là công cụ copy và ghi đè các file nhị phân (binaries) cũ bằng file mới. Nó "mù" hoàn toàn với trạng thái của database (không biết DB đang bật hay tắt).
Người chạy (User OS): Chủ sở hữu thư mục phần mềm (
ORACLE_HOME), thường là user oracle hoặc grid.Yêu cầu hệ thống: Bạn bắt buộc phải tự tắt mọi tiến trình (Database, Listener) bằng tay trước khi chạy lệnh này. Nếu không tắt, hệ điều hành (Linux/Unix) sẽ khóa (lock) các file nhị phân đang chạy trên RAM, khiến
opatch applybáo lỗi "file is active/locked".Khi nào sử dụng:
Khi cài các One-off patch (patch lẻ).
Khi cài patch cho hệ thống Standalone (chỉ có 1 database duy nhất, không dùng Grid/ASM).
Sau khi chạy
opatch applythành công, nếu patch có chứa các thay đổi về cấu trúc bảng/view hệ thống, bạn phải tự chạy script SQL (nhưdatapatchhoặccatbundle.sql) để cập nhật vào Database Dictionary.
2. opatch auto (Tự động hóa toàn trình)
Bản chất: Là một kịch bản (script) thông minh bao bọc lấy
opatch. Nó tự động hóa toàn bộ vòng đời vá lỗi.Người chạy (User OS): Bắt buộc phải là root. Lý do: Việc tự động tắt/bật các resource của Grid Infrastructure (như ASM, Clusterware, VIP) đòi hỏi quyền cao nhất của hệ điều hành.
Quy trình hoạt động tự động: Khi bạn gõ lệnh, nó sẽ tự làm các việc sau:
Tắt instance Database và các dịch vụ Grid trên node hiện tại.
Gọi user
gridchạy lệnh patch cho thư mục Grid Home.Gọi user
oraclechạy lệnh patch cho thư mục Database Home.Bật lại toàn bộ dịch vụ Grid và Database.
Chạy
datapatchđể cập nhật SQL vào database (tùy phiên bản).
Khi nào sử dụng:
Khi cài đặt các bản vá lớn (PSU, RU).
Khi hệ thống sử dụng Oracle RAC (Real Application Clusters) hoặc có cài Grid Infrastructure (ASM).
PHẦN 3: Tại sao có lúc phải tắt hệ thống, có lúc không? (Rolling vs. Non-Rolling)
Điều này phụ thuộc vào thuộc tính của bản vá (được ghi rõ trong file README.txt của mỗi patch).
1. Rolling Patch (Vá cuốn chiếu - Không gây Downtime toàn hệ thống):
Áp dụng: Chỉ có ý nghĩa trên hệ thống Oracle RAC (nhiều node). Hầu hết các PSU, RU đều là Rolling Patch.
Cách hoạt động: Bạn tắt Node 1 $\rightarrow$ Vá Node 1 $\rightarrow$ Bật Node 1. Trong lúc đó, Node 2 vẫn chạy và phục vụ ứng dụng bình thường (không ai bị ngắt kết nối hoàn toàn). Sau đó làm tương tự với Node 2.
Công cụ: Dùng
opatch autolà chuẩn nhất cho Rolling Patch.
2. Non-Rolling Patch (Vá đồng thời - Bắt buộc Downtime):
Áp dụng: Cho hệ thống Standalone (1 máy chủ) hoặc các bản patch thay đổi kiến trúc lõi mà 2 phiên bản phần mềm không thể chạy song song trên cùng một cụm RAC.
Cách hoạt động: Bạn phải tắt Database (và toàn bộ ứng dụng) trên TẤT CẢ các máy chủ cùng một lúc. Sau khi vá xong tất cả mới được bật lên.
TÓM LẠI DỄ NHỚ:
| Tiêu chí | opatch apply | opatch auto |
| Loại Patch | One-off patch (Patch lẻ) | PSU, RU (Patch combo lớn) |
| Kiểu hệ thống | Standalone (Không Grid/RAC) | Grid Infrastructure, RAC |
| User thực thi | oracle hoặc grid | root |
| Tắt/Bật DB | DBA phải tự làm bằng tay trước/sau khi chạy | Tool tự động làm |
| Chạy SQL (Datapatch) | DBA phải tự chạy sau khi bật DB | Tool tự động chạy (với các bản mới) |
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
=============================