RHEL9.8 single asm udev

현스·2025년 11월 2일

설치 정리

목록 보기
17/20

RHEL9.6 에 19.23 버전으로 standalone 서버 구축 테스트

#################################
OS : Redhat 9.6
DB : Oracle Database 19.3.0.0.0
#################################

192.168.56.121

hostname : testdb
SID : UGJHS
v$instance name : UGJHS
patch : 19.23

설치파일은 아래 파일을 이용함

GRID : LINUX.X64_193000_grid_home.zip
DB : LINUX.X64_193000_db_home.zip
OPatch : p6880880_190000_Linux-x86-64.zip
GI RU 19.23 → 36233126(GI 홈)
DB RU 19.23 → 36233263(DB 홈)

유저 그리드랑 오라클 나누고.

asm : udev 로 oracleasm 구성

--## GRID BASE,HOME 경로
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/19.0.0.0/grid

--## ORACLE BASE,HOME 경로
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1

########################
운영체제 버전 확인(root)
########################

uname -a
cat /etc/system-release

######################
디스크 공간 확인(root)
######################

#오라클 엔진, 데이터 파일등이 위치할 만한 공간이 있는지 파악
df -h

##########################
메모리 및 SWAP 체크(root)
##########################

#/proc/meminfo에서 메모리와 SWAP 값을 가져와서 보여줌
free -h

##옵션 정보
-h : 사람이 읽기 편한 단위로 표시
-b : byte 단위로 표시
-k : kbyte 단위로 표시
-m : mbyte 단위로 표시
-g : gbyte 단위로 표시

#####################
hosts 파일 설정(root)
#####################

#해당 ip와 host를 참조하기 위한 설정
cat /etc/hosts
vi /etc/hosts

<서버접근 ip>

192.168.56.121 testdb

#############################
그리드, 오라클 유저 및 그룹 생성(root)
#############################

#고객에게 그리드와 오라클 사용 유저명을 무엇으로 사용할 건지 확인
#유저 및 그룹 생성 전 해당 id와 이름을 사용하고 있는지 조회
#이미 사용 중이라면 고객에게 확인 후 다른 이름, 다른 id로 변경하여 생성

grep -E "dba|1001" /etc/group
grep -E "grid|oracle|1001|1002" /etc/passwd

groupadd -g 1001 dba
useradd -g dba -u 1002 grid
useradd -g dba -u 1001 oracle
id grid
id oracle
passwd grid
passwd oracle

##########################
방화벽 해제 체크(root) optional
##########################

systemctl status firewalld

systemctl stop firewalld

systemctl disable firewalld

###################
SELinux 설정(root)
###################

프로세스가 비정상적으로 동작할 수 있기에 permissive 혹은 disabled로 설정
vi /etc/sysconfig/selinux

SELINUX=disabled

getenforce
disabled 가 뜨도록 reboot 후 다시 확인.

##########################
커널 파라미터 값 설정(root)
##########################

vi /etc/sysctl.conf

#sysctl.conf 파일에 해당 내용 작성 후 저장
#kernel.shmmax와 kernel.shmall 값의 경우 서버 사양에 따라 변경
kernel.sem = 250 32000 100 128
kernel.shmmax=4294967296
kernel.shmmni=4096
kernel.shmall=2097152
fs.file-max=6815744
fs.aio-max-nr=1048576
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576

#위의 커널 파라미터 값 설정 후 적용하기 위한 명령어
/sbin/sysctl -p
/sbin/sysctl -a

#커널 파라미터 값 단위는 바이트
#getconf PAGE_SIZE << page size 구하는 방법
#kernel.shmmax: 1/2 of Physical Size or more
#kernel.shmall: Physical Size/PAGE_SIZE

#######################
유저 제한 값 설정(root)
#######################

vi /etc/security/limits.conf

#limits.conf 파일에 해당 내용 작성 후 저장
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768

#위의 oracle과 grid는 유저명으로 유저명에 따라 변경

#########################
local repository(root)
#########################

#해당 부분은 OS 엔지니어에게 요청
#Local Repository 구성 요청 혹은 yum 사용 가능하게 만들어달라고 요청

#테스트 시 해당 방법으로 Local Repository 구성 #

#리눅스 CD 마운트
mount /dev/sr0 /media

#기존에 존재하는 repo 파일을 다른 경로로 백업
cd /etc/yum.repos.d
ls
mkdir back
mv *.repo back

#새로운 repo 파일을 열어서
vi local.repo

#local.repo 파일에 해당 내용 작성

