Thứ Bảy, 14 tháng 3, 2026

Cài đặt cơ sở dữ liệu Oracle 26ai RAC trên Linux bằng VMware Esxi

MỤC LỤC:

1.Kiến trúc Khái niệm
2.Môi trường thử nghiệm RAC
    Bảng phân bổ địa chỉ IP
3.Cài đặt OL9 trên nút đầu tiên
    Tăng cường bảo mật hệ điều hành
    Cấu hình mạng
    Chuẩn bị cài đặt Oracle và tạo người dùng
    Biến môi trường và cấu trúc thư mục
4.Tạo nút thứ hai
5.Chiến lược đồng bộ hóa thời gian
    Đồng bộ hóa giữa máy chủ và máy khách
    Cấu hình Chrony ngang hàng
6.Cấu hình lưu trữ dùng chung
    Phương pháp nhiều tác giả
    Phân vùng đĩa
    Các quy tắc Udev dành cho thiết bị ASM bền vững
7.Lắp đặt cơ sở hạ tầng Grid
8.Tạo cơ sở dữ liệu


Chi tiết:

1.Kiến trúc Khái niệm

Sơ đồ kiến ​​trúc khái niệm của Oracle RAC như sau:



Trở ngại lớn nhất khi xây dựng môi trường thử nghiệm RAC riêng tư là yêu cầu về đĩa cứng dùng chung. Theo truyền thống, điều này đòi hỏi phần cứng SAN đắt tiền. Tuy nhiên, bằng cách tận dụng các thuộc tính đĩa nâng cao của VMware ESXi, đặc biệt là cờ multi-writer, chúng ta có thể mô phỏng một môi trường lưu trữ chuyên nghiệp. Cách tiếp cận "RAC giá rẻ" này cho phép tạo ra một cụm máy chủ đầy đủ chức năng mà không cần phần cứng lưu trữ vật lý chuyên dụng.

Các phần sau đây sẽ trình bày từng bước chi tiết về phương pháp này.

2.Môi trường thử nghiệm RAC

Chúng tôi sẽ triển khai hai máy ảo chạy Oracle Linux 9 trên máy chủ ESXi 6.7 (192.168.??.??).

Bảng phân bổ địa chỉ IP

Tên máy chủĐịa chỉ IP công cộngĐịa chỉ IP riêngĐịa chỉ IP ảo (VIP)QUÉT IP
AI261192.168.999.86192.168.888.86192.168.999.28192.168.999.88
AI262192.168.999.87192.168.888.87192.168.999.29(Đã chia sẻ)

Bốn ổ đĩa ảo 20GB sẽ được tạo ra để làm bộ nhớ lưu trữ ASM dùng chung.

3.Cài đặt OL9 trên nút đầu tiên

Tải ảnh ISO Oracle Linux 9 lên kho dữ liệu ESXi của bạn, sau đó tạo một máy ảo mới bằng ảnh ISO này để bắt đầu cài đặt Linux.

Tăng cường bảo mật hệ điều hành

Sau khi cài đặt hệ điều hành, hãy thiết lập múi giờ và tắt các dịch vụ xung đột:

timedatectl set-timezone Asia/Shanghai
# Disable Firewall and SELinux
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
# Disable Avahi daemon to prevent multicast conflicts
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon

Cấu hình mạng

Sử dụng nmcli để cấu hình giao diện công cộng. Lưu ý rằng kết nối liên mạng riêng sẽ được xử lý trong một bước riêng biệt hoặc thông qua giao diện thứ hai.

nmcli connection modify ens192 ipv4.addresses 192.168.999.86/24
nmcli connection modify ens192 ipv4.gateway 192.168.999.1
nmcli connection modify ens192 ipv4.dns 192.168.888.10
nmcli connection modify ens192 ipv4.method manual
nmcli connection up ens192

Điền nội dung vào tệp /etc/hosts trên cả hai máy chủ:

192.168.999.86 AI261
192.168.999.87 AI262
192.168.888.86 AI261-priv
192.168.888.87 AI262-priv
192.168.999.28 AI261-vip
192.168.999.29 AI262-vip
192.168.999.88 AI26-SCAN

Chuẩn bị cài đặt Oracle và tạo người dùng

Sử dụng gói RPM cài đặt trước Oracle để tự động cấu hình các tham số kernel và tạo người dùng oracle. Sau đó, tạo thủ công người dùng grid và các nhóm cụ thể cần thiết cho Quản lý lưu trữ tự động (ASM).

dnf -y install oracle-ai-database-preinstall-26ai
# Create ASM groups and Grid user
groupadd -g 54331 asmadmin
groupadd -g 54332 asmdba
groupadd -g 54333 asmoper
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
# Update Oracle user groups
usermod -a -G asmdba oracle
# Apply limits for grid user
cp /etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf /etc/security/limits.d/grid.conf
sed -i 's/oracle/grid/g' /etc/security/limits.d/grid.conf

Biến môi trường và cấu trúc thư mục

Xác định vị trí cài đặt phần mềm Oracle cho cả hai người dùng.

