프린트 하기

OS환경 : Oracle Linux 7.6 (64bit)


DB 환경 : Oracle Database 19.3.0.0


방법 : Oracle Linux 7.6에 Oracle 19c RPM 설치 가이드

OS 설치는 아래 게시물 참조

Oracle linux 7.6 설치 가이드(https://positivemh.tistory.com/521)



oracle 19c rpm 설치파일 다운로드(See All 한뒤 sha256sum 확인 가능)

공식홈페이지 접속(https://www.oracle.com/database/technologies/oracle-database-software-downloads.html)

(2,694,664,264 bytes) (sha256sum - c519397aea7af9f097cbde6597783f17964e5d53ea3fd90da042d4b65d379652)


로그인 후 linux x86-64 RPM 파일 다운로드 



설치파일 서버에 업로드 후 sha256sum 값 확인(파일 검증)

1
2
3
4
5
6
7
8
9
# mkdir -/app/media
# 파일업로드
# ls -al /app/media/
total 4194240
drwxr-xr-x. 2 root root         53 Apr 10 11:40 .
drwxr-xr-x. 3 root root         19 Apr 10 11:39 ..
-rw-r--r--. 1 root root 2694664264 Apr 10 11:41 oracle-database-ee-19c-1.0-1.x86_64.rpm
# sha256sum oracle-database-ee-19c-1.0-1.x86_64.rpm 
c519397aea7af9f097cbde6597783f17964e5d53ea3fd90da042d4b65d379652  oracle-database-ee-19c-1.0-1.x86_64.rpm



나온 값이 다운로드 받을 때 나와있는 값과 동일한지 확인(동일함)



오라클 설치 전 사전 설정

자동 설정(rpm)(root 계정)

공식홈페이지에서 preinstall rpm 다운로드 후 서버에 업로드

https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

또는 curl로 서버에 직접 다운로드

1
# curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm


preinstall 패키지 설치

1
2
# cd /app/media
# yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm




자동 설정(network)

preinstall 패키지 설치(root 계정)

1
# yum install -y oracle-database-preinstall-19c



자동 설정 후 수동설정 파일 확인필요

/etc/sysctl.conf에 아래 내용 추가

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# cat /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500



잘 입력되었는지 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/sbin/sysctl -p
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500



아래 파일 생성 후 내용 추가(확인)

1
2
3
4
5
6
7
8
9
# cat /etc/security/limits.d/oracle-database-preinstall-19c.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728



유저 및 그룹 생성(수동 생성시)

1
2
# groupadd dba
# useradd -g dba -G dba oracle


유저 및 그룹 수정(자동 생성시)

1
# usermod -g dba -G dba oracle 



패스워드 설정

1
# passwd oracle



selinux disable 설정

1
2
# vi /etc/selinux/config
SELINUX=disabled



불필요한 서비스 정지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#
systemctl stop firewalld
systemctl disable firewalld
 
systemctl stop bluetooth
systemctl disable bluetooth
 
systemctl stop chronyd
systemctl disable chronyd
mv /etc/chrony.conf /etc/chrony.conf.bak
 
systemctl stop ntpdate
systemctl disable ntpdate
 
systemctl stop avahi-daemon.socket
systemctl disable avahi-daemon.socket
 
systemctl stop avahi-daemon
systemctl disable avahi-daemon
 
systemctl stop libvirtd
systemctl disable libvirtd



Oracle Software 설치

oracle rpm 설치(root 계정)

1
# yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm




Oracle DB 생성 및 구성

1
/etc/init.d/oracledb_ORCLCDB-19c configure




파라미터 수정 필요시 configuration 수정 

/etc/sysconfig/oracledb_ORCLCDB-19c.conf

기본 설정값은 ORCLPDB1라는 pluggable database(pdb)를 사용하여 ORCLCDB라는 container database[cdb]를 생성함

그리고 리스너를 기본 포트 (1521)로 구성함

ORACLE_DATA_LOCATION은 /opt/oracle/oradata 로 설정됨

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# vi /etc/sysconfig/oracledb_ORCLCDB-19c.conf
 
#This is a configuration file to setup the Oracle Database. 
#It is used when running '/etc/init.d/oracledb_ORCLCDB configure'.
#Please use this file to modify the default listener port and the
#Oracle data location.
 
# LISTENER_PORT: Database listener
LISTENER_PORT=1521
 
# ORACLE_DATA_LOCATION: Database oradata location
ORACLE_DATA_LOCATION=/opt/oracle/oradata
 
# EM_EXPRESS_PORT: Oracle EM Express listener
EM_EXPRESS_PORT=5500



설치 경로 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
# cd /opt/oracle/
# ls -al
total 8
drwxr-xr-x. 10 oracle oinstall 4096 Apr 10 12:02 .
drwxr-xr-x.  5 root   root       46 Apr 10 11:57 ..
drwxr-x---.  3 oracle dba        21 Apr 10 12:02 admin
drwxr-x---.  3 oracle dba        21 Apr 10 12:05 audit
drwxr-x---.  5 oracle dba        47 Apr 10 12:05 cfgtoollogs
drwxrwx---.  2 oracle dba         6 Apr 10 11:57 checkpoints
drwxrwxr-x. 23 oracle dba      4096 Apr 10 11:57 diag
drwxr-x---.  3 oracle dba        21 Apr 10 12:02 oradata
drwxrwx---.  4 oracle dba        78 Apr 10 12:23 oraInventory
drwxr-xr-x.  3 oracle oinstall   17 Apr 10 11:49 product

/opt/oracle이 일반적으로 오라클 설치 후 보이는 $ORACLE_BASE가 됨



오라클, 리스너 프로세스 확인

1
2
3
4
5
6
7
# ps -ef | grep pmon
oracle    3177     1  0 12:23 ?        00:00:00 ora_pmon_ORCLCDB
root      6070 31606  0 13:02 pts/1    00:00:00 grep --color=auto pmon
# ps -ef | grep tns
root        15     2  0 10:54 ?        00:00:00 [netns]
root      6081 31606  0 13:02 pts/1    00:00:00 grep --color=auto tns
oracle   32537     1  0 12:02 ?        00:00:00 /opt/oracle/product/19c/dbhome_1/bin/tnslsnr LISTENER -inherit



oracle 계정 .bash_profile 설정

1
2
3
4
5
6
7
8
# su - oracle
$ vi .bash_profile 
export TMP=/tmp;
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$PATH:$ORACLE_HOME/bin
alias ss='sqlplus / as sysdba'



적용

1
$ . ./.bash_profile



sqlplus 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ sqlplus / as sysdba
 
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 10 13:07:51 2020
Version 19.3.0.0.0
 
Copyright (c) 19822019, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
 
SQL> select instance_name, version, status from v$instance;            
 
INSTANCE_NAME     VERSION       STATUS
---------------- ----------------- ------------
ORCLCDB      19.0.0.0.0       OPEN



system 유저 패스워드 변경(cdb, pdb)

1
2
3
4
5
6
7
8
9
SQL> SHOW CON_NAME
 
CON_NAME
------------------------------
CDB$ROOT
 
SQL> alter user system identified by oracle;
 
User altered.



pdb로 세션 스위칭

1
2
3
4
5
6
7
8
9
SQL> ALTER SESSION SET CONTAINER = ORCLPDB1;
 
Session altered.
 
SQL> SHOW CON_NAME
 
CON_NAME
------------------------------
ORCLPDB1



간단한 세션 변경 확인 테스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#세션 PDB로 전환
SQL> ALTER SESSION SET CONTAINER = ORCLPDB1;
 
Session altered.
 
# 확인
SQL> SHOW CON_NAME
 
CON_NAME
------------------------------
ORCLPDB1
 
#오브젝트 수 확인
SQL> select count(*from dba_objects;
 
  COUNT(*)
----------
     72356
 
#세션 CDB로 전환
SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;
 
Session altered.
 
# 확인
SQL> SHOW CON_NAME
 
CON_NAME
------------------------------
CDB$ROOT
 
#오브젝트 수 확인
SQL> select count(*from dba_objects;
 
  COUNT(*)
----------
     72374

cdb와 pdb의 오브젝트 수가 다름을 확인 가능



간단한 접속변경 확인 테스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#PDB로 접속
SQL> CONN system/oracle@//localhost:1521/ORCLPDB1
Connected.
 
# 확인
SQL> SHOW CON_NAME
 
CON_NAME
------------------------------
ORCLPDB1
 
#오브젝트 수 확인
SQL> select count(*from dba_objects;
 
  COUNT(*)
----------
     72356
 
#CDB로 접속
CONN system/oracle@//localhost:1521/ORCLCDB
 
# 확인
SQL> SHOW CON_NAME
 
CON_NAME
------------------------------
CDB$ROOT
 
#오브젝트 수 확인
SQL> select count(*from dba_objects;
 
  COUNT(*)
----------
     72374



RPM으로 설치한 Oracle 삭제

오라클 계정으로 리스너 종료

1
2
3
4
5
6
7
8
$ lsnrctl stop
 
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-APR-2020 15:01:55
 
Copyright (c) 19912019, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle19)(PORT=1521)))
The command completed successfully



dbca 로 db 제거(oracle 계정)

1
$ dbca -silent -deleteDatabase -sourceDB ORCLCDB -sysDBAUserName sys -sysDBAPassword oracle




Oracle Software 제거(root 계정)

1
# yum -y remove oracle-database-ee-19c




삭제 확인

1
2
3
4
5
6
7
8
9
# su - oracle
Last login: Fri Apr 10 15:13:37 KST 2020 on pts/1
$ cd $ORACLE_BASE
$ ls -al
total 4
drwxr-xr-x.  4 oracle oinstall   37 Apr 10 15:13 .
drwxr-xr-x.  5 root   root       46 Apr 10 11:57 ..
drwxr-x---.  5 oracle dba        47 Apr 10 12:05 cfgtoollogs
drwxrwxr-x. 23 oracle dba      4096 Apr 10 11:57 diag

$ORACLE_BASE에 로그 파일 경로 밖에 남아있지 않음



참조 : 

https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/running-rpm-packages-to-install-oracle-database.html#GUID-BB7C11E3-D385-4A2F-9EAF-75F4F0AACF02

https://dataforum.io/display/ORCL/Oracle+Database+19c+RPM+Install

https://oracle-base.com/articles/12c/multitenant-connecting-to-cdb-and-pdb-12cr1

https://positivemh.tistory.com/57