🖥 Environment

Host OS: macOS Tahoe
Virtualization: UTM (Emulation 모드)
Architecture: x86_64 (Intel 64-bit)
Guest OS: Oracle Linux 8.9 
Database: Oracle Database 19c(19.3)
Access Tool: iTerm, Terminus

 

oracle linux 8.9 설치하기 https://oukr.tistory.com/55

 

[macOS] Oracle Linux 8.9 설치하기 (UTM x86_64 에뮬레이션)

OS: Apple Silicon가상화 도구: UTM설치 방식: EmulationISO: OracleLinux-R8-U9-x86_64-dvd.iso 이 포스팅은 Apple Silicon환경에서 인텔(x86_64)용 오라클 DB 설치를 위해 에뮬레이션 방식으로 리눅스를 구축하는 과정을

oukr.tistory.com

 

설치 순서

1   Oracle 19c 설치 파일 다운로드
2   VM으로 설치 파일 전송
3   SELinux / Firewall 비활성화
4   preinstall 패키지 설치
5   디렉토리 생성 / 권한 설정
6   oracle 환경변수 설정
7   설치 파일 압축 해제
8   runInstaller Silent 모드 (SW 설치)
9   리스너 생성
10  DBCA Silent 모드 (DB 생성)
11  설치 완료 확인
12  자동 시작 설정

1. Oracle 19c 설치 파일 다운로드 (Mac에서)

1-1. oracle 접속

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

 

Database Software Downloads

Whether you are a developer, a data scientist, a DBA, an educator, or just interested in databases, Oracle AI Database 26ai is the ideal way to get started. It provides native support for all modern data types, analytics, and the latest development paradig

www.oracle.com

 

1-2. 다운로드 선택

oracle 계정 필요. 로그인 후 다운로드 가능

Oracle Database 19c
→ Linux x86-64 선택
→ LINUX.X64_193000_db_home.zip 다운로드
   (파일 크기 약 3GB)

 


2. Mac → UTM VM으로 파일 전송 방법

다운로드 받은 zip파일을 별도의 GUI(Termius, MobaXterm 등) 툴을 쓰지 않고 전송할거다.

방법 1. UTM 공유 폴더

Mac에서 공유 폴더 설정

① UTM에서 대상 VM 우클릭
②  → 편집 클릭하여 설정창 열기
③ 좌측 메뉴 → 공유(Sharing) 선택
④ 찾아보기를 눌러 공유 디렉터리 경로 지정
   /Users/계정명/UTM_Share와 같이 전용 폴더를 생성하거나,
   오라클 설치용 ISO/Zip 파일이 모여 있는 폴더를 직접 지정
⑤ Save

 

VM 안에서 공유 폴더 마운트

# VM 터미널에서 root 계정 접속
mkdir /mnt/share
mount -t 9p -o trans=virtio share /mnt/share

 

자동 마운트 설정 (재부팅 후에도 유지)

# root 계정에서 진행
vi /etc/fstab

# /etc/fstab에 아래 내용 추가
share /mnt/share 9p trans=virtio,rw 0 0

 

공유 폴더 사용 방법

Mac Finder에서
→ 공유 디렉터리 폴더에 공유 파일 복사 

VM 터미널에서
→ /mnt/share/ 에서 공유디렉터리 파일 접근 가능

# 파일을 oracle home 디렉터리로 카피하기
[root@oracle19c UTM_Share]# cp LINUX.X64_193000_db_home.zip /home/oracle/

방법 2: SCP 명령어 (Mac 터미널에서 전송)

VM IP 확인 (VM 터미널에서)

#ip 확인
ip addr show
or
ifconfig
→ inet 192.168.x.x 확인

 

Mac 터미널에서 파일 전송

#iTerm에서 함
scp /경로/보낼파일 user@localhost:/가상머신내/대상경로/

# ex)
scp ~/Downloads/LINUX.X64_193000_db_home.zip oracle@192.168.x.x:/home/oracle/

3.  기본 OS 설정

Terminus로 접속해서 진행함.

3-1. SELinux 비활성화

# root에서 진행
setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' \
/etc/selinux/config

# 확인
getenforce
# 결과 : Permissive

 

3-2.  Firewall 비활성화

# root에서 진행
systemctl stop firewalld
systemctl disable firewalld

# 확인
systemctl status firewalld
# 결과 : inactive (dead)

 

3-3. OS 패키지 업데이트

sudo dnf update -y

 

3-4. hostname  설정

# root로
hostnamectl set-hostname ora19c

# 확인
hostname
# 결과 : ora19c

cat /etc/hostname
# 결과 : ora19c

 

3-5. /etc/hosts 설정

# root로
vi /etc/hosts

