DEV/Database

[Oracle][CentOS7] Oracle XE DB 21c 설치 및 설정

Bi3a 2024. 9. 19. 10:25

목차
반응형

 

oracle XE (Express Edition)은 비상업적 버전으로, Oracle에서 EE와 달리 무료로 제공되는 버전이다.
데이터베이스 크기 및 CPU, 메모리 사용량에 제한이 있다.

(12GB 데이터베이스 크기와 1 CPU, 2GB RAM로 스펙 제한, 따라서 개발용에 적합)

 

rpm 파일 다운 및 설치(root로 진행)

 

pre-install

bash
닫기
# curl로 rpm 파일 저장하기, -o로 output 파일명 지정
$ curl -o oracle-database-preinstall-21c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el7.x86_64.rpm
# yum으로 install
$ yum -y localinstall oracle-databasepreinstall-21c-1.0-1.el7.x86_64.rpm

 

install

다운로드 파일 링크(참고) : 여기

bash
닫기
# curl로 파일 저장
# -L 옵션 : Redirect (301, 302)가 응답될 경우, redirect 된 링크로 가서, 파일을 다운로드 받음
$ curl -L -o oracle-database-install-21c-1.0-1.el7.x86_64.rpm https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol7.x86_64.rpm
# yum으로 설치
$ yum -y localinstall oracle-database-install-21c-1.0-1.el7.x86_64.rpm

 

여기까지 완료되었다면 oracle 계정이 생성되었을 것이다.

bash
닫기
# oracle 계정 생성 확인
$ su - oracle
# 별도 oracle 계정 비밀번호 설정을 원하면 다시 root로 재접속해 oracle 계정 비밀번호 설정
# su root
# passwd oracle

 

 

configure로 db 셋업(root로 진행)

 

bash
닫기
# 설정 시작
$ /etc/init.d/oracle-xe-21c configure
# 이후 SYS, SYSTEM, PDBADMIN 계정의 비밀번호를 입력하고 생성한다.

 

configure 로 db 셋업

 

 

. bash_profile 환경변수 수정(oracle 계정으로 진행)

 

bash
닫기
# oracle 계정으로 전환
$ su - oracle
# vim 열어 수정
$ vi ~/.bash_profile
# 이하는 .bash_profile 내용
##########################
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
export ORACLE_SID=XE
export ORAENV_ASK=NO
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=.:$ORACLE_HOME/bin:$PATH

 

환경변수 적용, sqlplus를 통한 DB 접속

 

환경변수 적용

bash
닫기
# 상기 작업한 oracle 사용자 계정의 환경변수 적용
$ source ~/.bash_profile
# oracle 환경변수 적용
$ . oraenv

 

 

oracle db startup

bash
닫기
# sqlplus SYS 계정으로 실행
$ sqlplus SYS as SYSDBA
# 이후 비밀번호 입력

 

실행 결과

 

실행 결과

 

 

DB 활성화, PDB 전환 및 사용자 생성

 

DB 활성화

sql
닫기
# DB 상태 확인
SELECT STATUS FROM v$instance;
# mounted 시 DATABASE OPEN을 통해 활성화
ALTER DATABASE OPEN;

 

최초 접속 시 설정되어 있는 CDB에서 디폴트로 생성된 PDB로 전환

sql
닫기
# 존재하는 PDB를 확인
SELECT NAME FROM v$pdbs;
# CDB -> PDB로 세션 전환
ALTER SESSION SET CONTAINER=<PDB 명>

 

PDB(Plugged Database)와 CDB(Container Database)는 Oracle 12c 이상에서 도입된 다중 테넌트 아키텍처의 핵심 개념이다.

CDB는 여러 개의 PDB를 포함할 수 있는 데이터베이스이다.
PDB는 CDB 내에 존재하는 독립적인 데이터베이스이다.
각 PDB는 자신의 데이터 및 메타데이터를 갖고 있으며, 다른 PDB와 완전히 분리되어 있다.
즉, PDB는 데이터베이스의 독립성을 유지하면서도 CDB의 자원을 공유할 수 있다.

 

유저 생성

sql
닫기
# 계정 생성
CREATE USER <USERNAME> IDENTIFIED BY <PASSWORD>;
# 권한 부여
GRANT DBA TO <USERNAME>;

 

접속 확인 (해당 유저로 접속하기 위해서는 CDB가 아닌 PDB로 접속해야 한다)

bash
닫기
$ sqlplus <username>/<password>@//<host>:<port>/<PDB명>
# ex) sqlplus foo/bar@localhost:1521/XEPDB1
# 해당 내용은 shortcut을 만들기 위해서는 bash_profile로 등록하시던지 말던지

 

접속 결과

접속 결과

 

 

서비스 등록, selinux 비활성화 설정

서비스 등록 (root 계정으로 진행, 재부팅 시 oracle 서비스 자동 시작)

bash
닫기
$ systemctl enable oracle-xe-21c.service

 

selinux 비활성화 설정

 

selinux 비활성화 설정 (시스템 통신 문제 사유)

bash
닫기
$ vi /etc/selinux/config
# 이하는 파일 내용 (12번째 라인만 변경)
#################
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #### 기존 enforcing을 disabled로 변경 #####
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

SELINUX disabled 이후 재부팅

bash
닫기
$ init 6

 

 

반응형