Oracle RAC là viết tắt của “Oracle Real Application Clusters” (RAC), một tính năng trong hệ thống quản lý cơ sở dữ liệu Oracle (Oracle Database). Oracle RAC cho phép nhiều máy chủ (nodes) chia sẻ cùng một cơ sở dữ liệu, tạo thành một cụm máy chủ (cluster) để cung cấp tính sẵn có và khả năng mở rộng.
Cụ thể, Oracle RAC cho phép nhiều máy chủ trong cụm (cluster) thao tác đồng thời trên cùng một cơ sở dữ liệu, tăng khả năng chịu lỗi và hiệu suất của hệ thống. Điều này có ý nghĩa đặc biệt khi cần đảm bảo tính sẵn có cao và khả năng mở rộng linh hoạt cho ứng dụng quan trọng và yêu cầu cao về tải.
Oracle RAC được sử dụng rộng rãi trong các doanh nghiệp lớn nơi cần có cơ sở dữ liệu mạnh mẽ, linh hoạt và không ngừng hoạt động. Điều này giúp đảm bảo rằng nếu một máy chủ gặp sự cố, các máy chủ khác vẫn có thể tiếp tục làm việc, giảm thiểu thời gian chết của hệ thống.
Một số khái niệm:
CVU (Cluster Verification Utility)
CRS (Cluster Ready Services)
Công cụ cần chuẩn bị:
- virtual box
- oracle database software
- oracle grid
Download oracle linux 7.9:
https://yum.oracle.com/oracle-linux-isos.html
Download VirtualBox:
https://www.virtualbox.org/wiki/Downloads
Download bộ cài Oracle tương ứng tại:
Thông tin cài đặt:
Items | RAC1 | RAC2 |
hostname | rac1 | rac2 |
ip_remote | 192.168.1.11 | 192.168.1.12 |
db name | oradb | oradb |
instance_name | oradb1 | oradb2 |
db_unique_name | oradb1 | oradb2 |
version DB | 19.3 | 19.3 |
DB_HOME | /u01/app/oracle/product/19c/dbhome_1 | /u01/app/oracle/product/19c/dbhome_1 |
DB_BASE | /u01/app/oracle | /u01/app/oracle |
GRID_BASE | /u01/app/grid | /u01/app/grid |
GRID_HOME | /u01/app/19c/grid | /u01/app/19c/grid |
TRÊN CẢ 02 SERVER:
Chỉnh sửa file /etc/hosts trên cả 02 server, thêm vào cuối file hiện tại:
vi /etc/hosts # Public 192.168.24.1 rac1.localdomain rac1 192.168.24.2 rac2.localdomain rac2 # Private 192.168.10.1 rac1-priv.localdomain rac1-priv 192.168.10.2 rac2-priv.localdomain rac2-priv # Virtual 192.168.24.31 rac1-vip.localdomain rac1-vip 192.168.24.32 rac2-vip.localdomain rac2-vip # SCAN 192.168.24.41 rac-scan.localdomain rac-scan 192.168.24.42 rac-scan.localdomain rac-scan 192.168.24.43 rac-scan.localdomain rac-scan # DNS 192.168.24.111 dnsss.localdomain dnsss
Sửa card mạng trên 02 host theo thông số sau, tương ứng với 2 node 1, 2:
host-only: for ssh, public network NODE1: 192.168.24.1 NODE2: 192.168.24.2 255.255.255.0 0.0.0.0 internal: for rac to rac connect, private network NODE1: 192.168.10.1 NODE2: 192.168.10.2 255.255.255.0 0.0.0.0 internet: dhcp IP auto => for internet update NODE1: 192.168.1.11/24 NODE2: 192.168.1.12/24 GW: 192.168.1.1 DNS: 8.8.8.8
User đăng nhập hệ thống:
user: root, pass: oracle
Đặt lại hostname cho 2 node:
hostnamectl set-hostname rac1.localdomain hostnamectl set-hostname rac2.localdomain
Tắt firewall trên 2 node:
systemctl stop firewalld.service systemctl disable firewalld.service
Bật đồng bộ thời gian cho 2 node:
systemctl enable chronyd.service systemctl restart chronyd.service systemctl status chronyd chronyc tracking chronyc sources chronyc -a 'burst 4/4' chronyc -a makestep
Cập nhật và cài đặt các gói, update hệ thống, preinstall, oracleasm:
yum update -y yum install -y oracle-database-preinstall-19c.x86_64 yum install -y oracleasm-support yum install -y oracleasm yum install -y oracleasmlib
Tạo thêm các nhóm cho oracleasm
groupadd asmdba groupadd asmoper groupadd asmadmin
Thêm nhóm bên trên cho user oracle, Ở đây chúng ta tiến hành cài đặt grid bằng user oracle luôn mà ko cần tạo user grid (nếu sử dụng user grid thì add groups cho user grid là xong)
usermod -G asmdba,asmoper,asmadmin oracle
Đặt pass cho user oracle
passwd oracle
Tạo đường dẫn cho grid và oracle database:
mkdir -p /u01/app/19c/grid mkdir -p /u01/app/grid mkdir -p /u01/app/oracle/product/19c/dbhome_1
Đổi sang user oracle và tạo biến môi trường bash
su oracle cd vi .bash_profile
## thêm đoạn này vào cuối file bash_profile hiện tại:
# Oracle Settings
export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01/app/oracle export GRID_HOME=/u01/app/19c/grid export DB_HOME=$ORACLE_BASE/product/19c/dbhome_1 export ORACLE_HOME=$DB_HOME export ORACLE_SID=oradb export ORACLE_TERM=xterm export BASE_PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$BASE_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Tạo biến môi trường cho profile oracle cài grid
vi /home/oracle/grid.env
## thêm đoạn này vào file
export ORACLE_SID=+ASM1 export ORACLE_HOME=$GRID_HOME export PATH=$ORACLE_HOME/bin:$BASE_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Shutdown 2 node:
Thêm đĩa vào máy ảo:
ADD đĩa vào máy ảo, tạo 3 đĩa dùng để lưu trữ dữ liệu đặt ở chế độ sharable => mô phỏng hệ thống SAN, sau đó Add đĩa sharable vào NODE1 và NODE2 => 3 đĩa này thành đĩa dùng chung lưu trữ database: DATA (datafile), FRA(fast recovery area), OCR (oracle cluster register..)
Dung lượng tương ứng là: 50GB, 150GB, 10GB
- Vtbox/file/tool/Virtual media manager/create disk
Start 2 node:
Kiểm tra kết nối mạng xem thông 2 node chưa
ping -c 2 rac1 ping -c 2 rac2 ping -c 2 rac1-priv ping -c 2 rac2-priv
Trên RAC1:
Copy bộ cài Grid, Database vào thư mục home (/home/oracle) của user oracle và tiến hành giải nén vào thư mục đường dẫn base, home tương ứng đã tạo ở bên trên:
Login vào user root để có quyền giải nén:
su - cd /u01/app/19c/grid/ unzip /home/oracle/193000_grid_home.zip cd /u01/app/oracle/product/19c/dbhome_1 unzip /home/oracle/193000_db_home.zip
Gán chủ sở hữu thư mục u01 cho user Oracle:
chown -R oracle:oinstall /u01
Nâng cấp gói cài đặt U = update CVUdisk
(cvuqdisk là một công cụ dùng trên hệ điều hành Linux để hỗ trợ Oracle Grid Infrastructure. Cụ thể, cvuqdisk có tác dụng giúp Cluster Verification Utility (CVU) – công cụ kiểm tra cụm – phát hiện các ổ đĩa được chia sẻ giữa các máy chủ trong cụm)
cd /u01/app/19c/grid/cv/rpm rpm -Uvh cvuqdisk*
copy file sang rac2 và cài đặt CVUdisk
scp ./cvuqdisk* root@rac2:/tmp
Nâng cấp gói cài đặt U = update trên RAC2 qua ssh
ssh root@rac2 rpm -Uvh /tmp/cvuqdisk*
Định dạng ổ đĩa dùng cho sharable
fdisk -l fdisk /dev/sdb
Nhấn các phím theo hướng dẫn để tiến hành định dạng đĩa:
n new p primary w write
Tương tự vậy thực hiện với các đĩa SDC, SDD:
fdisk /dev/sdc fdisk /dev/sdd
Cấu hình ASM: Configure oracleasm utility (bằng user root)
su - /usr/sbin/oracleasm configure -i oracle oinstall y y ### verify /usr/sbin/oracleasm configure ### init /usr/sbin/oracleasm status /usr/sbin/oracleasm init /usr/sbin/oracleasm status ### check df -ha | grep oracle
Tạo Disk Group ứng với từng đĩa:
oracleasm createdisk OCR /dev/sdb1 oracleasm createdisk DATA /dev/sdc1 oracleasm createdisk FRA /dev/sdd1 ## quét và check đĩa DG oracleasm scandisks oracleasm listdisks
Configure SSH Setup, cấu hình SSH cho rac1 connect sang rac2 (nhớ test thử bằng lệnh ssh rac1, ssh rac2 xem có login được ko)
su oracle cd /u01/app/19c/grid/deinstall ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -confirm –advanced
Trên RAC2:
Cài đặt oracleasm với quyền root:
su - /usr/sbin/oracleasm configure -i oracle oinstall y y ## check /usr/sbin/oracleasm status /usr/sbin/oracleasm init /usr/sbin/oracleasm status oracleasm scandisks oracleasm listdisks
Gán quyền thư mục:
chown -R oracle:oinstall /u01
RAC1:
Check các điều kiện chuẩn bị tiến hành cài đặt grid
su oracle cd . grid.env cd /u01/app/19c/grid/ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
Bật Xming nếu SSH client không hỗ trợ Xserver, Xuất màn hình ra PC và chuẩn bị cài grid:
export DISPLAY=192.168.1.222:0.0 cd /u01/app/19c/grid/ ./gridSetup.sh
Create local SCAN:
rac-cluster
rac-scan
1521
=> next
=> add more
rac2.localdomain
rac2-vip.localdomain
=>SSH connectivity button: Nhập user/pass ssh => sau đó Click Setup rồi Test (oracle/oracle)
enp0s3 = public
enp0s8 = ASM & Private
Use Oracle Flex ASM for Storage
=> Chọn NO và next
- Đổi đường dẫn /dev/oracleasm/disks* => hệ thống sẽ liệt kê các Diskgroup ASM chúng ta đã tạo ở bên trên.
=> chọn redundancy to External
=> Disk group name: OCR va chon link disk OCR
Nhập Pass quản trị cho sys user: oracle
=> Chọn tất cả Group là oinstall sau đó nhấn YES
Đường dẫn: /u01/app/grid
Ghi chú: Các thư mục tiến hành cài đặt bên rac2 phải là thư mục trống và không chứa bất kỳ file hay thư mục nào kể cả file hidden.
Tới đây hệ thống sẽ tiến hành cài đặt tự động đồng bộ Grid trên đồng thời cả 2 node cùng 1 lúc.
=>Check the Ignore All checkbox
=> Double check and click the Install button.
Mở cửa sổ terminal node1 và node2 => chạy với quyền root
##Node1, Node2 ### Chạy với quyền Root
/u01/app/oraInventory/orainstRoot.sh
##Node 1, node2 ### Chạy với quyền Root và nhấn Enter
/u01/app/19c/grid/root.sh
- sau khi script chạy hoàn tất thì click OK trên cửa sổ cài đặt.
ĐẾN ĐÂY LÀ CHÚNG TA ĐÃ TIẾN HÀNH CÀI ĐẶT XONG GRID
KIỂM TRA TRẠNG THÁI GRID NODE1
cd /u01/app/19c/grid/bin ./crsctl check cluster -all ./crsctl status resource -t
CÀI ĐẶT ORACLE DATABASE:
RAC1:
su oracle cd . .bash_profifle cd /u01/app/oracle/product/19c/dbhome_1/ ./runInstaller
- cài đặt software only
=> oralce real aplication cluster database installation
=> chon bản enterprise
=> chọn đường dẫn oracle base, home:
/u01/app/oracle /u01/app/oracle/product/19c/dbhome_1
=> Chọn tất cả group là oinstall => NEXT
- Check the “Ignore All” checkbox and click the “Next” button.
## Node1, Node2, run script with root
/u01/app/oracle/product/19c/dbhome_1/root.sh
- hệ thống thông báo cài đặt software database thành công.
NODE1: Tạo disk group để cài database
cd . grid.env asmca
- ở đây chúng ta có thể xem các thông số của ASM hiện đang chạy như ASM instance, tên node, status của asm
=> Trong mục disk groups hiện đang có 1 DG là OCR (để lưu trữ trạng thái cluster, node)
Ở đây chúng ta tạo thêm các DG mới DATA, FRA để lưu trữ dữ liệu của database.
=> create
name: DATA
redundancy: External (none)
=> OK button
=> tương tự vậy tạo cho cả FRA diskgroup và sau đó nhấn EXIT đê thoát ra ngoài.
NODE1: Khởi tạo database
cd . .bash_profile dbca
=> Chọn Create a database
=> Chọn Advanced configuration
=> Database type: RAC
=> Configuration type: admin managed
=> Select the General purpose
=> Chọn cả 2 rac1, rac2
Global databasae name: oradb.localdomain
SID prefix: oradb
=> Tại bước này chúng ta có thể chọn kiểu database là CDB hoặc NonCDB, ở đây tôi chọn NOnCDB cho đơn giản.
- chọn lưu data vào ASM (DiskGroups +DATA)
- sử dụng OMF (hệ thống tự động quản lý file và tên file)
=> chọn +FRA => lưu dữ liệu vùng fast recovery area, dung lượng lưu trữ, bật archive mode
=> Đặt pass quản trị oracle.
=> Next
- hệ thống check thông tin cài đặt
- Ignore All và NEXT
- hệ thống tiến hành cài đặt
- Finished
TEST DỊCH VỤ:
ps -ef | grep pmon
- rac1, rac2 đã hoạt động
Kiểm tra cụm cluster:
/u01/app/19c/grid/bin/crsctl check cluster -all /u01/app/19c/grid/bin/crsctl status resource -t
srvctl (Server Control)
Hiển thị danh sách csdl:
srvctl config database
Check asm status:
srvctl status asm srvctl status asm -n rac1 srvctl status asm -n rac2
Danh sách instance:
srvctl config database -d oradb
Danh sách listener:
srvctl config listener
Stop và start db:
srvctl stop database -d oradb srvctl start database -d oradb
Stop, start cụ thể instance:
srvctl stop instance -db DB_NAME -n INSTANCE_NAME srvctl stop instance -db oradb -n db1
Trạng thái db:
srvctl status database -d oradb
Trạng thai nodeapp:
srvctl status nodeapps -n rac1 srvctl status nodeapps -n rac2
LOGIN VÀO SQLPLUS TRÊN RAC1:
export ORACLE_SID=oradb1 sqlplus / as sysdba select INST_NUMBER,INST_NAME FROM v$active_instances; SELECT instance_name, host_name FROM gv$instance;
Hết!
Chúc các bạn thành công!