#rhel : 리포형성 (node 1,2 모두)

테스트 시 해당 방법으로 Local Repository 구성
리눅스 CD 마운트

root> mount /dev/sr0 /media

기존에 존재하는 repo 파일을 다른 경로로 백업
root> cd /etc/yum.repos.d
root> mkdir back
root> mv *.repo back

vi local.repo

[AppStream]
name=localRepository
baseurl=file:///media/AppStream
enabled=1
gpgcheck=0

[BaseOS]
name=localRepository
baseurl=file:///media/BaseOS
enabled=1
gpgcheck=0


##################
패키지 설치(root)
##################

#필수 패키지 다운

dnf update -y

dnf install device-mapper* -y
dnf install -y bc
dnf install -y binutils
dnf install -y compat-libcap1
dnf install -y compat-libstdc++-33
dnf install -y elfutils-libelf
dnf install -y elfutils-libelf-devel
dnf install -y fontconfig-devel
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libaio-devel
dnf install -y libXrender
dnf install -y libXrender-devel
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXtst
dnf install -y libgcc
dnf install -y libstdc++
dnf install -y libstdc++-devel
dnf install -y libxcb
dnf install -y make
dnf install -y policycoreutils
dnf install -y policycoreutils-python
dnf install -y smartmontools
dnf install -y sysstat
dnf install -y libnsl
dnf install -y libnsl.i686
dnf install -y libnsl2
dnf install -y libnsl2.i686
dnf install -y gcc
dnf install -y unixODBC
dnf install -y nfs-utils


단일 인스턴스에서 ASM을 쓰려면 추가 디스크가 꼭 필요합니다.
지금은 sda(부팅 디스크)만 있으니 가상 디스크를 1~2개 추가하세요.
디스크 추가는 호스트(윈도우) 쪽에서 VirtualBox에 붙이는 작업

VirtualBox GUI(가장 쉬움)

VM 전원 끄기 → VM 선택 → 설정(Settings).
저장소(Storage) → 컨트롤러(SATA/SCSI/SAS) 선택 → 하드 디스크 추가 아이콘(+) → 새 디스크 만들기(Create new disk).
형식: VDI/VMDK 아무거나 가능(VDI 무난), 크기: 예) DATA=30GB, RECO=20GB.
단일 인스턴스면 공유 디스크 설정 필요 없음(RAC가 아니라면 shareable 불필요).
완료 후 확인, VM 부팅.

[root@testdb ~]# lsblk -d -o NAME,SIZE,TYPE,MODEL
NAME SIZE TYPE MODEL
sda 80G disk VBOX HARDDISK
sdb 30G disk VBOX HARDDISK
sdc 20G disk VBOX HARDDISK

#SCSI 호스트 전체 스캔
for H in /sys/class/scsi_host/host*; do echo "- - -" | sudo tee $H/scan; done

lsblk # sdb, sdc 등장 확인

[root@testdb ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 1.9G 0 part /boot
└─sda2 8:2 0 78.1G 0 part
├─rhel-root 253:0 0 70.7G 0 lvm /
└─rhel-swap 253:1 0 7.5G 0 lvm [SWAP]
sdb 8:16 0 30G 0 disk
sdc 8:32 0 20G 0 disk

by-id 기반 udev 규칙 작성

ls -l /dev/disk/by-id/ # 실제 문자열 확인 (…-part1 링크 사용)
vi /etc/udev/rules.d/99-asm.rules

#DATA (/dev/sdb 전체)

KERNEL=="sd*", ENV{ID_SERIAL}=="VBOX_HARDDISK_VB2c7d9353-ae880b28", SYMLINK+="asm/data01", OWNER="oracle", GROUP="dba", MODE="0660"

#RECO (/dev/sdc 전체)
KERNEL=="sd*", ENV{ID_SERIAL}=="VBOX_HARDDISK_VB58df4d26-390ace0d", SYMLINK+="asm/reco01", OWNER="oracle", GROUP="dba", MODE="0660"

OWNER="oracle", GROUP="asmadmin" <<< 확인

===== DATA (2TB x13) =====

KERNEL=="sd", ENV{ID_SERIAL}=="", SYMLINK+="asm/data01", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd
", ENV{ID_SERIAL}=="", SYMLINK+="asm/data02", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd", ENV{ID_SERIAL}=="", SYMLINK+="asm/data03", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd
", ENV{ID_SERIAL}=="", SYMLINK+="asm/data04", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd", ENV{ID_SERIAL}=="", SYMLINK+="asm/data05", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd
", ENV{ID_SERIAL}=="", SYMLINK+="asm/data06", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd", ENV{ID_SERIAL}=="", SYMLINK+="asm/data07", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd
", ENV{ID_SERIAL}=="", SYMLINK+="asm/data08", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd", ENV{ID_SERIAL}=="", SYMLINK+="asm/data09", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd
", ENV{ID_SERIAL}=="", SYMLINK+="asm/data10", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd", ENV{ID_SERIAL}=="", SYMLINK+="asm/data11", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd
", ENV{ID_SERIAL}=="", SYMLINK+="asm/data12", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", ENV{ID_SERIAL}=="", SYMLINK+="asm/data13", OWNER="oracle", GROUP="asmadmin", MODE="0660"

===== RECO (2TB x2) =====

KERNEL=="sd", ENV{ID_SERIAL}=="", SYMLINK+="asm/reco01", OWNER="oracle", GROUP="asmadmin", MODE="0660"
KERNEL=="sd
", ENV{ID_SERIAL}=="", SYMLINK+="asm/reco02", OWNER="oracle", GROUP="asmadmin", MODE="0660"

적용 검증
udevadm control --reload-rules
udevadm trigger --type=devices --action=change
ls -l /dev/asm

ls -l /dev/asm # data01, reco01 링크와 권한 oracle:asmadmin 0660 확인

====4) ASM에서 디스크그룹 생성 =============나중에======
-- ASM 인스턴스에서
SQL> SELECT path, header_status FROM v$asm_disk;