# 아래 내용 추가
192.168.x.x   ora19c  # ← 본인 VM IP	hostname

# 응답 오는지 확인
ping ora19c
#결과 : 64 bytes from ora19c (192.168.x.x): icmp_seq=1 ttl=64 time=4.46 ms

4. Oracle 사전 설치 패키지

sudo dnf install -y oracle-database-preinstall-19c

 

4-1. 설치 확인

id oracle

# 결과
uid=54321(oracle) gid=54321(oinstall) \
groups=54321(oinstall),54322(dba),54323(oper),\
54324(backupdba),54325(dgdba),54326(kmdba)

 

4-2. 그룹 수동으로 추가

preinstall 패키지는 기존 유저가 있을 경우 기존 유저를 건드리지 않는다.

# 이미 oracle 유저가 있는 경우
id oracle
#결과
uid=1000(oracle) gid=1000(oracle) groups=1000(oracle)

 

기존 oracle 유저가 있을 경우 그룹을 수동으로 추가해줘야 한다.

# oracle 유저에 그룹 추가
sudo usermod -g oinstall \
             -G dba,oper,backupdba,dgdba,kmdba,racdba \
             oracle
             
# 확인
id oracle
# 결과
uid=1000(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),\
54323(oper),54324(backupdba),54325(dgdba),54326(kmdba)

5. 디렉토리 생성 및 권한 설정

# Oracle Base 및 Home 디렉토리 생성
sudo mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
sudo mkdir -p /u01/app/oraInventory

# 소유권 설정
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01

# 확인
ls -la /u01/app/

6. oracle 유저 환경변수 설정

# oracle 유저로 전환
sudo su - oracle

# .bash_profile 편집
vi ~/.bash_profile

 

아래 내용 추가

# Oracle Environment
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcl
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

 

적용

source ~/.bash_profile

# 확인
echo $ORACLE_HOME
# 결과 : /u01/app/oracle/product/19.3.0/dbhome_1

env | grep ORA
# 결과 : ORACLE_SID=orcl
#	ORACLE_BASE=/u01/app/oracle
#	ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
#	ORA_INVENTORY=/u01/app/oraInventory

7. 설치 파일 ORACLE_HOME으로 이동 및 압축 해제

# oracle 유저로 실행

# oracle 설치 파일을 ORACLE_HOME으로 복사
cp LINUX.X64_193000_db_home.zip $ORACLE_HOME/

# ORACLE_HOME으로 이동
cd $ORACLE_HOME

# 압축 해제
unzip -q LINUX.X64_193000_db_home.zip

 

압축 해제 후 확인

# 확인
ls $ORACLE_HOME
# 결과 : bin  lib  install  runInstaller 등 보이면 정상

# 소유자, 그룹확인. 모든 파일이 oracle oinstall 이어야 함.
ls -al $ORALCE_HOME
# 결과 : drwxr-xr-x.  3 oracle oinstall 

# 소유자, 그룹이 oracle oinstall 아닐 경우 root에서 소유권 변경
chown -R oracle:oinstall /u01/app/oracle/product/19.3.0/dbhome_1

8. Oracle DB 19c 소프트웨어  Silent 모드 설치

8-1. runInstaller Silent 모드 (SW 설치)

# oracle 유저에서
cd $ORACLE_HOME

./runInstaller -silent -ignorePrereqFailure \
  oracle.install.option=INSTALL_DB_SWONLY \
  ORACLE_HOSTNAME=ora19c \
  UNIX_GROUP_NAME=oinstall \
  INVENTORY_LOCATION=/u01/app/oraInventory \
  ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 \
  ORACLE_BASE=/u01/app/oracle \
  oracle.install.db.InstallEdition=EE \
  oracle.install.db.OSDBA_GROUP=dba \
  oracle.install.db.OSOPER_GROUP=oper \
  oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
  oracle.install.db.OSDGDBA_GROUP=dgdba \
  oracle.install.db.OSKMDBA_GROUP=kmdba \
  oracle.install.db.OSRACDBA_GROUP=racdba \
  SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
  DECLINE_SECURITY_UPDATES=true

 

 8-2. 설치 진행 확인

# 설치 로그 확인 (별도 터미널에서)
tail -f /u01/app/oraInventory/logs/InstallActions*/installActions*.log

 

# 아래 메세지 뜨면 설치 성공
Successfully Setup Software.

 

8-3. root 스크립트 실행

설치 완료 후 root로 전환해서 스크립트 실행

# root로 전환
su - root

# 스크립트 실행 (순서대로)
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.3.0/dbhome_1/root.sh

9. 리스너 생성 (netca Silent)

# oracle 유저로 전환
su - oracle

netca -silent -responsefile \
$ORACLE_HOME/assistants/netca/netca.rsp

 

리스너 확인