Đối với người dùng Grid (.bash_profile):

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/26ai/grid
export ORACLE_SID=+ASM1
export PATH=$ORACLE_HOME/bin:$PATH

Đối với người dùng Oracle (.bash_profile):

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/26ai/dbhome_1
export ORACLE_SID=AI261
export PATH=$ORACLE_HOME/bin:$PATH

Tạo các thư mục cần thiết:

mkdir -p /u01/app/26ai/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/26ai/dbhome_1
chown grid:oinstall /u01 -R
chown oracle:oinstall /u01/app/oracle -R

Tạo nút thứ hai

Sao chép nút đầu tiên (AI261) để tạo AI262. Sau khi sao chép (cách sao chép là 1/Tắt máy, 2/Copy thư mục AI261 thành AI262 3/Bật máy AI262):

  1. Cập nhật tên máy chủ thành AI262.
  2. Cập nhật địa chỉ IP thành 192.168.999.87.
  3. Cập nhật ORACLE_SID trong .bash_profile thành +ASM2 (cho grid) và AI262 (cho oracle).
  4. Thêm các ổ đĩa dùng chung hiện có từ nút 1 sang nút 2.

4.Chiến lược đồng bộ hóa thời gian

Trong môi trường RAC, hiện tượng lệch đồng hồ là nguyên nhân chính dẫn đến việc cụm máy chủ bị loại bỏ. Chúng tôi sử dụng phương pháp đồng bộ hóa hai tầng.

Đồng bộ hóa giữa máy chủ và máy khách

Đảm bảo nút đầu tiên (AI261) nhận được thời gian từ máy chủ ESXi:

  1. vSphere Client -> Tùy chọn máy ảo -> VMware Tools.
  2. Bật tính năng đồng bộ hóa thời gian của khách với máy chủ.

Cấu hình Chrony ngang hàng

Để đảm bảo độ chính xác đến từng mili giây giữa các nút, hãy cấu hình AI261 làm máy chủ thời gian cục bộ và AI262 làm máy khách của nó.

Trên AI261 (/etc/chrony.conf):

local stratum 10
allow 192.168.999.0/24

Trên AI262 (/etc/chrony.conf), hãy bỏ chú thích dòng bắt đầu bằng pool và thêm dòng sau vào tệp:

server AI261 iburst

Xác minh đồng bộ trên AI262:

[root@AI262 ~]# systemctl restart chronyd
[root@AI262 ~]# chronyc makestep
200 OK
[root@AI262 ~]# chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* AI261 10 6 17 22 +5654ns[ +32ms] +/- 75us

Điều này xác nhận rằng AI262 không chỉ kết nối được với nút chủ mà còn đồng bộ hóa thành công đồng hồ của nó. Độ lệch đã giảm xuống chỉ còn 5654 nanogiây (gần như bằng không).

5.Cấu hình lưu trữ dùng chung

Phương pháp nhiều máy cùng ghi (multi-writer)

Đầu tiên, chúng ta thêm bộ điều khiển SCSI thứ hai. Tất cả các ổ đĩa dùng chung sẽ nằm trên bộ điều khiển này.



Chúng ta sẽ sử dụng cờ multi-writer để chia sẻ ổ đĩa (một phương pháp tốt nhất của VMware), vì vậy cài đặt SCSI Bus Sharing nên được giữ nguyên là “None”. Bộ điều khiển SCSI cũng nên được đặt thành VMware Paravirtual để đạt hiệu suất tốt nhất.

Thêm ổ cứng mới 20GB

Thêm nó vào bộ điều khiển SCSI vừa tạo, thiết lập đĩa ở chế độ “thick provisioned, eager zeroed” và “Independent – ​​persistent”, và chia sẻ thành Multi-writer.

Thêm ba ổ đĩa 20GB khác vào nút đầu tiên, giữ nguyên cài đặt như ổ đĩa đầu tiên, bao gồm cả cờ ghi đa người dùng để chia sẻ.

Tiếp theo, khi thêm bốn VMDK vào các nút khác bằng cách chọn “Ổ cứng hiện có”, và thêm chúng vào bộ điều khiển SCSI mới được tạo.

Chúng tôi khởi động máy chủ và kiểm tra ổ đĩa:

