Thứ Ba, 24 tháng 2, 2026

Phân biệt opatch auto, opatch apply trong Oracle

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 PatchPatch 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 UpdateCPUBả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 UpdatePSU(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 UpdateRU(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.
PatchsetN/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 applyopatch 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 apply bá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 apply thà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ư datapatch hoặc catbundle.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:

    1. Tắt instance Database và các dịch vụ Grid trên node hiện tại.

    2. Gọi user grid chạy lệnh patch cho thư mục Grid Home.

    3. Gọi user oracle chạy lệnh patch cho thư mục Database Home.

    4. Bật lại toàn bộ dịch vụ Grid và Database.

    5. 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 auto là 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 applyopatch auto
Loại PatchOne-off patch (Patch lẻ)PSU, RU (Patch combo lớn)
Kiểu hệ thốngStandalone (Không Grid/RAC)Grid Infrastructure, RAC
User thực thioracle hoặc gridroot
Tắt/Bật DBDBA phải tự làm bằng tay trước/sau khi chạyTool tự động làm
Chạy SQL (Datapatch)DBA phải tự chạy sau khi bật DBTool 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

=============================
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, "phân biệt giữa opatch apply và opatch auto, khi nào thì sử dụng, có lúc thì chạy bẳng root, có lúc chạy bằng oracle/grid; có lúc thì phải tắt grid/tắt database mới patch được, hãy phân biệt rõ patch, patchset, psu..."

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master