SQL> CREATE DISKGROUP DATA EXTERNAL REDUNDANCY
DISK '/dev/asm/data01'
ATTRIBUTE 'compatible.asm'='19.0','compatible.rdbms'='11.2';

SQL> CREATE DISKGROUP RECO EXTERNAL REDUNDANCY
DISK '/dev/asm/reco01'
ATTRIBUTE 'compatible.asm'='19.0','compatible.rdbms'='11.2';
=============================================

[root@testdb dev]# ls -l /dev/sdb /dev/sdc
brw-rw---- 1 oracle dba 8, 16 Nov 2 13:39 /dev/sdb
brw-rw---- 1 oracle dba 8, 32 Nov 2 13:39 /dev/sdc

#확인
lsblk
lvdisplay

#####################################
############환경변수 설정###############
#####################################


root bash_profile 설정(rac1)

vi ~/.bash_profile

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19c/grid
export PATH=PATH:PATH:ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LANG=C

. ~/.bash_profile


grid 유저 bash_profile 설정(rac1)

vi ~/.bash_profile

export PS1="[\u@\h \W]$ "
export EDITOR=vi
export ORACLE_SID=+ASM
export GRID_BASE=/u01/app/grid
export GRID_HOME=/u01/app/19c/grid
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.0.0.0/grid
export LD_LIBRARY_PATH=ORACLEHOME/libexportPATH=/usr/sbin:/usr/bin:ORACLE_HOME/lib export PATH=/usr/sbin:/usr/bin:ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LANG=C

. ~/.bash_profile


오라클 유저 bash_profile 설정

vi ~/.bash_profile

export PS1="[\u@\h \W]$ "
export EDITOR=vi
export ORACLE_TERM=xterm
export ORACLE_SID=UGJHS
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
export GRID_HOME=/u01/app/19c/grid
export PATH=/bin:/sbin:/usr/sbin:/usr/bin:ORACLEHOME/bin:ORACLE_HOME/bin:ORACLE_HOME/OPatch:GRIDHOME/binexportLDLIBRARYPATH=GRID_HOME/bin export LD_LIBRARY_PATH=ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=ORACLEHOME/jlib:ORACLE_HOME/jlib:ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LANG=C
alias ss='sqlplus "/as sysdba"'
alias bdump='cd /u01/app/oracle/diag/rdbms/ugjhs/UGJHS/trace'

. ~/.bash_profile


#디렉토리 생성
[root]

mkdir -p /u01/oracd
chown oracle:dba /u01/oracd
chmod 775 /u01/oracd

[oracle]
su - oracle
mkdir -pv ORACLEHOME[oracle@jhs1 ]ORACLE_HOME [oracle@jhs1 ~] mkdir -pv $ORACLE_HOME
mkdir: created directory '/u01/app'
mkdir: created directory '/u01/app/oracle'
mkdir: created directory '/u01/app/oracle/product'
mkdir: created directory '/u01/app/oracle/product/19c'
mkdir: created directory '/u01/app/oracle/product/19c/db_home'
d