[root@AI261 ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 0 Feb 3 15:01 /dev/sda
brw-rw---- 1 root disk 8, 1 Feb 3 15:01 /dev/sda1
brw-rw---- 1 root disk 8, 2 Feb 3 15:01 /dev/sda2
brw-rw---- 1 root disk 8, 16 Feb 3 15:01 /dev/sdb
brw-rw---- 1 root disk 8, 32 Feb 3 15:01 /dev/sdc
brw-rw---- 1 root disk 8, 48 Feb 3 15:01 /dev/sdd
brw-rw---- 1 root disk 8, 64 Feb 3 15:01 /dev/sde
[root@AI261 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 160G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 159G 0 part
├─ol-root 252:0 0 70G 0 lvm /
├─ol-swap 252:1 0 7.9G 0 lvm [SWAP]
└─ol-home 252:2 0 81.1G 0 lvm /home
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 1024M 0 rom

Phân vùng đĩa

Phân vùng ổ đĩa trên nút đầu tiên:

for disk in sdb sdc sdd sde; do
fdisk /dev/${disk} <<EOF
n
p
1
w
EOF
done

Xác minh các phân vùng mới

[root@AI261 ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 0 Feb 3 15:01 /dev/sda
brw-rw---- 1 root disk 8, 1 Feb 3 15:01 /dev/sda1
brw-rw---- 1 root disk 8, 2 Feb 3 15:01 /dev/sda2
brw-rw---- 1 root disk 8, 16 Feb 3 15:03 /dev/sdb
brw-rw---- 1 root disk 8, 17 Feb 3 15:03 /dev/sdb1
brw-rw---- 1 root disk 8, 32 Feb 3 15:03 /dev/sdc
brw-rw---- 1 root disk 8, 33 Feb 3 15:03 /dev/sdc1
brw-rw---- 1 root disk 8, 48 Feb 3 15:03 /dev/sdd
brw-rw---- 1 root disk 8, 49 Feb 3 15:03 /dev/sdd1
brw-rw---- 1 root disk 8, 64 Feb 3 15:03 /dev/sde
brw-rw---- 1 root disk 8, 65 Feb 3 15:03 /dev/sde1

Trong tệp .vmx của máy ảo, hãy đảm bảo rằng disk.enableuuid = "TRUE"biến này được thiết lập.

Các quy tắc Udev dành cho thiết bị ASM bền vững

Để đảm bảo người dùng Grid có thể truy cập vào các ổ đĩa sau khi khởi động lại, chúng tôi sử dụng scsi_id để xác định các ổ đĩa và udev để gán quyền.

Xác định UUID:

/usr/lib/udev/scsi_id -g -u -d /dev/sdb1

Tạo tệp /etc/udev/rules.d/99-oracle-asm.rules (Ví dụ sử dụng UUID đã được xác định):
Trong Oracle 26ai, nhóm đã được thay đổi từ asmadmin thành asmdba.

KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2947fc68265290c9ff1a9c58777", OWNER="grid", GROUP="asmdba", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29a2b5bdb6aa0df4285c524b83b", OWNER="grid", GROUP="asmdba", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29a121dc5634ba13ecc45ce9691", OWNER="grid", GROUP="asmdba", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2933fbeffeeae7b086679d59069", OWNER="grid", GROUP="asmdba", MODE="0660"

Áp dụng và xác minh các quy tắc

# Reload the udev rules
udevadm control --reload-rules
# Trigger the rules for all block devices
udevadm trigger --type=devices --action=add
# Verify ownership and permissions
# ls -al /dev/sd[b-e]1
brw-rw---- 1 grid asmdba 8, 17 Feb 3 15:07 /dev/sdb1
brw-rw---- 1 grid asmdba 8, 33 Feb 3 15:07 /dev/sdc1
brw-rw---- 1 grid asmdba 8, 49 Feb 3 15:07 /dev/sdd1
brw-rw---- 1 grid asmdba 8, 65 Feb 3 15:07 /dev/sde1

Xác minh: Kết quả đầu ra giờ sẽ hiển thị gridngười sở hữu và asnhóm cho sdb1đến sde1.

7.Cài đặt cơ sở hạ tầng grid

Giải nén phần mềm Grid vào thư mục Grid Home và khởi chạy quá trình cài đặt:

[root@AI261 ~]# mv LINUX.X64_2326100_grid_home.zip /u01/app/26ai/grid/
[root@AI261 ~]# su - grid
[grid@AI261 ~]$ cd $ORACLE_HOME
[grid@AI261 grid]$ unzip -q LINUX.X64_2326100_grid_home.zip
[grid@AI261 grid]$ ./gridSetup.sh
Launching Oracle Grid Infrastructure Setup Wizard...

Hãy chọn tên cho cụm và quá trình quét, tên quét phải có thể phân giải được.

Thêm nút thứ hai vào danh sách.

Cấu hình kết nối SSH không cần mật khẩu giữa hai nút:

Xác định cấu hình mạng.


Nhấp vào “Sửa và kiểm tra lại”


Lưu ý: Các lỗi kiểm tra SCAN và NTP có thể bỏ qua vì chúng tôi đang sử dụng /etc/hostsvà đã xác minh việc đồng bộ hóa thủ công.

8.Cài đặt phần mềm cơ sở dữ liệu

Đăng nhập với tư cách người dùng Oracle để cài đặt công cụ cơ sở dữ liệu:

[oracle@AI261 ~]$ cd $ORACLE_HOME
[oracle@AI261 dbhome_1]$ unzip -q ~/LINUX.X64_2326100_db_home.zip
[oracle@AI261 dbhome_1]$ ./runInstaller

Tạo cơ sở dữ liệu

Tạo cơ sở dữ liệu bằng DBCA


Nhấp vào “Bỏ qua tất cả” và tiếp tục.


=============================
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

ĐỌC NHIỀU

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