리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

목차

1. 준비물

2. Linux 환경 설정

2-1 종속성 패키지 설치

2-2 오라클 관리 그룹/계정 생성

2-3 리눅스 설정

2-4 오라클 계정 설정

3. 설치 과정

4. 오라클 네트워크 설정

1.준비물

· Cent OS 7

* vmware 15pro 에 cent os 7 설치하는 방법

https://blog.naver.com/jw_pak/221713489006

* Oracle 12c를 설치하기 위한 Cent OS 7의 최소사양

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

* 필자는 Cent OS 7 을 vmware로 설치하였고, network 방식은 Bridged 방식으로 사용하였음.

· Oracle database 12c for linux

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

* Oracle database 12c 는 상기 오라클 홈페이지에서 다운로드 받을 수 있다.

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

* 필자가 설치한 버전은 상기 버전이며 파일명은 linuxx64_12201_database.zip 이다.

2. Linux 환경 설정

2-1) 종속성 패키지 설치

yum -y install compat-libcap1 yum -y install compat-libstdc++-33 yum -y install libstdc++-devel yum -y install gcc yum -y install gcc-c++ yum -y install ksh yum -y install libaio-devel

* 오라클 설치에 반드시 필요한 패키지들이므로 오라클 설치하기 이전에 미리 설치한다.

2-2) 오라클 관리 그룹 / 계정 생성

설치 계정 : ora12c (UID : 1200)

소속 그룹 : dba (GID : 1200)

홈 디렉토리 : /home/ora12c

오라클을 설치할 디렉토리 : /app/ora12c

groupadd -g 1200 dba useradd -g dba -u 1200 ora12c passwd ora12c // GID 1200 dba 그룹생성 , UID 1200 ora12c 계정생성, ora12c 패스워드 설정 mkdir -p /app/ora12c chown -R ora12c.dba /app chmod -R 755 /app // /app/ora12c 디렉토리 생성 및 소유자:ora12c 소유그룹:dba 권한 drxr-xr-x로 설정

2-3) 리눅스 설정

· /etc/hosts 파일 수정

# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.92.100 DB12.itclass.co.kr DB12 192.168.92.100 ora12c.itclass.co.kr ora12c

* 서버의 아이피에 호스트명을 설정한다.

· /etc/security/limits.conf 수정

# vi /etc/security/limits.conf # oracle setup ora12c soft nproc 2047 ora12c hard nproc 16384 ora12c soft nofile 1024 ora12c hard nofile 65536 ora12c soft stack 10240 ora12c hard stack 20480

# vi /etc/sysctl.conf # Oracle12c setup kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 kernel.msgmnb = 65536 kernel.msgmni = 2878 kernel.shmmni=4096 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=4194304 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048576 fs.file-max=6815744 fs.aio-max-nr=1048576

* Reboot 하지 않고 설정을 적용하기위해 sysctl -p 명령어를 사용하여 즉시 적용한다.

· selinux 사용 정지

# vi /etc/sysconfig/selinux #SELINUX=enforcing SELINUX=disabled

# systemctl stop firewalld # systemctl disable firewalld

2-4) 오라클 계정 설정

생성해 주었던 ora12c 계정으로 로그인해 .bash_profile을 수정해준다.

$ vi .bash_profile # oracle setup export ORACLE_HOSTNAME=DB12.itclass.co.kr export TMP=/tmp export TMPDIR=$TMP export ORACLE_OWNER=ora12c export ORACLE_BASE=/app/ora12c export ORACLE_HOME=/app/ora12c/12c export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME:/usr/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib export ORACLE_SID=DB12 export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949 export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export EDITOR=vi if [ $USER = "ora12c" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi

3. 설치 과정

1) 다운받은 oracle12c를 cent os 7 에 업로드하기 위해 ftp를 설치해준다.

# yum install -y vsftpd // ftp 설치 # systemctl start vsftpd // ftp 시작

2)ftp client 프로그램을 사용하여 linuxx64_12201_database.zip 을 /app 에 위치시킨다.

3) unzip을 이용하여 다운받은 파일을 풀어준다.