-- 권한 에러 나면 그냥
mkdir -p /u01/app/oracle/product/19c/db_home

exit
chmod 775 /u01/app

[grid]
su - grid
mkdir -pv $ORACLE_BASE
mkdir -pv $ORACLE_HOME

exit

[root]
chown -R grid:dba /u01
chown -R oracle:dba /u01/app/oracle
chown -R grid:dba /u01/oracd
chmod -R 775 /u01/oracd/

chown -R oracle:dba /u01/oracd

vi /etc/fstab

#아래의 한 줄을 추가한다.
tmpfs /dev/shm tmpfs size=7g 0 0

[root@rac1 ~]# mount -o remount /dev/shm
[root@rac1 ~]# df -h /dev/shm
remount하여 적용시킨다.

언제 특히 중요?

DB에서 AMM(= MEMORY_TARGET) 을 쓰는 경우
→ /dev/shm ≥ MEMORY_MAX_TARGET 권장

-Grid Infrastructure/ASM 등 Oracle 프로세스가 공유 메모리 세그먼트를 많이 잡는 환경
-컨테이너·VM에서 기본 /dev/shm가 매우 작은 경우

점검체크

mount | grep /dev/shm # 마운트 옵션 확인(size=7g 등)
df -h /dev/shm # 실제 크기 확인
ipcs -m | head # 공유 메모리 세그먼트 존재 여부(참고)

Oracle 구동 안정성 확보를 위해 /dev/shm 용량을 요구치로 늘리고, remount로 즉시 적용하는 표준 절차


#########################
디렉토리 생성(root)
#########################

기존에 ora로 시작하는 디렉토리가 있는지 확인

ls -arlt /ora*

그리드가 설치될 경로 생성

mkdir -p /oracle/app/grid
mkdir -p /oracle/app/19c/grid

오라클 엔진이 설치될 경로 생성

mkdir -p /oracle/app/oracle/product/19c/db_home

오라클 설치 및 패치 파일을 업로드할 경로 생성

mkdir /oracd

위의 경로들은 절대적인 것은 아니며, 따로 고객의 요청이 있을 경우 고객 요청에 따라 생성

#############################
설치 파일 및 패치 파일 업로드(root)
#############################

설치 및 패치 파일 권한 확인 필수

파일이 있는 경로로 이동

cd /u01/oracd

설치 및 패치 파일이 root로 되어있을 경우

설치 파일 디렉토리의 소유자와 소유그룹 변경

ls -al
chown -R grid:dba /u01/oracd

소유자가 변경되었는지 확인

ls -al

설치 이후 설치 파일 보존 여부 담당자와 의논

#######################
root bash_profile 설정(root)
#######################

오라클을 사용하는데 있어 필요한 변수값들을 bash_profile에 설정

vi ~/.bash_profile

export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/19c/grid
export PATH=PATH:PATH:ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export ORACLE_SID=+ASM
export LANG=C

bash_profile 수정 후 적용하기 위한 명령어

. ~/.bash_profile

환경 변수

ORACLE_BASE : 그리드 베이스 경로
ORACLE_HOME : 그리드 홈 경로

#################################
grid 유저 bash_profile 설정(grid)
#################################

오라클을 사용하는데 있어 필요한 변수값들을 bash_profile에 설정

vi ~/.bash_profile

export PS1="[\u@\h \W]$ "
umask 022
export EDITOR=vi
export ORACLE_SID=+ASM
export GRID_BASE=/oracle/app/grid
export GRID_HOME=/oracle/app/19c/grid
export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/19c/grid
export LD_LIBRARY_PATH=ORACLEHOME/libexportPATH=/usr/sbin:/usr/bin:ORACLE_HOME/lib export PATH=/usr/sbin:/usr/bin:ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LANG=C

bash_profile 수정 후 적용하기 위한 명령어

. ~/.bash_profile

환경 변수

ORACLE_BASE : 그리드 베이스 경로
ORACLE_HOME : 그리드 홈 경로

#################################
오라클 유저 bash_profile 설정(oracle)
#################################

오라클을 사용하는데 있어 필요한 변수값들을 bash_profile에 설정

vi ~/.bash_profile

