11장. 데이터베이스 서버 구축 및 운영 (5) - Oracle Database Express 설치 및 운영

728x90
반응형

출처 : https://www.youtube.com/watch?v=jgAXH0BwnSI&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=61

 

Oracle Database Express 18c 설치

 

이번 시간에는 DBMS 중에서 가장 많이 사용되는 Oracle을 Rocky Linux에 설치하고, 설치한 Oracle을 활용하는 환경에 대해서 알아본다.

 

실습 목표

  • Server에 리눅스용 Oracle Database Express 18c를 설치한다.

 

사전 작업

실습을 진행하기 전, server 가상 머신을 설정 완료 상태로 초기화하고, 메모리 용량을 4GB로 변경한다.

부팅하고 root 사용자로 접속한다.

 

etc-image-0

 

다음 명령을 입력해 필수 패키지를 다운로드하고 설치한다.

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libcap1-1.10-7.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.i686.rpm
ls -l compat*
dnf -y install compat*.rpm

 

이 패키지는 CentOS 7용 패키지인데 Rocky Linux 9에 Oracle DataBase Express 18c 를 설치하기 위해 필요하다.

 

etc-image-1

 

Oracle의 사전 설치 파일을 다운로드하고 설치한다.

wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
dnf -y install oracle*.rpm
dnf -y install libnsl

 

 

Oracle Database Express 18c 다운로드 및 설치

etc-image-2

 

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

 

Oracle Database Express Edition (XE) 18c Downloads

Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Services only provid

www.oracle.com

파이어폭스 웹 브라우저를 열고 해당 주소로 접속해 [Oracle Database 18c Express Edition for Linux x64]를 다운로드 한다.

 

etc-image-3

 

다운로드 디렉토리로 이동한 다음 확인하면 해당 rpm 파일이 존재할 것이다.

 

dnf 명령어로 설치를 진행한다.

dnf -y install oracle-database-xe-18c-1.0-1.x86_64.rpm

 

etc-image-4

 

cd 명령어로 홈 디렉토리로 돌아온다.

 

환경 설정을 시작한다. 비밀번호 입력 부분에서 비밀번호를 지정해준다.

service oracle-xe-18c configure

Specify a password ... and PDBADMIN accounts : 비밀번호 입력 후 enter 2번

 

생각보다 시간이 오래 걸린다. (기다리는 동안 광고 클릭 한번만 눌러주세용. ^^7;;)

 

 

방화벽 포트 열기

etc-image-5

 

Oracle과 관련된 8080번, 1521번 포트를 연다.

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --reload

 

etc-image-6

 

앞으로 사용할 데이터 파일을 저장하기 위해 oradata 라는 디렉토리를 생성하고 파일 권한을 777로 설정한다.

mkdir /oradata
chmod 777 /oradata

 

 

Oracle 사용자 환경 설정

etc-image-7

 

oracle 사용자로 접속하고 nano 에디터로 .bash_profile 파일을 연다.

 

그 다음 내용을 가장 아래쪽에 추가한다.

export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_SID=XE
export ORAENV_ASK=NO
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=KOREAN_KOREA.AL32UTF8

 

저장하고 나가는 방법은 Ctrl + x -> y -> enter를 누르면 된다.

 

exit 명령을 입력해 oracle 사용자를 로그아웃 한다.

 

 

Oracle에서 쇼핑몰 DB 구축

 

실습 목표

etc-image-8

  • 위 그림의 쇼핑몰 DB를 Oracle에 구축한다.
  • Oracle의 클라이언트 프로그램인 SQL*Plus 사용법을 익힌다.

 

Oracle 데이터베이스 구축

etc-image-9

 

oracle 사용자로 접속한 다음, SQL*Plus를 실행하고 system 사용자로 접속한다.

su - oracle
sqlplus

사용자명 입력 : system
비밀번호 입력 : 우리가 위에서 정한 비밀번호 입력

 

etc-image-10

 

쇼핑몰의 데이터베이스인 shopping_db 를 생성하고, 데이터베이스가 잘 생성되었는지 확인한다. 목록을 보면 밑에 shopping_db가 잘 생성된 것을 확인할 수 있다.

CREATE TABLESPACE shopping_db DATAFILE '/oradata/shop.dbf' SIZE 5M; 
-> /oradata/shop.dbf에 5M 크기의 shopping_db라는 이름의 데이터베이스 생성
SELECT tablespace_name FROM DBA_DATA_FILES;	-> 데이터베이스 조회

 

Oracle의 tablespace는 mariaDB의 데이터베이스와 비슷한 개념이다.

 

etc-image-11

 

customer 테이블(고객 정보)과 purchase 테이블(구매 정보)를 생성한다.

CREATE TABLE customer (
id VARCHAR(10) NOT NULL PRIMARY KEY,
name NCHAR(5),
age INT,
address NCHAR(5) ) TABLESPACE shopping_db;

CREATE TABLE purchase (
no INT NOT NULL PRIMARY KEY,
cust_id VARCHAR(10),
mdate CHAR(8),
product NCHAR(5) ) TABLESPACE shopping_db;

 

etc-image-12
etc-image-13

 

생성한 두 테이블의 구조를 확인한다.

DESC customer;
DESC purchase;

 

etc-image-14

 

customer 테이블과 purchase 테이블의 데이터를 입력한다. 참고로 MariaDB와 달리 purchase 테이블의 no 열에는 숫자를 직접 입력해야 한다.

INSERT INTO customer VALUES ('hong', '홍길동', 22, '경기');
INSERT INTO customer VALUES ('dang', '당탕이', 23, '충북');
INSERT INTO customer VALUES ('ppuni', '이뿌니', 30, '강원');
INSERT INTO customer VALUES ('john', '존밴이', 28, ' 서울');
INSERT INTO purchase VALUES (1, 'hong', '20160122', 'TV');
INSERT INTO purchase VALUES (2, 'ppuni', '20160211', 'TV');
INSERT INTO purchase VALUES (3, 'john', '20160211', '냉장고');
INSERT INTO purchase VALUES (4, 'hong', '20160222', '세탁기');
INSERT INTO purchase VALUES (5, 'john', '20160311', '비디오');

 

etc-image-15

 

customer 테이블과 purchase 테이블의 데이터를 확인한다.

SELECT * FROM customer;
SELECT * FROM purchase;

 

 

Oracle과 MariaDB는 거의 비슷한데, 데이터베이스는 개념이 거의 비슷하기 때문에 tool의 특징만 파악하면 다른 DB도 쉽게 파악할 수 있다.

 

728x90
반응형