프린트 하기

OS환경 : Oracle Linux 7.6 (64bit)

 

DB 환경 : Oracle Database 11.2.0.4

 

방법 : Oracle Linux 7.6에 Oracle 11gR2 Raw Device RAC 설치 가이드_Part 1

OS 설치는 아래 게시물 참조
Oracle Linux 7.6 설치 가이드(https://positivemh.tistory.com/521)
hostname 변경해야함
 
1번 노드 hostname : oel11db1
2번 노드 hostname : oel11db2

 

*본문에 2번노드 표시가 없으면 모두 1번노드에서 작업

 

 

설치파일은 아래 4가지 파일을 이용함

GRID : p13390677_112040_Linux-x86-64_3of7.zip
DB : 
p13390677_112040_Linux-x86-64_1of7.zip, p13390677_112040_Linux-x86-64_2of7.zip

Patch p18370031_112040_Linux-x86-64.zip(linux 7에 grid 설치시 필수 패치)

참고 : 11gR2 Grid install – Error: ohasd failed to start the Clusterware. ( https://positivemh.tistory.com/122 )

 

하드웨어 설정

Oracle Linux 7.6 설치 가이드를 보고 설치한 경우

OEL7.6 폴더에 설치했을텐데

11grac라는 폴더를 하나 만들어서 그안에 폴더를 통째로 이동시켜줌

OEL7.6 폴더는 oel11db1로 폴더명을 변경시켜줌

11grac 폴더에 아래와 같이 storage 라는 폴더도 생성해줌(공유 경로로 사용예정)

 

 

.vmx파일을 실행하면 vmware가 실행됨

 

 

Edit virtual machine settings 선택

 

 

메모리 8gb로 수정(4gb도 가능)

 

 

Processors 2, 2로 변경(1, 1도 가능)

Add 선택

 

 

Add 선택 후 Hard Disk추가

 

 

SCSI 선택

 

 

Create a new virtual disk 선택

 

 

30GB 입력 후 Store virtual disk as a single file 선택

 

 

추가 디스크 위치 선택
storage 폴더에 생성(공유경로로 사용예정)

 

 

추가된 디스크 선택 후 Advanced 선택

 

 

SCSI 1:0 으로 선택, Indipendent, Persistent 선택 후 OK

 

 

네트워크 어댑터 추가를 위해 Add

 

 

Network Adapter 선택

 

 

Host_only 선택

 

 

디스크와 네트워크 추가된 모습 확인 후 OK

 

 

Options에서 Virtual machine name을 oel11db1로 변경

 

 

vmware 프로그램 종료 후 D:\01.Oracle\03.vmware\11grac\oel11db\Oracle Enterprise Linux 7.6.vmx 메모장으로 열기
제일 밑에 아래 내용 추가 후 저장

1
2
3
4
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
scsi1.sharedBus = "virtual"
scsi1:0.deviceType = "disk"

 

 

OS 기동, 기동 시 아래 메세지 발생 시 I copied it 선택

 

 

OS 설정

노드1 OS 기동 후
/etc/hostname 확인

1
2
# cat /etc/hostname
oel11db1

 

 

기존에 다른 hostname이라면 hostname 변경 후 확인

1
2
3
# hostnamectl set-hostname oel11db1
# hostname
oel11db1

 

 

Network 설정

1
2
3
4
5
6
7
8
9
10
Public network(ens32)
IP/Netmask/GW
192.168.137.10/255.255.255.0/192.168.137.2 --노드1
192.168.137.20/255.255.255.0/192.168.137.2 --노드2
DNS 168.126.63.1
 
Private network
IP/Netmask/GW(ens35)
10.10.10.10/255.255.255.0 --노드1
10.10.10.20/255.255.255.0 --노드2

 

 

Network 설정(GUI)

OS 기동 후 root 유저 접속 후 우측 상단 전원버튼 선택 후 설정 버튼 선택

 

 

ens32의 설정버튼 선택

 

 

IPv4로 이동 후 Address를 192.168.137.10으로 변경 후 Apply

 

 

ens35는 현재 설정 아이콘이 안나와 있음

 

 

터미널에서 ens35 네트워크 수동 생성

1
2
# cd /etc/sysconfig/network-scripts/
# touch ifcfg-ens35

 

 

내용 추가

1
2
3
4
5
6
7
8
9
10
11
12
# vi ifcfg-ens35
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens35
DEVICE=ens35
ONBOOT=yes
IPADDR=10.10.10.10
PREFIX=24

 

 

네트워크 매니저 재기동

1
# systemctl restart NetworkManager

 

 

네트워크 설정 후 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.10  netmask 255.255.255.0  broadcast 192.168.137.255
        inet6 fe80::20c:29ff:fe9b:25d2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9b:25:d2  txqueuelen 1000  (Ethernet)
        RX packets 1044909  bytes 1556511719 (1.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 162777  bytes 10543130 (10.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.10  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::20c:29ff:fe9b:25dc  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9b:25:dc  txqueuelen 1000  (Ethernet)
        RX packets 8  bytes 1052 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 5101 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 240  bytes 26736 (26.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 240  bytes 26736 (26.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:ed:0b:dc  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 

 

 

/etc/hosts 설정, 아래 내용 추가 후 저장

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
##Public
192.168.137.10 oel11db1
192.168.137.20 oel11db2
 
##Private
10.10.10.10 oel11db1-priv
10.10.10.20 oel11db2-priv
 
##Virtual
192.168.137.100 oel11db1-vip
192.168.137.200 oel11db2-vip
 
##SCAN
192.168.137.150 oel11db-scan

 

 

오라클 설치 전 사전 설정

자동 설정

1
2
# yum install -y oracle-rdbms-server-11gR2-preinstall
# yum install -y elfutils-libelf-devel

 

 

자동 설정 후 수동설정 파일 확인

/etc/sysctl.conf에 아래 내용 삽입되었는지 확인(안되어있다면 수동삽입)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# vi /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824 (또는 물리메모리 크기의 절반 page 단위)
kernel.shmmax = 4398046511104 (또는 물리메모리 크기의 절반(byte))
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

위 값은 최소값으로 나의경우 물리메로리를 8GB로 할당했기 때문에 shmmax를 4294967296(byte) 로 할당함

 

 

shmmax를 물리메모리의 60%로 설정을 원하는 경우 + shmall을 page 단위로 설정하려는 경우 아래 스크립트 활용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
 
# Get total memory size in KB
mem_kb=$(free -| awk '/^Mem:/ {print $2}')
 
# Get system page size in bytes
page_size=$(getconf PAGE_SIZE)
 
# Calculate shmmax: total memory in bytes × 60%
shmmax=$(echo "$mem_kb * 1024 * 6 / 10" | bc)
 
# Calculate shmall: shmmax divided by page size
shmall=$(echo "$shmmax / $page_size" | bc)
 
# Output results
echo "Total Memory (KB): $mem_kb"
echo "Page Size (bytes): $page_size"
echo "Calculated SHMMAX (bytes): $shmmax"
echo "Calculated SHMALL (pages): $shmall"

여기서 나온값을 넣어주면됨

 

 

잘 입력되었는지 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/sbin/sysctl -p
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1016051
kernel.shmmax = 4294967296
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

 

 

Shell Limits 설정(안되어있다면 수동삽입)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# cat /etc/security/limits.conf
# oracle-rdbms-server-11gR2-preinstall setting for nofile soft limit is 1024
oracle   soft   nofile    1024
 
# oracle-rdbms-server-11gR2-preinstall setting for nofile hard limit is 65536
oracle   hard   nofile    65536
 
# oracle-rdbms-server-11gR2-preinstall setting for nproc soft limit is 16384
# refer orabug15971421 for more info.
oracle   soft   nproc    16384
 
# oracle-rdbms-server-11gR2-preinstall setting for nproc hard limit is 16384
oracle   hard   nproc    16384
 
# oracle-rdbms-server-11gR2-preinstall setting for stack soft limit is 10240KB
oracle   soft   stack    10240
 
# oracle-rdbms-server-11gR2-preinstall setting for stack hard limit is 32768KB
oracle   hard   stack    32768
 
oracle   hard   memlock    134217728
 
# oracle-rdbms-server-11gR2-preinstall setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
oracle   soft   memlock    134217728

 

 

유저 및 그룹 생성(안되어있다면 수동생성)

1
2
# groupadd dba
# useradd -g dba -G dba oracle

 

 

패스워드 설정

1
# passwd oracle

 

 

selinux disable 설정

1
2
# vi /etc/selinux/config
SELINUX=disabled

 

 

불필요한 서비스 정지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#
systemctl stop firewalld
systemctl disable firewalld
 
systemctl stop bluetooth
systemctl disable bluetooth
 
systemctl stop chronyd
systemctl disable chronyd
mv /etc/chrony.conf /etc/chrony.conf.bak
 
systemctl stop ntpdate
systemctl disable ntpdate
 
systemctl stop avahi-daemon.socket
systemctl disable avahi-daemon.socket
 
systemctl stop avahi-daemon
systemctl disable avahi-daemon
 
systemctl stop libvirtd
systemctl disable libvirtd

 

 

asm용 추가 rpm 설치

https://www.oracle.com/linux/downloads/linux-asmlib-v7-downloads.html

에서 oracleasmlib-2.0.12-1.el7.x86_64.rpm 다운로드

https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/index.html

에서 oracleasm-support-2.1.11-2.el7.x86_64.rpm 다운로드 후 서버에 업로드

1
2
3
4
5
6
7
8
9
10
# rpm -ivh oracleasmlib-2.0.12-1.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:oracleasmlib-2.0.12-1.el7        ################################# [100%]
# rpm -ivh oracleasm-support-2.1.11-2.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:oracleasm-support-2.1.11-2.el7   ################################# [100%]
Note: Forwarding request to 'systemctl enable oracleasm.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/oracleasm.service to /usr/lib/systemd/system/oracleasm.service.

 

 

Temp 파일시스템 할당

1
2
# vi /etc/fstab
tmpfs                   /dev/shm                 tmpfs   size=7g         0 0

 

 

/dev/shm 영역 remount

1
# mount -o remount /dev/shm

 

 

추가 후 확인

1
2
3
# df -/dev/shm
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           7.0G     0  7.0G   0/dev/shm

 

 

추가한 디스크 확인(/dev/sdb 30GB)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# fdisk -l
 
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0002903d
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      976895      487424   83  Linux
/dev/sda2          976896   104857599    51940352   8e  Linux LVM
 
Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

 

 

디스크 포맷(n --> p --> 1 --> Enter --> Enter --> w)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
 
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xaf2fd56c.
 
Command (m for help): n
Partition type:
   p   primary (0 primary0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4default 1): 1
First sector (2048-62914559default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-62914559default 62914559):
Using default value 62914559
Partition 1 of type Linux and of size 30 GiB is set
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

 

 

확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# fdisk -l
 
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0002903d
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      976895      487424   83  Linux
/dev/sda2          976896   104857599    51940352   8e  Linux LVM
 
Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xaf2fd56c
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    62914559    31456256   83  Linux

 

 

Pv Vg Lv 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#
pvcreate /dev/sdb1
vgcreate 11g_oradisk /dev/sdb1
lvcreate -L 300M -n ocr1 11g_oradisk
lvcreate -L 300M -n ocr2 11g_oradisk
lvcreate -L 300M -n vote01 11g_oradisk
lvcreate -L 300M -n vote02 11g_oradisk
lvcreate -L 300M -n vote03 11g_oradisk
lvcreate -L 1024M -n system 11g_oradisk
lvcreate -L 1024M -n sysaux 11g_oradisk
lvcreate -L 1024M -n users 11g_oradisk
lvcreate -L 700M -n temp 11g_oradisk
lvcreate -L 1024M -n undotbs1 11g_oradisk
lvcreate -L 1024M -n undotbs2 11g_oradisk
lvcreate -L 100M -n control01 11g_oradisk
lvcreate -L 100M -n control02 11g_oradisk
lvcreate -L 200M -n redo01 11g_oradisk
lvcreate -L 200M -n redo02 11g_oradisk
lvcreate -L 200M -n redo03 11g_oradisk
lvcreate -L 200M -n redo04 11g_oradisk
lvcreate -L 200M -n redo05 11g_oradisk
lvcreate -L 200M -n redo06 11g_oradisk
lvcreate -L 200M -n spfile 11g_oradisk
lvcreate -L 300M -n imsiocr1 11g_oradisk
lvcreate -L 300M -n imsiocr2 11g_oradisk
lvcreate -L 300M -n imsiocr3 11g_oradisk

 

 

vi /etc/rc.d/rc.local에 넣기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# vi /etc/rc.d/rc.local
raw /dev/raw/raw1 /dev/11g_oradisk/ocr1
raw /dev/raw/raw2 /dev/11g_oradisk/ocr2
raw /dev/raw/raw3 /dev/11g_oradisk/vote01
raw /dev/raw/raw4 /dev/11g_oradisk/vote02
raw /dev/raw/raw5 /dev/11g_oradisk/vote03
raw /dev/raw/raw6 /dev/11g_oradisk/system
raw /dev/raw/raw7 /dev/11g_oradisk/sysaux
raw /dev/raw/raw8 /dev/11g_oradisk/users
raw /dev/raw/raw9 /dev/11g_oradisk/temp
raw /dev/raw/raw10 /dev/11g_oradisk/undotbs1
raw /dev/raw/raw11 /dev/11g_oradisk/undotbs2
raw /dev/raw/raw12 /dev/11g_oradisk/control01
raw /dev/raw/raw13 /dev/11g_oradisk/control02
raw /dev/raw/raw14 /dev/11g_oradisk/redo01
raw /dev/raw/raw15 /dev/11g_oradisk/redo02
raw /dev/raw/raw16 /dev/11g_oradisk/redo03
raw /dev/raw/raw17 /dev/11g_oradisk/redo04
raw /dev/raw/raw18 /dev/11g_oradisk/redo05
raw /dev/raw/raw19 /dev/11g_oradisk/redo06
raw /dev/raw/raw20 /dev/11g_oradisk/spfile
raw /dev/raw/raw21 /dev/11g_oradisk/imsiocr1
raw /dev/raw/raw22 /dev/11g_oradisk/imsiocr2
raw /dev/raw/raw23 /dev/11g_oradisk/imsiocr3

 

 

rc.local 권한부여 및 서비스 enable

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# chmod +/etc/rc.d/rc.local
# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 1462 Jun  6 15:20 /etc/rc.d/rc.local
# systemctl enable rc-local
# systemctl start rc-local
# systemctl status rc-local
● rc-local.service - /etc/rc.d/rc.local Compatibility
   Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
   Active: active (exited) since Sat 2025-06-06 15:03:29 KST; 26s ago
  Process: 9371 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS)
 
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw15:  bound to major 252, minor 16
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw16:  bound to major 252, minor 17
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw17:  bound to major 252, minor 18
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw18:  bound to major 252, minor 19
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw19:  bound to major 252, minor 20
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw20:  bound to major 252, minor 21
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw21:  bound to major 252, minor 22
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw22:  bound to major 252, minor 23
Jun 07 18:03:29 oel11db1 rc.local[9371]: /dev/raw/raw23:  bound to major 252, minor 24
Jun 07 18:03:29 oel11db1 systemd[1]: Started /etc/rc.d/rc.local Compatibility.

 

 

/etc/udev/rules.d/60-raw.rules 추가

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", ENV{DM_LV_NAME}=="ocr1",      RUN+="/bin/raw /dev/raw/raw1 /dev/11g_oradisk/ocr1"
ACTION=="add", ENV{DM_LV_NAME}=="ocr2",      RUN+="/bin/raw /dev/raw/raw2 /dev/11g_oradisk/ocr2"
ACTION=="add", ENV{DM_LV_NAME}=="vote01",    RUN+="/bin/raw /dev/raw/raw3 /dev/11g_oradisk/vote01"
ACTION=="add", ENV{DM_LV_NAME}=="vote02",    RUN+="/bin/raw /dev/raw/raw4 /dev/11g_oradisk/vote02"
ACTION=="add", ENV{DM_LV_NAME}=="vote03",    RUN+="/bin/raw /dev/raw/raw5 /dev/11g_oradisk/vote03"
ACTION=="add", ENV{DM_LV_NAME}=="system",    RUN+="/bin/raw /dev/raw/raw6 /dev/11g_oradisk/system"
ACTION=="add", ENV{DM_LV_NAME}=="sysaux",    RUN+="/bin/raw /dev/raw/raw7 /dev/11g_oradisk/sysaux"
ACTION=="add", ENV{DM_LV_NAME}=="users",     RUN+="/bin/raw /dev/raw/raw8 /dev/11g_oradisk/users"
ACTION=="add", ENV{DM_LV_NAME}=="temp",      RUN+="/bin/raw /dev/raw/raw9 /dev/11g_oradisk/temp"
ACTION=="add", ENV{DM_LV_NAME}=="undotbs1",  RUN+="/bin/raw /dev/raw/raw10 /dev/11g_oradisk/undotbs1"
ACTION=="add", ENV{DM_LV_NAME}=="undotbs2",  RUN+="/bin/raw /dev/raw/raw11 /dev/11g_oradisk/undotbs2"
ACTION=="add", ENV{DM_LV_NAME}=="control01", RUN+="/bin/raw /dev/raw/raw12 /dev/11g_oradisk/control01"
ACTION=="add", ENV{DM_LV_NAME}=="control02", RUN+="/bin/raw /dev/raw/raw13 /dev/11g_oradisk/control02"
ACTION=="add", ENV{DM_LV_NAME}=="redo01",    RUN+="/bin/raw /dev/raw/raw14 /dev/11g_oradisk/redo01"
ACTION=="add", ENV{DM_LV_NAME}=="redo02",    RUN+="/bin/raw /dev/raw/raw15 /dev/11g_oradisk/redo02"
ACTION=="add", ENV{DM_LV_NAME}=="redo03",    RUN+="/bin/raw /dev/raw/raw16 /dev/11g_oradisk/redo03"
ACTION=="add", ENV{DM_LV_NAME}=="redo04",    RUN+="/bin/raw /dev/raw/raw17 /dev/11g_oradisk/redo04"
ACTION=="add", ENV{DM_LV_NAME}=="redo05",    RUN+="/bin/raw /dev/raw/raw18 /dev/11g_oradisk/redo05"
ACTION=="add", ENV{DM_LV_NAME}=="redo06",    RUN+="/bin/raw /dev/raw/raw19 /dev/11g_oradisk/redo06"
ACTION=="add", ENV{DM_LV_NAME}=="spfile",    RUN+="/bin/raw /dev/raw/raw20 /dev/11g_oradisk/spfile"
ACTION=="add", ENV{DM_LV_NAME}=="imsiocr1",  RUN+="/bin/raw /dev/raw/raw21 /dev/11g_oradisk/imsiocr1"
ACTION=="add", ENV{DM_LV_NAME}=="imsiocr2",  RUN+="/bin/raw /dev/raw/raw22 /dev/11g_oradisk/imsiocr2"
ACTION=="add", ENV{DM_LV_NAME}=="imsiocr3",  RUN+="/bin/raw /dev/raw/raw23 /dev/11g_oradisk/imsiocr3"
ACTION=="add", KERNEL=="raw*", OWNER="oracle", GROUP="dba", MODE="0660"

 

 

load 및 등록된 raw 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# udevadm control --reload-rules
# udevadm trigger
# raw -qa
/dev/raw/raw1:  bound to major 252, minor 2
/dev/raw/raw2:  bound to major 252, minor 3
/dev/raw/raw3:  bound to major 252, minor 4
/dev/raw/raw4:  bound to major 252, minor 5
/dev/raw/raw5:  bound to major 252, minor 6
/dev/raw/raw6:  bound to major 252, minor 7
/dev/raw/raw7:  bound to major 252, minor 8
/dev/raw/raw8:  bound to major 252, minor 9
/dev/raw/raw9:  bound to major 252, minor 10
/dev/raw/raw10:  bound to major 252, minor 11
/dev/raw/raw11:  bound to major 252, minor 12
/dev/raw/raw12:  bound to major 252, minor 13
/dev/raw/raw13:  bound to major 252, minor 14
/dev/raw/raw14:  bound to major 252, minor 15
/dev/raw/raw15:  bound to major 252, minor 16
/dev/raw/raw16:  bound to major 252, minor 17
/dev/raw/raw17:  bound to major 252, minor 18
/dev/raw/raw18:  bound to major 252, minor 19
/dev/raw/raw19:  bound to major 252, minor 20
/dev/raw/raw20:  bound to major 252, minor 21
/dev/raw/raw21:  bound to major 252, minor 22
/dev/raw/raw22:  bound to major 252, minor 23
/dev/raw/raw23:  bound to major 252, minor 24

 

 

Oracle ASM 설정 및 시작(oracle, dba, y, y 순서대로 입력)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# oracleasm configure -i
Configuring the Oracle ASM library driver.
 
This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.
 
Default user to own the driver interface []: oracle <-- oracle 입력
Default group to own the driver interface []: dba <-- dba 입력
Start Oracle ASM library driver on boot (y/n) [n]: y <-- y 입력
Scan for Oracle ASM disks on boot (y/n) [y]: y <-- y 입력
Writing Oracle ASM library driver configuration: done

 

 

아래 명령시 /dev/oracleasm 디렉토리가 만들어지고, oracleasm/disks에 라벨링된 디스크가 저장됨

1
2
3
4
5
# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

 

 

상태 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
 
# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=oracle
ORACLEASM_GID=dba
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"

 

 

공유 디스크 생성

1
2
3
4
#
oracleasm createdisk IMSIOCR1 /dev/11g_oradisk/imsiocr1
oracleasm createdisk IMSIOCR2 /dev/11g_oradisk/imsiocr2
oracleasm createdisk IMSIOCR3 /dev/11g_oradisk/imsiocr3

 

 

디스크 스캔

1
2
3
4
5
# oracleasm scandisks
Reloading disk partitions: 
done
Cleaning any stale ASM disks...
Scanning system for ASM disks...

 

 

생성 리스트 확인(3개가 나와야 정상)

1
2
3
4
# oracleasm listdisks
IMSIOCR1
IMSIOCR2
IMSIOCR3

 

 

디렉토리 생성 및 권한부여

1
2
3
4
5
6
7
8
9
mkdir -/app/oracle/media
mkdir -/app/oracle/product/11g
mkdir -/app/oracle/grid/11g
mkdir -/app/oracle/oraInventory
chown -R oracle:dba /app
chmod -775 /app
chown -R oracle:dba /dev/oracleasm
chown -R oracle:dba /dev/11g_oradisk

 

 

/app/oracle/media 경로에 설치파일 업로드

1
2
3
4
5
6
7
8
9
# chown -R oracle:dba /app/oracle/media/
# ls -al /app/oracle/media/
total 3835024
drwxrwxr-x. 2 oracle dba       4096 Jun  6 16:10 .
drwxrwxr-x. 6 oracle dba         66 Jun  6 15:32 ..
-rw-r--r--  1 oracle dba 1395582860 Jun  6 15:59 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--  1 oracle dba 1151304589 Jun  6 16:00 p13390677_112040_Linux-x86-64_2of7.zip
-rw-r--r--  1 oracle dba 1205251894 Jun  6 16:01 p13390677_112040_Linux-x86-64_3of7.zip
-rw-r--r--  1 oracle dba  174911877 May 22 08:32 p18370031_112040_Linux-x86-64.zip

 

 

오라클 계정 설정 .bash_profile에 아래 내용 추가 후 저장

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# su - oracle
$ vi .bash_profile 
export ORACLE_BASE=/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/11g;
export ORACLE_SID=ORADB1;
export DB_UNIQUE_NAME=ORADB;
export GRID_HOME=/app/grid/11g;
export GRID_SID=+ASM1;
export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export DISPLAY=192.168.137.1:0;
alias oh='cd $ORACLE_HOME;pwd'
alias ss='sqlplus / as sysdba'
alias sa='sqlplus / as sysasm'
stty erase ^H 
alias bdump="cd $ORACLE_BASE/diag/rdbms/${DB_UNIQUE_NAME,,}/$ORACLE_SID/trace"
alias alert='vi $ORACLE_BASE/diag/rdbms/${DB_UNIQUE_NAME,,}/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
alias alertf='tail -300f $ORACLE_BASE/diag/rdbms/${DB_UNIQUE_NAME,,}/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
alias listen="vi $ORACLE_BASE/diag/tnslsnr/$(hostname -s)/listener/trace/listener.log" 
alias listenf="tail -300f $ORACLE_BASE/diag/tnslsnr/$(hostname -s)/listener/trace/listener.log" 
alias dbs='cd $ORACLE_HOME/dbs'
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

 

 

추가 후 적용

1
$ . ./.bash_profile

 

 

root 계정에도 .bash_profile에 아래 내용 추가 후 저장

1
2
3
4
# vi .bash_profile
export GRID_HOME=/app/grid/11g
export ORACLE_HOME=$GRID_HOME
export PATH=$GRID_HOME/bin:$PATH

 

 

※ 여기까지 1번 노드 세팅 완료

 

 

2번 노드 생성(복사)

1번노드 종료 후 노드1 폴더 자체를 복사

 

 

복사한 oel11db1(노드1) -복사본을 oel11db2(노드2)로 변경

 

 

oel11db2 폴더로 들어간 뒤 vmx 파일 실행

 

 

oel11db2의 vmx파일을 열어서 나온 vm에 Edit virtual machine settings 선택

 

 

Network Adapter NAT 선택 후 Advanced 선택

 

 

Generate 선택(MAC Address가 변경됨) 후 OK

 

 

Network Adapter2 Host-only 선택 후 Advanced 선택

 

 

Generate 선택(MAC Address가 변경됨) 후 OK

 

 

Options 에서 Virtual machine name을 oel11db1에서 oel11db2로 변경

 

 

2번노드 oel11db2 OS 기동

 

 

I copied it 선택

 

 

기동 후 root 로 로그인

 

 

터미널 실행

 

 

2번 노드 아이피 변경, 아이피 제일 뒤 10을 20으로 변경

1
2
3
4
5
6
7
8
ens32
# vi /etc/sysconfig/network-scripts/ifcfg-ens32
192.138.137.10 -> 192.138.137.20
#UUID 있는 라인 삭제
 
ens35
# vi /etc/sysconfig/network-scripts/ifcfg-ens35
10.10.10.10 -> 10.10.10.20

 

 

네트워크 재시작 및 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# nmcli con down ens32
# nmcli con down ens35
# nmcli con up ens32
# nmcli con up ens35
# systemctl restart NetworkManager
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.20  netmask 255.255.255.0  broadcast 192.168.137.255
        inet6 fe80::250:56ff:fe2d:1ac8  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:2d:1a:c8  txqueuelen 1000  (Ethernet)
        RX packets 139  bytes 21395 (20.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 211  bytes 28828 (28.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.20  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fe80::250:56ff:fe36:8a2c  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:36:8a:2c  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 519 (519.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 90  bytes 7320 (7.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 396  bytes 44316 (43.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 396  bytes 44316 (43.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

 

hostnamectl 명령으로 hostname 변경 oel11db1-> oel11db2 후 확인

1
2
3
# hostnamectl set-hostname oel11db2
# hostname
oel11db2

 

 

1번노드, 2번노드 모두 OS 기동 후 ping TEST

1
2
3
4
5
6
7
1번 노드(2번노드의 ip로 ping 시도)
# ping oel11db2
# ping oel11db2-priv
 
2번 노드(1번노드의 ip로 ping 시도)
# ping oel11db1
# ping oel11db1-priv

 

 

2번노드 오라클 계정 설정(아래 2가지만 1에서 2로 변경)

1
2
3
4
# su - oracle
$ vi .bash_profile
export ORACLE_SID=ORADB2;
export GRID_SID=+ASM2;

 

 

적용

1
$ . ./.bash_profile 

 

 

다음 게시글로 이동

Oracle Linux 7.6에 Oracle 11gR2 Raw Device RAC 설치 가이드_Part 2(https://positivemh.tistory.com/1226)

 

 

참조 : 

https://positivemh.tistory.com/521

 

Oracle Linux 7.6 설치 가이드

OS환경 : Oracle Linux 7.6 (64bit) 방법 : Oracle Linux 7.6 설치 가이드오라클 리눅스 설치파일은 http://edelivery.oracle.com/ 에서 다운로드 받음Oracle Linux Release 7 Update 6 for x86 (64 bit)(V980739-01).iso 시작 전 네트워

positivemh.tistory.com

https://positivemh.tistory.com/534

 

/usr/bin/xauth: file /root/.Xauthority does not exist

OS환경 : Oracle Linux 7.6 (64bit) 에러 : /usr/bin/xauth: file /root/.Xauthority does not existroot 계정으로 shell 접속 시 발생하는 메세지12345678Xshell:\> Connecting to 192.168.137.50:22...Connection established.Escape character is '^@]'.

positivemh.tistory.com

https://dataforum.io/display/ORCL/Oracle+Database+11g+R2+Real+Application+Cluster+%3A+Silent+Mode+with+Raw+Device#OracleDatabase11gR2RealApplicationCluster:SilentModewithRawDevice-%EC%82%AC%EC%9A%A9Software