export PS1="[\u@\h \W]$ "
umask 022
export EDITOR=vi
export ORACLE_TERM=xterm
export ORACLE_SID=<<<<<<<<<<<<<<<<<<<<<<<<<<<<
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=ORACLEBASE/product/19c/dbhomeexportGRIDHOME=/oracle/app/19c/gridexportPATH=/bin:/sbin:/usr/sbin:/usr/bin:ORACLE_BASE/product/19c/db_home export GRID_HOME=/oracle/app/19c/grid export PATH=/bin:/sbin:/usr/sbin:/usr/bin:ORACLE_HOME/bin:ORACLEHOME/OPatch:ORACLE_HOME/OPatch:GRID_HOME/bin
export LD_LIBRARY_PATH=ORACLEHOME/lib:/lib:/usr/libexportCLASSPATH=ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LANG=C
alias ss='sqlplus "/as sysdba"'

bash_profile 수정 후 적용하기 위한 명령어

. ~/.bash_profile

환경 변수

PS1 : 쉘프롬프트
umask : 파일이나 디렉터리 생성 시 초기 접근권한 설정
EDITOR : 기본 텍스트 에디터 지정
ORACLE_TERM : 오라클 터미널 타입 지정
ORACLE_SID : 오라클 데이터베이스 이름
ORACLE_BASE : 오라클 베이스 경로
ORACLE_HOME : 오라클 홈 경로
GRID_HOME : 그리드 홈 경로
TNS_ADMIN : 오라클의 네트워크 관련 파일들이 저장된 디렉토리
PATH : 오라클 실행 파일을 찾을 경로
LD_LIBRARY_PATH : 오라클 라이브러리 경로
CLASSPATH : 오라클 class 파일들이 저장된 디렉토리
NLS_LANG : 오라클에서 사용할 언어(캐릭터 셋)
LANG : 리눅스에서 사용할 언어

###########################
그리드 설치 파일 소유자 변경(root)
###########################

설치 파일이 있는 디렉터리를 oracle 유저 소유로 변경

chown -R grid:dba /u01/oracd

###########################
grid 설치 파일 압축해제(grid)
###########################

grid 유저로 하는 것.

설치 파일이 있는 경로로 이동

cd /u01/oracd

ls -alrt
-rwxrwxr-x 1 oracle dba 2889184573 Nov 2 14:05 LINUX.X64_193000_grid_home.zip
실행권한과 소유자 등등 확인한다

unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOME

옵션

-d : 해당 경로에 압축해제

압축해제 확인

cd $ORACLE_HOME
ls -al

######################
cvuqdisk rpm 설치 (root)
######################

grid 설치 시 필요한 패키지 설치

export CVUQDISK_GRP=dba
cd $ORACLE_HOME/cv/rpm
rpm -ivh cvuqdisk-*.rpm

/u01/app/19c/grid/cv/admin
vi cvu_config

Fallback to this distribution id

CV_ASSUME_DISTID=OEL5

주석 처리 되어있는거 주석 없앰

#############
grid 설치 (grid)
#############

=== 설치 전 패치 하려면

###PATCH###
OPatch 백업

#OPatch 버전 확인 , 백업 , 교체 node 1 only
su - grid
cd $ORACLE_HOME
opatch version

[grid@testdb grid]$ opatch version
OPatch Version: 12.2.0.1.17

OPatch succeeded.

mv OPatch OPatch.bak.오늘날짜

cd /u01/oracd
ls -al
grid:dba
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME

$ cd ORACLEHOMEORACLE_HOME opatch version

[grid@testdb grid]$ opatch version
OPatch Version: 12.2.0.1.47

OPatch succeeded.

--grid 유저에서--
ls -al
권한 확인
chown grid:dba p36233126_190000_Linux-x86-64.zip

mkdir -p gi_patch

unzip p36233126_190000_Linux-x86-64.zip -d gi_patch

-- 이따가 오라클 유저로도 쓸거라서 .. 그냥 분리했음

그리드 홈으로 이동

cd $ORACLE_HOME

현재 display를 띄울 ip 확인

who am i

[grid@testdb grid]$ who am i
root pts/0 Nov 2 12:39 (192.168.56.1)

#확인한 아이피를 DISPLAY 변수에 선언
export DISPLAY=

grid 설치 시작

./gridSetup.sh -applyRU /u01/oracd/gi_patch/36233126


##################
grid 설치 확인(grid)
##################

클러스터 리소스가 정상인지 확인

crsctl status res -t

[grid@testdb grid]$ crsctl status res -t

Name Target State Server State details

Local Resources

ora.DATA.dg
ONLINE ONLINE testdb STABLE
ora.LISTENER.lsnr
ONLINE ONLINE testdb STABLE
ora.asm
ONLINE ONLINE testdb Started,STABLE
ora.ons

           OFFLINE OFFLINE      testdb                   STABLE