$ unzip linuxx64_12201_database.zip

4) /app/database 로 이동하여 인스톨러를 실행해준다.

* 인스톨러는 GUI 환경에서만 작동하기 때문에 linux xwindow 또는 windows 원격 데스크톱을 이용한다.

필자는 xwindow를 이용하였다.

$ cd /app/database $ ./runInstaller

5) 오라클에서 지원을 받지 않으니 메일주소를 입력하지 않는다.

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

6) 데이터 베이스 생성 및 구성을 선택한다.

- 소프트웨어만 설치 : 직접 데이터베이스를 생성해야함

- 기존데이터베이스 업그레이드 : 업그레이드

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

7) 데스크톱 클래스 : 오라클에서 제공하는 기본설정으로 설치됨

서버 클래스 : 여러가지 구성을 직접 설정 할 수 있음

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

8) 문자셋을 WIN949로 선택하고

전역 데이터 베이스 이름을 DB12.itclass.co.kr

비밀번호를 설정하고, 컨테이너 데이터 베이스로 생성을 해제한다.

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

9) 설치중에 루트권한으로 적용해줘야하는 스크립트를 루트로 로그인하여 실행해준다.

# /app/oraInventory/orainstRoot.sh # /app/ora12c/12c/root.sh

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

리눅스 Oracle 12c 설치 - linugseu Oracle 12c seolchi

4. 오라클 네트워크 설정

4-1) 리스너 구동

· listener.ora 파일의 구성

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DB12.itclass.co.kr)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )

- Default 리스너명은 listener이다.

- HOST : 서버의 호스트명이나 IP 주소

- PORT : TCP port 번호

- SID_NAME : 인스턴스 명

- 클라이언트는 반드시 HOST 에 해당하는 IP에 접근 가능해야한다.

· lsnrctl 명령어

$ lsnrctl [옵션] <리스너명> - 옵션 . start : 리스너를 시작한다. . stop : 리스너를 종료한다. . status : 리스너의 상태를 출력한다.(listener.ora 파일의 내용을 확인 할 수 있다.) . reload : listener.ora를 다시 읽는다.

[ora12c@ORATEST admin]$ lsnrctl start LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 18-JAN-2020 07:15:40 Copyright (c) 1991, 2016, Oracle. All rights reserved. Starting /app/ora12c/12c/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 12.2.0.1.0 - Production System parameter file is /app/ora12c/12c/network/admin/listener.ora Log messages written to /app/ora12c/diag/tnslsnr/ORATEST/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORATEST)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DB12.itclass.co.kr)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production Start Date 18-JAN-2020 07:15:40 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /app/ora12c/12c/network/admin/listener.ora Listener Log File /app/ora12c/diag/tnslsnr/ORATEST/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORATEST)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "DB12" has 1 instance(s). Instance "DB12", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully

* listener가 인스턴스 DB12에 정상적으로 연결이 된것을 확인 할 수 있다.

참고

lsnrctl start 명령시 아래와 같은 화면이 뜬다면 listener.ora 를 수정해준다.

[ora12c@ORATEST admin]$ lsnrctl start LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 18-JAN-2020 07:18:47 Copyright (c) 1991, 2016, Oracle. All rights reserved. Starting /app/ora12c/12c/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 12.2.0.1.0 - Production System parameter file is /app/ora12c/12c/network/admin/listener.ora Log messages written to /app/ora12c/diag/tnslsnr/ORATEST/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORATEST)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DB12.itclass.co.kr)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production Start Date 18-JAN-2020 07:18:47 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /app/ora12c/12c/network/admin/listener.ora Listener Log File /app/ora12c/diag/tnslsnr/ORATEST/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORATEST)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully

The listener supports no services -> 리스너는 구동되었지만 인스턴스에 연결되지 못함.

$ vi /app/ora12c/12c/network/admin/listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DB12.itclass.co.kr)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = DB12) (ORACLE_HOME = /app/ora12c/12c) ) )

SID_LIST_LISTENER 를 추가하여 DB12인스턴스에 연결되도록 한다.