Oracle Database 실습 2
Oracle Database 실습 2입니다. XE RPM 설치, configure, systemd 서비스, listener, SQL*Plus 접속, start/stop 검증 절차를 정리했습니다.
Oracle Database 실습 2: XE 설치와 기동 검증
Oracle Database 실습 1에서 Linux OS 준비를 마친 뒤 Oracle Database XE를 설치하고 실제로 접속되는지 확인하는 절차다. RPM 설치, configure, 환경 변수, listener, SQL*Plus 접속, start/stop 확인을 명령어 중심으로 점검한다.
예시는 Oracle Database XE 21c 계열을 기준으로 작성한다. 18c XE를 사용하는 경우 패키지명과 서비스명이 다를 수 있으므로 설치한 RPM의 이름에 맞춰 명령을 조정한다.
1. 설치 파일 준비
Oracle Database XE RPM은 Oracle 공식 다운로드 페이지에서 받은 뒤 서버로 복사한다. 다운로드 파일명은 버전에 따라 달라질 수 있다.
ls -lh /tmp/oracle-database-xe-*.rpm
sha256sum /tmp/oracle-database-xe-*.rpm설치 전 기존 Oracle XE가 있는지 확인한다. 기존 DB가 있으면 삭제 전에 export와 백업을 먼저 해야 한다.
rpm -qa | grep -i oracle-database || true
systemctl list-unit-files | grep -i oracle || true
ps -ef | grep -E 'pmon|tnslsnr' | grep -v grep || true2. RPM 설치
RPM 설치는 root 권한으로 수행한다. Oracle Linux/RHEL 8 이상은 dnf localinstall, 7 계열은 yum localinstall을 사용한다.
sudo dnf -y localinstall /tmp/oracle-database-xe-21c-*.rpm
# yum 기반 환경이라면
sudo yum -y localinstall /tmp/oracle-database-xe-21c-*.rpm설치가 끝나면 패키지와 주요 경로를 확인한다.
rpm -qa | grep -i oracle-database
rpm -ql oracle-database-xe-21c | head -50
ls -ld /opt/oracle
ls -lh /etc/init.d/oracle-xe-21c 2>/dev/null || true3. Database configure
RPM 설치는 소프트웨어를 배치하는 단계이고, 실제 database 생성과 listener 구성은 configure 단계에서 수행된다. 관리자 계정 비밀번호는 프롬프트에서 입력하고, 문서나 shell history에 남기지 않는다.
sudo /etc/init.d/oracle-xe-21c configure18c XE를 설치했다면 스크립트명이 다를 수 있다.
sudo /etc/init.d/oracle-xe-18c configureconfigure가 실패하면 로그와 리소스를 확인한다.
df -h
free -h
sudo tail -n 200 /opt/oracle/cfgtoollogs/dbca/XE/XE.log 2>/dev/null || true
sudo find /opt/oracle/cfgtoollogs -type f -maxdepth 4 | sort4. 서비스 상태 확인
설치가 정상이라면 systemd 서비스와 Oracle 프로세스가 보여야 한다.
sudo systemctl status oracle-xe-21c --no-pager
sudo systemctl enable oracle-xe-21c
ps -ef | grep -E 'pmon|tnslsnr' | grep -v greplistener 포트가 열려 있는지도 확인한다.
ss -lntp | grep 1521 || true
sudo firewall-cmd --list-ports 2>/dev/null || true5. oracle 사용자 환경 변수
SQL*Plus와 listener 명령을 편하게 쓰려면 Oracle 환경 변수를 설정한다. XE 21c의 기본 ORACLE_HOME은 보통 /opt/oracle/product/21c/dbhomeXE다.
sudo tee /etc/profile.d/oracle-xe.sh >/dev/null <<'EOF'
export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
export ORACLE_SID=XE
export PATH=$ORACLE_HOME/bin:$PATH
EOF
source /etc/profile.d/oracle-xe.sh
echo "$ORACLE_HOME"
echo "$ORACLE_SID"
which sqlplus
which lsnrctloracle 계정으로도 같은 값이 잡히는지 확인한다.
su - oracle -c 'source /etc/profile.d/oracle-xe.sh; echo $ORACLE_HOME; echo $ORACLE_SID; sqlplus -v'6. Listener 상태 확인
listener는 remote client가 DB 서비스에 접속할 때 필요하다. 로컬에서 OS 인증으로 접속하는 것과 listener를 통해 service name으로 접속하는 것은 다르다.
source /etc/profile.d/oracle-xe.sh
lsnrctl status
lsnrctl servicesXEPDB1 같은 pluggable database service가 listener에 보이는지 확인한다.
7. SQL*Plus 로컬 접속
서버 내부에서는 oracle 계정으로 OS 인증 접속을 먼저 확인한다.
su - oracle
source /etc/profile.d/oracle-xe.sh
sqlplus / as sysdbaSQL*Plus 안에서는 인스턴스와 PDB 상태를 확인한다.
select instance_name, status from v$instance;
select name, open_mode from v$pdbs;
show pdbs;
exit;8. Easy Connect 방식 접속
listener를 통한 접속은 service name 기준으로 확인한다. 비밀번호는 프롬프트에서 입력한다.
sqlplus system@localhost:1521/XEPDB1접속 실패 시 에러별로 확인 지점이 다르다.
| 오류 | 의미 | 확인 |
|---|---|---|
ORA-12541 | listener에 연결할 수 없음 | lsnrctl status, ss -lntp, 방화벽 확인 |
ORA-01017 | 계정 또는 비밀번호 오류 | 계정 잠금, 비밀번호, 접속 대상 service 확인 |
ORA-01109 | database가 open 상태가 아님 | startup, show pdbs 확인 |
ORA-65011 | PDB 이름 오류 가능 | select name from v$pdbs; 확인 |
9. Start, stop, restart
systemd로 XE 서비스를 제어할 수 있다.
sudo systemctl stop oracle-xe-21c
sudo systemctl start oracle-xe-21c
sudo systemctl restart oracle-xe-21c
sudo systemctl status oracle-xe-21c --no-pagerSQL*Plus에서 직접 instance를 제어할 수도 있다. 단, 운영 DB에서는 접속 사용자와 서비스 영향 범위를 확인한 뒤 수행해야 한다.
sqlplus / as sysdba
shutdown immediate;
startup;
select instance_name, status from v$instance;
exit;10. 설치 후 기본 점검
source /etc/profile.d/oracle-xe.sh
lsnrctl status
ps -ef | grep -E 'pmon|tnslsnr' | grep -v grep
df -h /opt/oracle
du -sh /opt/oracle/oradata 2>/dev/null || true
tail -n 100 /opt/oracle/diag/rdbms/xe/XE/trace/alert_XE.log 2>/dev/null || true정리
Oracle Database XE 설치는 RPM 설치와 configure를 분리해서 이해해야 한다. RPM은 소프트웨어를 배치하고, configure는 실제 XE database와 listener를 만든다. 설치 성공 여부는 패키지 설치 완료 메시지가 아니라 systemctl status, lsnrctl status, sqlplus / as sysdba, system@localhost:1521/XEPDB1 접속까지 확인해야 판단할 수 있다.