Hướng dẫn cài đặt Oracle RAC 2 node trên Oracle Linux 7.9 với VirtualBox

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ó caokhả 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ị:

  1. virtual box
  2. oracle database software
  3. oracle grid

Download oracle linux 7.9:

https://yum.oracle.com/oracle-linux-isos.html

Download oracle linux 7.9 file .OVA có sẵn cho máy ảo Virtualbox mà không phải cài đặt:

https://drive.google.com/file/d/1SA3R5UY97qTSYtQGzpaz4LocUAZBBuGt/view?usp=sharing

Download VirtualBox:

https://www.virtualbox.org/wiki/Downloads

Download bộ cài Oracle database và Oracle Grid tương ứng tại:

https://edelivery.oracle.com/

Thông tin cài đặt:

ItemsRAC1RAC2
hostnamerac1rac2
ip_remote192.168.68.11192.168.68.12
db nameoradboradb
instance_nameoradb1oradb2
db_unique_nameoradb1oradb2
version DB19.319.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:

Thêm 3 card mạng cho node, các card mạng lần lượt theo thứ tự là host-only, internal, bridged.

User đăng nhập hệ thống:

  • user: root
  • pass: oracle

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: card mạng bridged => for internet update 
NODE1: 192.168.68.11/24 
NODE2: 192.168.68.12/24 
GW: 192.168.68.1 
DNS: 8.8.8.8

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

Đặt lại hostname cho 2 node:

##Node 1
hostnamectl set-hostname rac1.localdomain

##Node 2
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

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 để đơn giản chúng ta tiến hành cài đặt grid infra 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), các bạn nếu muốn thì cũng có thể tạo thêm mới user grid để cài đặt Grid Infra riêng.

usermod -G asmdba,asmoper,asmadmin oracle

Tôi sẽ hướng dẫn các bạn cài đặt Grid Infrastructura sử dụng user Grid trong bài viết cài đặt Grid Standalone các bạn xem ở link bên dưới đây, trong bài này tôi sử dụng user Oracle để đa dạng hoá các hình thức khác nhau, có thể áp dụng linh hoạt các trường hợp khác nhau miễn là chúng ta hoàn thành được mục tiêu, các bạn có thể tham khảo.

Cài đặt Oracle Database 19c với Grid Infrastructure Standalone trên Linux – ASM database single instance

Đặ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:

##thêm vào Node 1:

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

## nội dung của node 2:

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

##Node 1

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

## trên node 2:

export ORACLE_SID=+ASM2
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..)

=> các bạn nhớ đặt type là shareable cho đĩa nhé

=> Đĩa này phải được cấp phát ngay khi tạo nhé: Pre-allocate full size

Dung lượng tương ứng là: 20GB, 60GB, 5GB

  • Vtbox/file/tool/Virtual media manager/create disk

word image 3669 13 word image 3669 14 word image 3669 15 word image 3669 16 word image 3669 17 word image 3669 18 word image 3669 20 word image 3669 19

oracle database shareable

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 Oracle Grid, Oracle 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:

Xem thêm cách copy file vào máy ảo: https://datalinks.vn/copy-file-tu-windows-vao-linux-tren-virtualbox-nhu-the-nao-how-to-copy-file-from-windows-to-linux-on-virtualbox/

Login vào user root để có quyền giải nén:

Nếu tên file bộ cài của bạn đặt # thì bạn sửa lại thông tin cho phù hợp.

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 shareable

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
enter
enter
enter
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 ASM Disk ứng với từng đĩa:

oracleasm createdisk DATA /dev/sdb1
oracleasm createdisk FRA /dev/sdc1
oracleasm createdisk OCR /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

 

TRÊN 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:

IP ở đây chính là IP của máy window mà các bạn đang SSH vào linux, các bạn thay IP hiện tại của bạn vào nhé, IP của tôi ở đây là 192.168.68.222

export DISPLAY=192.168.68.222:0.0
cd /u01/app/19c/grid/
./gridSetup.sh

word image 759 1

Chúng ta chọn như hình bên dưới

word image 759 2

word image 759 3

Chúng ta nhập thông tin như bên dưới: Create local SCAN:

  • Cluster name: rac-cluster
  • SCAN name: rac-scan
  • SCAN Port: 1521

=> next

word image 759 4

Click ADD thêm node 2 vào danh sách

word image 759 5

Nhập thông tin Node2 và nhấn OK

  • rac2.localdomain
  • rac2-vip.localdomain

word image 759 6