lsnrctl status

10. DBCA Silent 모드 (DB 생성)

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbname orcl \
  -sid orcl \
  -responseFile NO_VALUE \
  -characterSet AL32UTF8 \
  -sysPassword Oracle123! \
  -systemPassword Oracle123! \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123! \
  -databaseType MULTIPURPOSE \
  -automaticMemoryManagement false \
  -totalMemory 2048 \
  -redoLogFileSize 50 \
  -emConfiguration NONE \
  -ignorePreReqs \
  -storageType FS \
  -datafileDestination /u01/app/oracle/oradata \
  -recoveryAreaDestination /u01/app/oracle/fast_recovery_area \
  -recoveryAreaSize 10240 \
  -enableArchive true

 

진행 상황 표시

Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
...
100% complete
Database creation complete.

11 . 설치 완료 확인

# oracle 유저에서
[oracle@ora19c ~]$ sqlplus / as sysdba

SQL> select instance_name, status from v$instance;
 INSTANCE_NAME    STATUS
 ---------------- ------------
 orcl             OPEN


SQL> select version from v$instance;
VERSION
-----------------
19.0.0.0.0

SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT 

SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO
         
SQL> exit;

# 리스너 확인
[oracle@ora19c ~]$ lsnrctl status

  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

12.  /etc/oratab 확인 및 자동시작 설정

# root에서
vi /etc/oratab

# orcl:/u01/app/oracle/product/19.3.0/dbhome_1:N
# N → Y 로 변경
orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y

'Oracle > Setup' 카테고리의 다른 글

[macOS] Colima + Docker로 Oracle XE 21c 설치하기  (0) 2025.12.14
🖥 Environment

- Hardware: Apple Silicon M3 pro
- OS: macOS Sonoma
- Shell: zsh
- Container: Colima + Docker
- Database: Oracle 21c XE
- DB Client: sqlplus

 

ARM 맥 로컬 설치를 사실상 지원하지 않아서 애플 실리콘 맥에는 Oracle DB 직접 설치가 어렵다.

때문에 Docker를 이용해서 Oracle을 설치하고 SQL Developer까지 연결하겠다.

1. Oracle XE 설치

① Docker Desktop 설치

아래 사이트에서 회원가입을 먼저 한 뒤에 with Apple Silicon을 선택해서 Doker.dmg 파일을 다운로드하고 설치.

https://www.docker.com/products/docker-desktop/

 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

 

 

 

설치 후 처음 Doker Desktop을 실행시키면 셋팅을 선택하라고 뜨는데 Use recommended settings을 선택.

 Use recommended settings는 Docker Desktop이 초기 설정값을 자동으로 잡아주는 옵션.


② Oracle Database XE 이미지 받고 Oracle 컨테이너 실행

터미널을 열고 아래 명령을 실행하여 Oracle XE 21c 이미지를 받기.

colima start

docker run -d \
  --platform linux/amd64 \
  --name oracle-xe \
  -p 1521:1521 \
  --shm-size=2g \
  -e ORACLE_PASSWORD=oracle \
  gvenzl/oracle-xe:21

 

 

만약 도커 데스크탑을 실행시키지 않고 다운받으려고 하면 안되니 실행 후에 다운받기.


③ DB 준비(READY) 확인

컨테이너 안에서 sqlplus로 접속 확인.

#
docker logs -f oracle-xe
# sysdba로 들어가고 싶으면
docker exec -it oracle-xe sqlplus / as sysdba

 


2. sqlplus 설치

터미널에서 sqlplus를 치고 접속하기 위해 SQL*Plus를 설치해준다.

brew tap InstantClientTap/instantclient
brew install instantclient-basic
brew install instantclient-sqlplus

 

설치 후 접속

sqlplus system/oracle@//localhost:1521/XEPDB1

3. SQL Developer 설치

① SQL Developer 설치

오라클 사이트에서 Mac ARM64 with JDK 17 included 파일을 다운로드 한다.

https://www.oracle.com/database/sqldeveloper/technologies/download/

 

Oracle SQL Developer Downloads

This archive. will work on a 32 or 64 bit Windows OS. The bit level of the JDK you install will determine if it runs as a 32 or 64 bit application. This download does not include the required Oracle Java JDK. You will need to install it if it's not already

www.oracle.com


4. Oracle 실행하기

터미널에서 실행

#colima 실행하기
$colima start

#colima 상태확인 -> colima is running
$colima status

#orcle 시작하기 -> oracle-xe
$docker start oracle-xe

#접속 확인 
$docker logs -f oracle-xe 

#########################
DATABASE IS READY TO USE!
#########################

#로컬로 접속
$sqlplus sys/oracle@localhost:1521/XEPDB1

 

+ Recent posts