HugePages · Memory Locking (memlock) · Open Files · Kernel & Resource Limits
|
Thông tin |
Chi tiết |
|
Hệ thống áp dụng |
Consolidate-DB-01/02 (consdb1, consdb2) — Oracle RAC 11.2.0.4 trên Oracle Linux 7.9 |
|
Mã tài liệu |
RUNBOOK_ORACLE_PARAM_CONSDB_20260824 |
|
Ngày ban hành |
24/08/2026 |
|
Người soạn |
Trần Văn Bình |
|
Trạng thái |
Dự thảo — chờ phê duyệt trước khi thực thi trên hệ thống production |
|
Liên quan đến |
Theo dõi sau sự cố OOM-kill 23/08/2026 trên consdb1 (xem mục 8) |
|
Nguồn tham khảo chính |
tranvanbinh.vn — Hướng dẫn thiết lập tham số HugePages; Oracle Database Installation/Grid Infrastructure Guide (docs.oracle.com) |
1. Mục đích và phạm vi áp dụng
Tài liệu này hướng dẫn từng bước rà soát và cấu hình lại các tham số hệ điều hành liên quan đến quản lý bộ nhớ và tài nguyên cho Oracle Database/Grid Infrastructure, theo đúng khuyến nghị chính thức của Oracle, bao gồm: HugePages, khóa bộ nhớ (memlock), giới hạn số file descriptor mở (open files/nofile), số tiến trình (nproc), kích thước stack, và các tham số kernel liên quan (shmmax, shmall, shmmni, sem, file-max, aio-max-nr, các tham số mạng).
Phạm vi áp dụng: node consdb1 và consdb2 (Oracle RAC 11.2.0.4, Oracle Linux 7.9). Quy trình có thể tái sử dụng cho các hệ thống Oracle Database/RAC khác trong phạm vi quản lý, sau khi điều chỉnh số liệu tại Bước 1 và Bước 2 cho đúng với cấu hình phần cứng của từng hệ thống.
|
LƯU Ý: Đây là thay đổi tác động tới tầng hệ điều hành và có thể yêu cầu dừng/khởi động lại instance hoặc toàn bộ node. Phải thực hiện theo đúng Quy trình Quản lý Thay đổi (Change Management) hiện hành của đơn vị, có phê duyệt và cửa sổ bảo trì (maintenance window), trước khi áp dụng lên production. |
2. Vị trí các file cấu hình cần rà soát
Các tham số liên quan có thể được đặt rải rác ở nhiều file khác nhau. Cần rà soát TOÀN BỘ các vị trí sau (không chỉ file chính), vì hệ điều hành đọc và áp dụng theo thứ tự, file đọc sau có thể ghi đè giá trị của file đọc trước:
|
Nhóm tham số |
Vị trí file |
|
Kernel parameters (sysctl) (hugepages, shmmax, shmall...) |
/etc/sysctl.conf /etc/sysctl.d/*.conf (đọc theo thứ tự alphabet, ví dụ 97-oracle-database-sysctl.conf, 98-cis.conf...) |
|
Resource limits (ulimit) (memlock, nofile, nproc, stack) |
/etc/security/limits.conf /etc/security/limits.d/*.conf (ví dụ 20-nproc.conf mặc định của OS, 99-oracle-limits.conf...) |
|
PAM liên quan đến limits |
/etc/pam.d/login, /etc/pam.d/su, /etc/pam.d/sshd — phải có dòng "session required pam_limits.so", nếu không /etc/security/limits.conf sẽ KHÔNG có hiệu lực |
|
Systemd (nếu service khởi động qua systemd) |
/etc/systemd/system.conf, /etc/systemd/logind.conf, hoặc override đơn vị (LimitMEMLOCK=, LimitNOFILE= trong unit file) — systemd KHÔNG đọc limits.conf theo mặc định cho service |
Lệnh rà soát nhanh toàn bộ các file trên (chạy trên từng node, KHÔNG thay đổi gì ở bước này):
|
# Liệt kê và in nội dung mọi file sysctl liên quan Oracle grep -HnE 'shmmax|shmall|shmmni|sem |hugepages|file-max|aio-max-nr|ip_local_port_range|rmem|wmem' \ /etc/sysctl.conf /etc/sysctl.d/*.conf 2>/dev/null
# Liệt kê và in nội dung mọi file limits liên quan Oracle grep -HnE 'memlock|nofile|nproc|stack|oracle|grid' \ /etc/security/limits.conf /etc/security/limits.d/*.conf 2>/dev/null
# Xác nhận pam_limits được nạp grep pam_limits /etc/pam.d/login /etc/pam.d/su 2>/dev/null |
|
LƯU Ý: Tương tự phát hiện trong sự cố CTSSD/chronyd ngày 23/08/2026 (server NTP bị khai trùng lặp trong /etc/chrony.conf), cần đặc biệt chú ý tham số trùng lặp hoặc mâu thuẫn giữa nhiều file .conf trong /etc/sysctl.d/ và /etc/security/limits.d/ — giá trị hiệu lực cuối cùng là giá trị của file được đọc SAU CÙNG theo thứ tự alphabet. |
3. Quy trình thực hiện
Bước 1 — Thu thập thông tin hiện trạng
Chạy trên CẢ HAI node (consdb1 và consdb2) trước khi thay đổi bất kỳ tham số nào, lưu lại output làm bằng chứng baseline:
|
# Thông tin phần cứng grep MemTotal /proc/meminfo cat /proc/meminfo | grep -i huge
# Tham số SGA/PGA hiện tại của từng instance (chạy với user oracle, sqlplus / as sysdba) show parameter memory_target show parameter memory_max_target show parameter sga_target show parameter sga_max_size show parameter pga_aggregate_target show parameter use_large_pages
# Giá trị kernel/limits hiện tại sysctl kernel.shmmax kernel.shmall kernel.shmmni kernel.sem fs.file-max fs.aio-max-nr su - oracle -c 'ulimit -a' su - grid -c 'ulimit -a' # nếu có user grid riêng |
Ghi nhận kết quả vào bảng dưới đây (bảng làm việc — điền số liệu thực tế trước khi tính toán ở Bước 2):
|
Thông số |
consdb1 |
consdb2 |
Ghi chú |
|
RAM vật lý (GB) |
… |
… |
grep MemTotal /proc/meminfo |
|
SGA_TARGET / SGA_MAX_SIZE hiện tại |
… |
… |
cộng dồn nếu có nhiều instance/PDB trên cùng node |
|
PGA_AGGREGATE_TARGET hiện tại |
… |
… |
|
|
MEMORY_TARGET (AMM) đang bật? |
… |
… |
Có/Không — nếu Có phải chuyển sang ASMM ở Bước 5 |
|
HugePages hiện tại (Total/Free) |
… |
… |
grep Huge /proc/meminfo |
|
use_large_pages hiện tại |
… |
… |
mặc định TRUE — nên đổi thành ONLY (xem mục 7) |
Bước 2 — Tính toán số lượng HugePages cần cấu hình
Công thức khuyến nghị (tham khảo tranvanbinh.vn và MOS Note 401749.1 — HugePages Configuration):
|
Tổng SGA cần cấp HugePages = Tổng (SGA_MAX_SIZE) của TẤT CẢ instance đang chạy trên node Số HugePages cần = ROUNDUP( Tổng SGA_MAX_SIZE (MB) / Hugepage size (mặc định 2MB) ) + phần dư an toàn (~2-5%)
vm.nr_hugepages = CEIL( Tổng_SGA_bytes / (2 * 1024 * 1024) ) * 1.02 (làm tròn lên, dự phòng ~2%) |
Ví dụ minh hoạ trên hệ thống 100GB RAM (SGA_TARGET 60GB, PGA 10GB) — theo tài liệu tham khảo:
|
Tham số |
Giá trị ví dụ |
|
RAM vật lý |
100 GB |
|
SGA_TARGET |
60 GB |
|
PGA_AGGREGATE_TARGET |
10 GB |
|
vm.nr_hugepages |
30.800 (× 2MB ≈ 60,15 GB) |
|
kernel.shmmax |
96.636.764.160 bytes (~90 GB — trần bộ nhớ chia sẻ, KHÔNG phải dung lượng cấp phát thật) |
|
kernel.shmall |
23.592.960 (số trang 4KB, tương ứng ~90 GB) |
|
LƯU Ý: Đây là số liệu THAM KHẢO minh hoạ phương pháp tính, KHÔNG áp dụng trực tiếp cho consdb1/consdb2. Phải thay bằng số liệu thực tế thu thập ở Bước 1 (RAM, SGA_TARGET/SGA_MAX_SIZE thực tế của từng instance trên consdb1, consdb2) trước khi đưa vào file cấu hình ở Bước 3. |
|
Công cụ hỗ trợ tính chính xác cho từng node cụ thể: script chính thức của Oracle
|
# Chạy với user oracle SAU KHI đã start instance với SGA_TARGET/SGA_MAX_SIZE dự kiến # (script tự query các instance đang chạy và đề xuất số hugepages) wget https://raw.githubusercontent.com/oracle/... # hoặc lấy từ MOS Note 401749.1 'hugepages_settings.sh' sh hugepages_settings.sh |
Bước 3 — Cấu hình tham số kernel (sysctl)
Giá trị khuyến nghị tối thiểu theo Oracle Grid Infrastructure/Database Installation Guide (baseline mặc định — cần đối chiếu và LẤY GIÁ TRỊ LỚN HƠN giữa baseline này và giá trị tính theo SGA thực tế ở Bước 2 đối với shmmax/shmall):
|
Tham số |
Giá trị khuyến nghị (baseline) |
Ghi chú |
|
kernel.shmmax |
≥ tổng SGA_MAX_SIZE thực tế (bytes); baseline tối thiểu 4294967295 |
Đơn vị byte. Nếu nhỏ hơn SGA_MAX_SIZE, instance sẽ không start được |
|
kernel.shmall |
≥ tổng SGA_MAX_SIZE quy đổi sang trang 4KB; baseline tối thiểu 2097152 |
shmall × 4096 bytes ≥ shmmax |
|
kernel.shmmni |
4096 |
Số segment chia sẻ tối đa |
|
kernel.sem |
250 32000 100 128 |
semmsl semmns semopm semmni |
|
vm.nr_hugepages |
Theo tính toán Bước 2 |
Bắt buộc tính lại mỗi khi thay đổi SGA_TARGET/SGA_MAX_SIZE |
|
fs.file-max |
6815744 |
Số file descriptor toàn hệ thống |
|
fs.aio-max-nr |
1048576 |
Async I/O requests tối đa |
|
net.core.rmem_default / rmem_max |
262144 / 4194304 |
Buffer nhận mạng — quan trọng cho Interconnect RAC |
|
net.core.wmem_default / wmem_max |
262144 / 1048576 |
Buffer gửi mạng |
|
net.ipv4.ip_local_port_range |
9000 65500 |
Dải port ephemeral, tránh đụng port Oracle (listener 1521, ...) |
Áp dụng: tạo MỘT file riêng, không sửa trực tiếp /etc/sysctl.conf, để dễ quản lý version và rollback:
|
vi /etc/sysctl.d/97-oracle-database-sysctl.conf
# --- Oracle Database kernel parameters — cập nhật 24/08/2026 — RUNBOOK_ORACLE_PARAM_CONSDB --- fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = <giá_trị_tính_ở_bước_2> kernel.shmmax = <giá_trị_tính_ở_bước_2> kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 vm.nr_hugepages = <giá_trị_tính_ở_bước_2> net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.ip_local_port_range = 9000 65500
# Áp dụng ngay (không cần reboot) sysctl --system sysctl -p /etc/sysctl.d/97-oracle-database-sysctl.conf |
Bước 4 — Cấu hình resource limits (memlock, nofile, nproc, stack)
|
Tham số |
Soft limit |
Hard limit |
Ghi chú |
|
nofile (open files) |
≥ 1024 |
≥ 65536 |
Số file descriptor mở đồng thời của user oracle/grid |
|
nproc |
≥ 2047 |
≥ 16384 |
Số tiến trình/luồng tối đa |
|
stack |
≥ 10240 KB |
10240–32768 KB |
Kích thước stack mỗi tiến trình |
|
memlock |
= vm.nr_hugepages × hugepage_size (KB) |
= giá trị soft |
PHẢI khớp (hoặc lớn hơn) dung lượng HugePages đã cấp phát ở Bước 3, nếu không instance không khoá được HugePages |
|
vi /etc/security/limits.d/99-oracle-limits.conf
# --- Oracle/Grid resource limits — cập nhật 24/08/2026 — RUNBOOK_ORACLE_PARAM_CONSDB --- oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 oracle soft memlock <vm.nr_hugepages × 2048 KB> oracle hard memlock <vm.nr_hugepages × 2048 KB>
grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 16384 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 grid soft memlock <vm.nr_hugepages × 2048 KB> grid hard memlock <vm.nr_hugepages × 2048 KB> |
|||
|
LƯU Ý: Sau khi sửa limits.conf, giá trị chỉ có hiệu lực với PHIÊN ĐĂNG NHẬP MỚI (user phải logout/login lại), và với các tiến trình khởi động qua systemd cần kiểm tra thêm LimitMEMLOCK trong unit file (ví dụ oracle-ohasd.service) vì systemd có thể không kế thừa limits.conf. |
|||
Bước 5 — Chuyển từ AMM (Automatic Memory Management) sang ASMM
Oracle KHÔNG hỗ trợ HugePages khi đang dùng AMM (MEMORY_TARGET/MEMORY_MAX_TARGET > 0), vì AMM cấp phát qua /dev/shm bằng small pages. Nếu Bước 1 xác nhận instance đang bật AMM, bắt buộc chuyển sang ASMM (Automatic Shared Memory Management) trước khi bật HugePages:
|
-- Kết nối sqlplus / as sysdba trên từng instance ALTER SYSTEM SET SGA_TARGET=<giá_trị> SCOPE=SPFILE; ALTER SYSTEM SET SGA_MAX_SIZE=<giá_trị> SCOPE=SPFILE; ALTER SYSTEM SET PGA_AGGREGATE_TARGET=<giá_trị> SCOPE=SPFILE; ALTER SYSTEM SET MEMORY_TARGET=0 SCOPE=SPFILE; ALTER SYSTEM SET MEMORY_MAX_TARGET=0 SCOPE=SPFILE; -- Khuyến nghị: ép fail-fast thay vì âm thầm dùng small pages khi thiếu HugePages ALTER SYSTEM SET USE_LARGE_PAGES=ONLY SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP; |
|
LƯU Ý: USE_LARGE_PAGES=ONLY sẽ khiến instance KHÔNG START ĐƯỢC nếu HugePages cấu hình không đủ, thay vì âm thầm rơi về small pages (giá trị mặc định TRUE). Đây là lựa chọn có chủ đích để phát hiện lỗi cấu hình ngay lập tức thay vì để hệ thống chạy trong trạng thái dùng bộ nhớ kém tối ưu/dễ bị sức ép bộ nhớ (swap) kéo dài — một yếu tố rủi ro liên quan gián tiếp tới sự cố OOM-kill. Chỉ bật ONLY sau khi đã xác nhận HugePages đủ và chính xác ở môi trường test/staging trước. |
Bước 6 — Áp dụng thay đổi theo hình thức rolling (từng node)
Vì đây là Oracle RAC 2 node, KHÔNG áp dụng đồng thời cả 2 node để tránh gián đoạn toàn bộ dịch vụ. Thực hiện tuần tự:
- Chọn node phụ trước (khuyến nghị bắt đầu tại consdb2, vì consdb1 mới trải qua sự cố CTSSD ngày 23/08 — cần đảm bảo consdb1 ổn định/đã đồng bộ NTP bình thường trước khi thao tác).
- Relocate/dừng các service, listener đang chạy trên node đó sang node còn lại (srvctl relocate service...).
- Dừng instance + Clusterware trên node: crsctl stop crs (hoặc stop instance nếu chỉ thay đổi ở mức DB).
- Áp dụng thay đổi sysctl (Bước 3) và limits (Bước 4) trên node đó.
- Khởi động lại node/Clusterware: crsctl start crs, chờ toàn bộ resource ONLINE (crsctl stat res -t).
- Start lại instance, kiểm tra theo Bước 7 trước khi chuyển service trở lại node này.
- Lặp lại tuần tự các bước trên cho node còn lại.
|
LƯU Ý: Không thực hiện thay đổi đồng thời trên cả 2 node trong cùng một cửa sổ bảo trì trừ khi đã xác nhận ứng dụng chịu được gián đoạn toàn phần. Toàn bộ thao tác dừng/khởi động CRS phải tuân theo Quy trình Quản lý Hiện trường/Quản lý Thay đổi hiện hành. |
Bước 7 — Kiểm tra sau triển khai
|
# 1. Xác nhận HugePages được cấp phát đúng số lượng và đang được SỬ DỤNG (không chỉ Total) grep Huge /proc/meminfo # → HugePages_Total phải khớp giá trị đã cấu hình # → HugePages_Free giảm gần bằng 0 sau khi instance start xong (chứng tỏ SGA dùng HugePages thật)
# 2. Xác nhận instance dùng HugePages, không fallback sang small pages grep -i huge $ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log | tail -50 # → Dòng 'Large Pages Requested/Allocated' phải khớp nhau, không có cảnh báo fallback
# 3. Xác nhận limits đã áp dụng cho tiến trình đang chạy cat /proc/$(pgrep -u oracle -f ora_pmon | head -1)/limits | grep -i 'Max locked memory\|Max open files\|Max processes'
# 4. Xác nhận cluster healthy sau rolling restart crsctl stat res -t crsctl check ctss crsctl check cluster -all |
4. Kế hoạch rollback
Nếu sau khi áp dụng, instance không start được hoặc cluster không healthy trở lại trong thời gian cho phép của cửa sổ bảo trì:
- Khôi phục nội dung gốc của /etc/sysctl.d/97-oracle-database-sysctl.conf và /etc/security/limits.d/99-oracle-limits.conf từ bản backup (Bước 0, xem ghi chú dưới).
- Chạy lại sysctl --system để nạp lại giá trị cũ.
- Nếu đã đổi USE_LARGE_PAGES=ONLY, đổi tạm về TRUE hoặc FALSE để instance có thể start bằng small pages trong lúc xử lý sự cố.
- Nếu đã tắt MEMORY_TARGET (AMM) và chưa xác nhận ASMM ổn định, có thể tạm khôi phục spfile backup (trước khi ALTER SYSTEM) để đưa instance về trạng thái hoạt động trước thay đổi.
- Start lại instance/CRS, xác nhận cluster healthy, sau đó báo cáo sự cố theo Quy trình Quản lý Sự cố hiện hành.
|
LƯU Ý: Bắt buộc backup TOÀN BỘ các file sẽ chỉnh sửa (sysctl.d, limits.d, spfile hiện tại của từng instance) trước khi thực hiện Bước 3–5 — đây coi là 'Bước 0' của quy trình. Gợi ý: cp <file> <file>.bak_20260824 và tạo spfile backup qua CREATE PFILE FROM SPFILE. |
5. Checklist thực hiện
|
STT |
Hạng mục |
Trạng thái |
|
1 |
Đã phê duyệt thay đổi (Change Request) và có cửa sổ bảo trì |
☐ |
|
2 |
Đã backup sysctl.d, limits.d, spfile của từng instance (Bước 0) |
☐ |
|
3 |
Đã thu thập baseline RAM/SGA/PGA/HugePages hiện tại (Bước 1) |
☐ |
|
4 |
Đã tính toán vm.nr_hugepages, shmmax, shmall theo SGA thực tế (Bước 2) |
☐ |
|
5 |
Đã rà soát và loại bỏ tham số trùng lặp/mâu thuẫn giữa các file .conf (Mục 2) |
☐ |
|
6 |
Đã cấu hình sysctl trên consdb2 và xác nhận sysctl --system thành công |
☐ |
|
7 |
Đã cấu hình limits.conf trên consdb2 và xác nhận qua ulimit -a |
☐ |
|
8 |
Đã chuyển AMM → ASMM (nếu áp dụng) và test start instance trên consdb2 |
☐ |
|
9 |
Đã kiểm tra HugePages_Free ≈ 0 và cluster healthy trên consdb2 (Bước 7) |
☐ |
|
10 |
Lặp lại hạng mục 6–9 cho consdb1 |
☐ |
|
11 |
Đã kiểm tra chronyd/CTSSD ở trạng thái Observer bình thường trên cả 2 node trước khi đóng thay đổi |
☐ |
|
12 |
Đã cập nhật tài liệu vận hành/CMDB với giá trị tham số mới |
☐ |
6. Rủi ro và lưu ý quan trọng
- shmmax/shmall thấp hơn SGA_MAX_SIZE thực tế → instance không start được (ORA-27102: out of memory).
- memlock thấp hơn dung lượng HugePages cần khoá → instance không khoá được bộ nhớ, có thể fallback sang small pages hoặc lỗi start.
- vm.nr_hugepages quá cao so với RAM còn lại sau khi trừ cho OS và các tiến trình khác → thiếu bộ nhớ cho OS, tăng nguy cơ OOM-kill các tiến trình KHÁC (kể cả tiến trình không phải Oracle, như trường hợp java PID 6627 bị OOM-kill ngày 23/08) → LUÔN chừa tối thiểu 10–15% RAM cho OS và các tiến trình ngoài Oracle.
- HugePages KHÔNG swap được — cấp dư thừa so với nhu cầu thực tế là lãng phí RAM vĩnh viễn cho tới khi cấu hình lại và reboot.
- Thay đổi vm.nr_hugepages cần RAM liền mạch (contiguous) đủ lớn — nên áp dụng sớm sau khi reboot/khi hệ thống ít bị phân mảnh bộ nhớ, hoặc reboot node sau khi set để đảm bảo cấp phát đủ.
- Không sửa trực tiếp /etc/sysctl.conf và /etc/security/limits.conf gốc — dùng file riêng trong .d/ để dễ theo dõi thay đổi và rollback theo từng đợt (change tracking).
- Xác nhận lại toàn bộ theo Quy trình Quản lý Thay đổi (QĐTT1 lần 6) trước khi thực thi trên production.
7. Liên hệ với sự cố OOM-kill ngày 23/08/2026
Theo ghi nhận RCA (consolidate-db-01-oom-ctssd-20260823), tiến trình java (PID 6627, UID 1101) bị kernel OOM-kill ở mức global (global_oom) trên consdb1, xảy ra gần như đồng thời với sự kiện CTSSD chuyển sang Active mode do chronyd mất đồng bộ. Nguyên nhân gốc của phần OOM CHƯA được xác nhận đầy đủ — hạng mục còn tồn đọng trong RCA là "soát lại tổng SGA/PGA của các instance Oracle trên node so với RAM vật lý".
Runbook này là hành động khắc phục/phòng ngừa (corrective/preventive action) trực tiếp phục vụ hạng mục tồn đọng đó: chuẩn hoá lại HugePages, memlock và các tham số liên quan theo đúng khuyến nghị Oracle giúp giảm rủi ro tranh chấp bộ nhớ giữa Oracle và các tiến trình khác trên node (bao gồm các tiến trình ngoài Oracle như java agent), đồng thời USE_LARGE_PAGES=ONLY (Bước 5) giúp phát hiện sớm tình trạng cấu hình sai thay vì để hệ thống âm thầm chạy ở trạng thái dễ bị OOM.
|
LƯU Ý: Khuyến nghị: hoàn tất Bước 1 (thu thập RAM/SGA/PGA thực tế của consdb1, consdb2) và đối chiếu với tổng RAM vật lý TRƯỚC khi lên lịch triển khai runbook này, để xác nhận có đang over-allocate SGA/PGA so với RAM hay không |
8. Tài liệu tham khảo
- Hướng dẫn thiết lập tham số HugePages — tranvanbinh.vn: https://www.tranvanbinh.vn/2020/01/huong-dan-thiet-lap-tham-so-hugepages.html
- Oracle Database Installation Guide — Checking Resource Limits for Oracle Software Installation Users (docs.oracle.com)
- Oracle Grid Infrastructure Installation Guide — Changing Kernel Parameter Values (docs.oracle.com)
- MOS Note 401749.1 — HugePages on Linux: What It Is... and What It Is Not
- MOS Note 361468.1 — HugePages / Memlock configuration troubleshooting
- MOS Note 169706.1 — Linux: Recommended parameter settings for Oracle Database
- Dự án nội bộ: claude/consolidate-db-01-oom-ctssd-20260823.md (RCA sự cố liên quan)
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