Nhấn vào => SSH connectivity để test: Nhập user/pass ssh user:oracle/oracle => sau đó Click Setup rồi nhấn Test

Bảng thông báo OK => sau đó nhấn Next

word image 759 7

word image 759 8

word image 759 9

Chúng ta chọn thông tin như sau: => sau đó nhấn Next

  • enp0s3 = public
  • enp0s8 = ASM & Private

word image 759 10

Chọn: Use Oracle Flex ASM for Storage

word image 759 11

=> Chọn NO và next

word image 759 12

  • Đổ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.

word image 759 13

=> chọn redundancy to External

=> Disk group name: OCR và chọn link disk OCR

word image 759 14

Nhập Pass quản trị cho sys user: oracle

word image 759 15

word image 759 16

Chọn theo thông tin bên dưới

word image 759 17

word image 759 18

Chọn các thông tin như bên dưới sau đó nhấn Next

word image 3669 34

Chọn đường dẫn cho Grid base và Grid home sau đó Next, như hình bên dưới

word image 759 20

Đường dẫn: /u01/app/grid

word image 759 21

word image 759 22

word image 759 23

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.

word image 759 24

=>Check the Ignore All checkbox

word image 759 25

=> Double check and click the Install button.

word image 759 26

Mở cửa sổ terminal node1 và node2 => chạy với quyền root

word image 759 27

##Node1 ### Chạy với user Root

/u01/app/oraInventory/orainstRoot.sh
/u01/app/19c/grid/root.sh

##Node2 ### Chạy với user Root

/u01/app/oraInventory/orainstRoot.sh
/u01/app/19c/grid/root.sh

word image 759 28

  • sau khi script chạy hoàn tất thì click OK trên cửa sổ cài đặt là chúng ta đã tiến hành cài đặt thành công Grid.

ĐẾ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_profile
cd /u01/app/oracle/product/19c/dbhome_1/
./runInstaller
  • cài đặt software only

word image 759 29

  • oralce real aplication cluster database installation

word image 759 30

=> click chọn SSH connectivity => nhập thông tin mật khẩu user oracleoracle

=> nhấn Setup để tiến hành cập nhật thông tin, sau đó nhấn test để kiểm tra thông tin ssh

word image 759 31

=> chon bản enterprise

word image 759 32

=> chọn đường dẫn oracle base, home:

/u01/app/oracle
/u01/app/oracle/product/19c/dbhome_1

word image 759 33

Hệ thống tiến hành check thông tin cài đặt

word image 759 34

=> Chọn tất cả group là oinstall => NEXT

=> Check the “Ignore All” checkbox and click the “Next” button.

=> Nhấn Install để tiến hành cài đặt

word image 759 35

## Node1, Node2, run script with root

/u01/app/oracle/product/19c/dbhome_1/root.sh

word image 759 36

  • 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

word image 759 37

word image 759 38

  • ở đâ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

word image 759 39

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

word image 759 40

=> create

name: DATA

redundancy: External (none)

word image 759 41

=> OK button

word image 759 42

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

word image 759 43

=> Chọn Create a database

word image 759 44

=> Chọn Advanced configuration

word image 759 45

=> Database type: RAC

=> Configuration type: admin managed

=> Select the General purpose

word image 759 46

=> Chọn cả 2 rac1, rac2

word image 759 47

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.

word image 759 48

  • 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)

word image 759 49

=> chọn +FRA => lưu dữ liệu vùng fast recovery area, dung lượng lưu trữ, bật archive mode

word image 759 50

Để thông tin mặc định như bên dưới

word image 759 51

word image 759 52

word image 759 53

word image 759 54

word image 759 55

word image 759 56

=> Đặt pass quản trị oracle.

word image 759 57

=> Next

word image 759 58

  • hệ thống check thông tin cài đặt

word image 759 59

  • Ignore All và NEXT

word image 759 60

  • hệ thống tiến hành cài đặt

word image 759 61

  • Finished

word image 759 62

TEST DỊCH VỤ:

word image 759 63

word image 759 64

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

word image 759 65

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!

Datalinks.vn

Hello các bạn, mình là Dương Nguyễn tác giả của blog này. Với gần 20 năm làm việc trong lĩnh vực CNTT, VT trong và ngoài nước, mong muốn được chia sẻ kiến thức và kinh nghiệm về database với các bạn đam mê và quan tâm đến lĩnh vực này. Đặc biệt là #OracleDatabase hoặc luyện thi #OCP database admin. Các bạn cần người đồng hành thì alo mình nhé. Call/Zalo: 0765 871 888. Thanks you !.....
5 1 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận