[실습
환경]
OS : Oracle
Linux Server 7.9 (Linux rdb01d 5.4.17-2102.201.3.el7uek.x86_64)
DB : Oracle
Database 19c Enterprise Edition Release 19.0.0.0.0 - Production (Version
19.27.0.0.0)
RAC1 : ol7ora19r1(192.168.0.21) : ORA19R1
RAC2 :
ol7ora19r2(192.168.0.22) : ORA19R2
1. 공유 디스크 추가
<Oracle VM Virtual Box>
-> 도구 -> 미디어 -> 만들기 -> VDI(VirtualBox 디스크 이미지) -> 고정 크기
-> 경로 지정 (ex:"E:\vm\ol7ora19r\ol7ora19r_storage\ol7ora19r_ACFS1_1.vdi") -> 40GB -> 디스크 속성을 "공유 가능"으로 변경
--> 여기 까지 완료 후 각각에
노드에(Oracle VM) 공유 디스크를 연결 해줌
--> 모든 Oracle VM의 전원을 off 시킨 상태에서 해야함
-- RAC1 :
ol7ora19r1(192.168.0.21) : DRDB1 설정
VM 설정 -> 저장소 -> 컨트롤러:SATA ->
ol7ora19r_ACFS1_1.vdi 선택
-- RAC2 :
ol7ora19r2(192.168.0.22) : DRDB2 설정
VM 설정 -> 저장소 -> 컨트롤러:SATA ->
ol7ora19r_ACFS1_1.vdi 선택
--> 모든 Oracle VM의 전원을 on 시킴
2. 공유 디스크 등록
2-1. ASMLIB
사용 시
[root@ol7ora19r1][/root]$ ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0
Jun 3 17:25 /dev/sda
brw-rw----. 1 root disk 8, 1 Jun 3
17:25 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jun 3 17:25
/dev/sda2
brw-rw----. 1 root disk 8, 16 Jun 3 17:25
/dev/sdb
brw-rw----. 1 root disk 8, 17 Jun 3 17:25
/dev/sdb1
brw-rw----. 1 root disk 8, 32 Jun 3 17:25
/dev/sdc
brw-rw----. 1 root disk 8, 33 Jun 3 17:25
/dev/sdc1
brw-rw----. 1 root disk 8, 48 Jun 3 17:25
/dev/sdd
brw-rw----. 1 root disk 8, 49 Jun 3 17:25
/dev/sdd1
brw-rw----. 1 root disk 8, 64 Jun 3 17:25
/dev/sde
brw-rw----. 1 root disk 8, 65 Jun 3 17:25
/dev/sde1
brw-rw----. 1 root disk 8, 80 Jun 3 17:25
/dev/sdf
brw-rw----. 1 root disk 8, 81 Jun 3 17:25
/dev/sdf1
brw-rw----. 1 root disk 8, 96 Jun 3 17:25
/dev/sdg
[root@ol7ora19r1][/root]$ fdisk /dev/sdg
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 0x8b712d2a.
Command (m
for help): n
Partition
type:
p primary (0 primary, 0 extended, 4
free)
e extended
Select (default p): p
Partition number (1-4, default
1):
First sector (2048-83886079, default 2048):
Using default value
2048
Last sector, +sectors or +size{K,M,G} (2048-83886079, default
83886079):
Using default value 83886079
Partition 1 of type Linux and of
size 40 GiB is set
Command (m
for help): w
The partition
table has been altered!
Calling
ioctl() to re-read partition table.
Syncing disks.
[root@ol7ora19r1][/root]$ ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0
Jun 3 17:25 /dev/sda
brw-rw----. 1 root disk 8, 1 Jun 3
17:25 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jun 3 17:25
/dev/sda2
brw-rw----. 1 root disk 8, 16 Jun 3 17:25
/dev/sdb
brw-rw----. 1 root disk 8, 17 Jun 3 17:25
/dev/sdb1
brw-rw----. 1 root disk 8, 32 Jun 3 17:25
/dev/sdc
brw-rw----. 1 root disk 8, 33 Jun 3 17:25
/dev/sdc1
brw-rw----. 1 root disk 8, 48 Jun 3 17:25
/dev/sdd
brw-rw----. 1 root disk 8, 49 Jun 3 17:25
/dev/sdd1
brw-rw----. 1 root disk 8, 64 Jun 3 17:25
/dev/sde
brw-rw----. 1 root disk 8, 65 Jun 3 17:25
/dev/sde1
brw-rw----. 1 root disk 8, 80 Jun 3 17:25
/dev/sdf
brw-rw----. 1 root disk 8, 81 Jun 3 17:25
/dev/sdf1
brw-rw----. 1 root disk 8, 96 Jun 3 17:26
/dev/sdg
brw-rw----. 1 root disk 8, 97 Jun 3 17:28
/dev/sdg1
[root@ol7ora19r1][/root]$ oracleasm createdisk ACFS1_1
/dev/sdg1
Writing disk header: done
Instantiating disk: done
[root@ol7ora19r1][/dev]$ oracleasm
scandisks
Reloading disk partitions: done
Cleaning any stale ASM
disks...
Scanning system for ASM disks...
[root@ol7ora19r1][/dev]$ oracleasm
listdisks
ACFS1_1
CRS1
CRS2
CRS3
DATA1_1
FRA1_1
[root@ol7ora19r2][/root]$ oracleasm
scandisks
Reloading disk partitions: done
Cleaning any stale ASM
disks...
Scanning system for ASM disks...
Instantiating disk
"ACFS1_1"
[root@ol7ora19r2][/root]$ oracleasm
listdisks
ACFS1_1
CRS1
CRS2
CRS3
DATA1_1
FRA1_1
[root@ol7ora19r2][/root]$ ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0
Jun 3 17:25 /dev/sda
brw-rw----. 1 root disk 8, 1 Jun 3
17:25 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jun 3 17:25
/dev/sda2
brw-rw----. 1 root disk 8, 16 Jun 3 17:33
/dev/sdb
brw-rw----. 1 root disk 8, 17 Jun 3 17:33
/dev/sdb1
brw-rw----. 1 root disk 8, 32 Jun 3 17:33
/dev/sdc
brw-rw----. 1 root disk 8, 33 Jun 3 17:33
/dev/sdc1
brw-rw----. 1 root disk 8, 48 Jun 3 17:33
/dev/sdd
brw-rw----. 1 root disk 8, 49 Jun 3 17:33
/dev/sdd1
brw-rw----. 1 root disk 8, 64 Jun 3 17:33
/dev/sde
brw-rw----. 1 root disk 8, 65 Jun 3 17:33
/dev/sde1
brw-rw----. 1 root disk 8, 80 Jun 3 17:33
/dev/sdf
brw-rw----. 1 root disk 8, 81 Jun 3 17:33
/dev/sdf1
brw-rw----. 1 root disk 8, 96 Jun 3 17:33
/dev/sdg
brw-rw----. 1 root disk 8, 97 Jun 3 17:33
/dev/sdg1
2-2. udev 사용 시
--RAC
1번
[root@ol7ora19r1][/dev]$ /usr/lib/udev/scsi_id --whitelisted
--replace-whitespace --device=/dev/sdg
1ATA_VBOX_HARDDISK_VBcb172146-14b52cda
[root@ol7ora19r1][/dev]$ udevadm info --query=all --name=/dev/sdg | grep
ID_PATH | grep -v ID_PATH_TAG
E:
ID_PATH=pci-0000:00:0d.0-ata-8.0
[root@ol7ora19r1][/dev]$ vi
/etc/udev/rules.d/99-oracle-asmdevices.rules
[root@ol7ora19r1][/dev]$ cat
/etc/udev/rules.d/99-oracle-asmdevices.rules | grep sdg
KERNEL=="sdg",
ENV{ID_PATH}=="pci-0000:00:0d.0-ata-8.0", SYMLINK+="oracleasm/disks/ACFS1_1",
OWNER="grid", GROUP="asmadmin", MODE="0660"
[root@ol7ora19r1][/dev]$ udevadm control
--reload-rules
[root@ol7ora19r1][/dev]$ udevadm trigger
[root@ol7ora19r1][/dev]$ ls -l /dev/oracleasm/disks | grep
sdg
lrwxrwxrwx. 1 root root 9 Jun 1 19:16 ACFS1_1 ->
../../sdg
--RAC 2번
[root@ol7ora19r2][/root]$ /usr/lib/udev/scsi_id --whitelisted
--replace-whitespace --device=/dev/sdg
1ATA_VBOX_HARDDISK_VBcb172146-14b52cda
[root@ol7ora19r2][/root]$ udevadm info
--query=all --name=/dev/sdg | grep ID_PATH | grep -v
ID_PATH_TAG
E: ID_PATH=pci-0000:00:0d.0-ata-8.0
[root@ol7ora19r2][/root]$ vi
/etc/udev/rules.d/99-oracle-asmdevices.rules
[root@ol7ora19r2][/root]$ cat
/etc/udev/rules.d/99-oracle-asmdevices.rules | grep sdg
KERNEL=="sdg",
ENV{ID_PATH}=="pci-0000:00:0d.0-ata-8.0", SYMLINK+="oracleasm/disks/ACFS1_1",
OWNER="grid", GROUP="asmadmin",
MODE="0660"
[root@ol7ora19r2][/root]$ udevadm control
--reload-rules
[root@ol7ora19r2][/root]$ udevadm
trigger
[root@ol7ora19r2][/root]$ ls -l /dev/oracleasm/disks | grep
sdg
lrwxrwxrwx. 1 root root 9
Jun 1 19:21 ACFS1_1 -> ../../sdg
--RAC 1번
[root@ol7ora19r1][/dev]$ oracleasm
listdisks
ACFS1_1
CRS1
CRS2
CRS3
DATA1_1
FRA1_1
--RAC 2번
[root@ol7ora19r2][/root]$ oracleasm
listdisks
ACFS1_1
CRS1
CRS2
CRS3
DATA1_1
FRA1_1
3. ASM 디스크 추가
[+ASM1:grid@rdb01d][/home/grid]$ echo
ORACLE_SID=+ASM1
ORACLE_SID=+ASM1
[+ASM1:grid@rdb01d][/home/grid]$ rlwrap
sqlplus "/as sysasm"
SQL*Plus: Release 12.2.0.1.0 Production on Sun Jun 1 19:35:11 2025
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release
12.2.0.1.0 - 64bit Production
--drop
DISKGROUP ACFS1;
[2025-06-04:16:37:13][ol7ora19r1]<SYS@+ASM1> CREATE DISKGROUP ACFS1 EXTERNAL REDUNDANCY DISK
'/dev/oracleasm/disks/ACFS1_1' SIZE 40959M ATTRIBUTE 'compatible.asm' =
'19.0', 'compatible.rdbms'='19.0', 'compatible.advm' =
'19.0';
Diskgroup created.
--> 생성한 ASM 디스크그룹 및 ASM 디스크의 정보 확인
SET LINE
200
COL DISK_GROUP FOR A10
COL LABEL FOR A10
COL STATE FOR
A10
SELECT A.NAME AS DISK_GROUP, D.NAME "LABEL", A.STATE
FROM
V$ASM_DISK D
, V$ASM_DISKGROUP A
WHERE
D.GROUP_NUMBER=A.GROUP_NUMBER
and A.NAME =
'ACFS1'
ORDER BY 2
;
col COMPATIBILITY form
a10
col DATABASE_COMPATIBILITY form a30
col NAME form a20
select
group_number, name, compatibility, database_compatibility
from
v$asm_diskgroup
where NAME = 'ACFS1';
[+ASM1:grid@ol7ora19r1][/home/grid]$ asmcmd
ASMCMD [+] > lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 1048576 40959 40895 0 40895 0 N ACFS1/
MOUNTED NORMAL N 512 512 4096 4194304 6132 5096 2044 1526 0 Y CRS/
MOUNTED EXTERN N 512 512 4096 4194304 131068 126460 0 126460 0 N DATA1/
MOUNTED EXTERN N 512 512 4096 4194304 131068 128952 0 128952 0 N FRA1/
--RAC 2번에도 mount
[+ASM2:grid@ol7ora19r2][/home/grid]$
asmcmd
ASMCMD [+] > lsdg
State
Type Rebal Sector Logical_Sector
Block AU Total_MB Free_MB
Req_mir_free_MB Usable_file_MB Offline_disks
Voting_files Name
MOUNTED NORMAL
N
512
512 4096 4194304
6132
5096
2044
1526
0
Y CRS/
MOUNTED EXTERN
N
512
512 4096 4194304 131068
126460
0
126460
0
N DATA1/
MOUNTED EXTERN
N
512
512 4096 4194304 131068
128952
0
128952
0
N FRA1/
ASMCMD [+]
> mount ACFS1
ASMCMD [+] > lsdg
State
Type Rebal Sector Logical_Sector
Block AU Total_MB Free_MB
Req_mir_free_MB Usable_file_MB Offline_disks
Voting_files Name
MOUNTED EXTERN
N
512
512 4096 1048576
40959
40851
0
40851
0
N ACFS1/
MOUNTED NORMAL
N
512
512 4096 4194304
6132
5096
2044
1526
0
Y CRS/
MOUNTED EXTERN
N
512
512 4096 4194304 131068
126460
0
126460
0
N DATA1/
MOUNTED EXTERN
N
512
512 4096 4194304 131068
128952
0
128952
0
N FRA1/
[+ASM2:grid@ol7ora19r2][/home/grid]$ crsctl status resource ora.ACFS1.dg
-t
--------------------------------------------------------------------------------
Name
Target State
Server
State
details
--------------------------------------------------------------------------------
Cluster
Resources
--------------------------------------------------------------------------------
ora.ACFS1.dg(ora.asmgroup)
1 ONLINE
ONLINE
ol7ora19r1
STABLE
2 ONLINE
ONLINE
ol7ora19r2
STABLE
--------------------------------------------------------------------------------
4. ACFS
볼륨 추가
ASMCMD [+] > volcreate -G ACFS1 -s 10G
ACFS1_VOL1
ASMCMD [+] > volinfo --all
Diskgroup Name:
ACFS1
Volume Name:
ACFS1_VOL1
Volume Device:
/dev/asm/acfs1_vol1-440
State: ENABLED
Size (MB):
10240
Resize Unit (MB):
64
Redundancy:
UNPROT
Stripe Columns:
8
Stripe Width (K):
1024
Usage:
Mountpath:
[+ASM1:grid@ol7ora19r1][/home/grid]$ crsctl stat res
ora.ACFS1.ACFS1_VOL1.advm -t
--------------------------------------------------------------------------------
Name
Target State
Server
State
details
--------------------------------------------------------------------------------
Local
Resources
--------------------------------------------------------------------------------
ora.ACFS1.ACFS1_VOL1.advm
ONLINE ONLINE
ol7ora19r1
STABLE
ONLINE ONLINE
ol7ora19r2
STABLE
--------------------------------------------------------------------------------
--RAC1번
[root@ol7ora19r1][/]$ mkdir /acfs1_vol1
[root@ol7ora19r1][/]$
chown oracle:oinstall /acfs1_vol1
--RAC2번
[root@ol7ora19r2][/root]$ mkdir /acfs1_vol1
[root@ol7ora19r2][/root]$
chown oracle:oinstall /acfs1_vol1
--RAC1번에서만
[+ASM1:grid@ol7ora19r1][/]$ mkfs -t acfs /dev/asm/acfs1_vol1-440
mkfs.acfs:
version
= 19.0.0.0.0
mkfs.acfs: on-disk
version =
46.0
mkfs.acfs:
volume
= /dev/asm/acfs1_vol1-440
mkfs.acfs: volume
size
= 10737418240 ( 10.00 GB )
mkfs.acfs: Format
complete.
[root@ol7ora19r1][/root]$ srvctl add filesystem -d /dev/asm/acfs1_vol1-440 -m /acfs1_vol1 -u oracle -fstype ACFS
-autostart ALWAYS
[root@ol7ora19r1][/root]$ crsctl stat res
ora.acfs1.acfs1_vol1.acfs -t
--------------------------------------------------------------------------------
Name
Target State
Server
State details
--------------------------------------------------------------------------------
Local
Resources
--------------------------------------------------------------------------------
ora.acfs1.acfs1_vol1.acfs
OFFLINE OFFLINE
ol7ora19r1
STABLE
OFFLINE OFFLINE
ol7ora19r2
STABLE
--------------------------------------------------------------------------------
[root@ol7ora19r1][/root]$ srvctl start filesystem -d /dev/asm/acfs1_vol1-440
[root@ol7ora19r1][/root]$ crsctl stat res ora.acfs1.acfs1_vol1.acfs
-t
--------------------------------------------------------------------------------
Name
Target State
Server
State
details
--------------------------------------------------------------------------------
Local
Resources
--------------------------------------------------------------------------------
ora.acfs1.acfs1_vol1.acfs
ONLINE ONLINE
ol7ora19r1
mounted on
/acfs1_vo
l1,STABLE
ONLINE ONLINE
ol7ora19r2
mounted on
/acfs1_vo
l1,STABLE
--------------------------------------------------------------------------------
[root@ol7ora19r1][/root]$ srvctl config
filesystem
Volume device: /dev/asm/acfs1_vol1-440
Diskgroup name: acfs1
Volume
name: acfs1_vol1
Canonical volume device:
/dev/asm/acfs1_vol1-440
Accelerator volume devices:
Mountpoint path:
/acfs1_vol1
Mount point owner: oracle
Mount point group: oinstall
Mount
permissions: owner:oracle:rwx,pgrp:oinstall:r-x,other::r-x
Mount users:
grid
Type: ACFS
Mount options:
Description:
ACFS file system is
enabled
ACFS file system is individually enabled on nodes:
ACFS file
system is individually disabled on nodes:
[root@ol7ora19r1][/root]$ df -h |grep
acfs
/dev/asm/acfs1_vol1-440 10G 570M 9.5G
6% /acfs1_vol1
[root@ol7ora19r2][/root]$ df -h |grep
acfs
/dev/asm/acfs1_vol1-440 10G 570M 9.5G
6% /acfs1_vol1
--ACFS 영역에 신규 파일 생성
[ORA19R1:oracle@ol7ora19r1][/acfs1_vol1]$ touch
1.txt
--양쪽 노드에서 파일이 공유됨을 확인
--RAC1번
[ORA19R1:oracle@ol7ora19r1][/acfs1_vol1]$ ls -l
1.txt
-rw-r--r--. 1 oracle oinstall 0 Jun 4 17:21
1.txt
--RAC2번
[ORA19R2:oracle@ol7ora19r2][/home/oracle]$ cd
/acfs1_vol1/
[ORA19R2:oracle@ol7ora19r2][/acfs1_vol1]$ ls
-l
total 64
-rw-r--r--. 1 oracle oinstall 0
Jun 4 17:21 1.txt
drwx------. 2 root
root 65536 Jun 4 17:17
lost+found