Cluster Resources

ora.cssd
1 ONLINE ONLINE testdb STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd

  1        ONLINE  ONLINE       testdb                   STABLE

####################
디스크그룹 추가 작업(grid)
####################

grid 설치 시 생성한 디스크그룹은 데이터 디스크그룹 밖에 없으므로

아카이브 영역인 RECO 디스크그룹을 생성하기 위한 작업을 asmca를 통해 진행

asmca

#########################
oracleasm Diskgroup 확인(grid)
#########################

oracleasm diskgroup은 asmcmd에서 lsdg 명령어로 확인 가능

asmcmd lsdg
[grid@testdb ~]$ 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 4194304 30720 30616 0 30616 0 N DATA/
MOUNTED EXTERN N 512 512 4096 4194304 20480 20384 0 20384 0 N RECO/

-- Connected to an idle instance.
vi .bash_profile SID 확인할 것 ----

###########################
오라클 설치 파일 소유자 변경(root)
###########################

설치 파일이 있는 디렉터리를 oracle 유저 소유로 변경

chown -R oracle:dba /u01/oracd

###########################
오라클 설치 파일 압축해제(oracle)
###########################

설치 파일이 있는 경로로 이동 //루트 유저로

cd /u01/oracd

[root]# chown -R oracle:dba LINUX.X64_193000_db_home.zip
[root]# chown -R oracle:dba p6880880_190000_Linux-x86-64.zip

18c 이후부터는 압축해제 한 경로가 오라클 홈으로 자동 지정되기에 오라클 홈에 바로 압축해제를 함

오라클 유저로 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

옵션

-d : 해당 경로에 압축해제

압축해제 확인

cd $ORACLE_HOME
ls -al

======================================
OPatch 파일 최신 파일로 교체

$ cd $ORACLE_HOME
opatch version

OPatch Version: 12.2.0.1.17

OPatch succeeded.

mv OPatch OPatch.bk.251102

cd /u01/oracd
ls -al

--unzip
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME

opatch version

OPatch Version: 12.2.0.1.47 <<<<<<< 잘 됨.

OPatch succeeded.

--- patch 해야지

mkdir -p db_patch
ls -al
total 9212464
drwxr-xr-x 2 oracle dba 6 Nov 2 16:48 db_patch

unzip p36233126_190000_Linux-x86-64.zip -d db_patch

########################
오라클 엔진 설치(oracle)
########################

오라클 홈 경로로 이동

cd $ORACLE_HOME

DISPLAY 변수 선언

export DISPLAY=

오라클 엔진 설치 시작

cd $ORACLE_HOME

./runInstaller -applyRU /u01/oracd/db_patch/36233126

###########
DB 구성
###########

dbca

검증

lsnrctl stat

sqlplus / as sysdba

set pages 500
set lines 200
col file_name for a80
select file_name, tablespace_name, bytes/1024/1024 MB, autoextensible from dba_data_files;

col file_name for a60
col tablespace_name for a20
select file_name, tablespace_name, bytes/1024/1024 MB, autoextensible from dba_temp_files;

col name for a60
select name from v$controlfile;

show sga
show parameter pga
show parameter processes

col parameter for a30
col value for a20
select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

col member for a50
select a.group#, a.thread#, a.sequence#, b.member, a.bytes/1024/1024 MB, a.status, a.archived
from vloga,vlog a, vlogfile b
where a.group# = b.group#;

col comp_name for a50
col status for a10
select comp_name, status from dba_registry;

col description for a70
col status for a10
SELECT TO_CHAR(ACTION_TIME, 'YYYYMMDD HH24:MI:SS') AS ACTION_TIME
,ACTION
,STATUS
,DESCRIPTION
,PATCH_ID
FROM DBA_REGISTRY_SQLPATCH
ORDER BY ACTION_TIME;

archive log list;

alter system switch logfile;

##############
crs shutdown 절차
##############

리스너 중지

srvctl stop listener -listener <listener_name> -node <node_name>

DB 내리기

srvctl stop instance -d <db_name> -i <instance_name>

crsctl stop resource -all

crs 중지

crsctl stop has

###########
crs start 절차
###########

crs 시작

crsctl start has

crsctl start resource -all

DB 시작

srvctl start instance -d <db_name> -i <instance_name>

리스너 시작

srvctl start listener -listener <listener_name> -node <node_name>

extpt

profile
˗ˋˏ O R A C L E ˎˊ˗

0개의 댓글