오라클 구동-(1)oracle12c 설치&네트워크 설정

2020. 1. 20. 17:55Security/운영체제 및 프로그램 설치

목차

1. CentOS7의 최소 사양

2. Linux 환경 설정

2-1. oracle 관리 계정 및 그룹 생성

2-2. 리눅스 설정

2-3. 추가 패키지 설치

2-4. Ora12c 계정 설정

3. 설치용 패키지 준비

3-1. 압축 해제

3-2. 인스톨러 실행

4. 오라클 Network 설정과 접속

4-1. 오라클 서버 설정(리스너 구동)

5. 리눅스 클라이언트 설정과 접속

5-1. Local naming 방식에서 tnsnames.ora 파일의 구성

6. 오라클 서버 시스템 정지 또는 재시작 

 

1. CentOS7의 최소 사양

- 다음의 사양으로 VMware에 CentOS7을 설치. 

- 중요한 점은 스왑은 메모리의 2배 이상으로 설정. ex) 메모리가 2기가라면 swap는 4기가 이상

- CentOS7의 설치 과정은 기존의 문서 참고.https://alljbut.tistory.com/13?category=738975

 

2. Linux 환경 설정 

2-1. oracle 관리 계정 및 그룹 생성

설치 계정 : ora12c (UID : 1200) 
소속 그룹 : dba (GID : 1200) 
홈 디렉토리 : /app/ora12c/12c

$ORACLE_BASE의 위치: /app/ora12c : 오라클과 관련된 파일은 이 디렉토리를 벗어날 수 없음.

oraInventory의 위치: /app

 

- 여기서 사용되는 리눅스 설치 계정과 그룹은 오라클 관리 계정 및 그룹으로 사용.

- 홈 디렉토리는 ORACLE_BASE 디렉토리로 사용되기 때문에 계정의 이름, 디렉토리 등을 설정할 때 주의.

- dba에 속한 사용자는 누구나 다 오라클을 관리할 수 있다. 다른 사용자도 들어갈 수 있게 퍼미션을 설정해줘야 한다.

#groupadd -g 1200 dba

#useradd -g dba -u 1200 ora12c

#passwd ora12c

#mkdir -p /app/ora12c

#chown -R ora12c.dba /app

#chmod -R 755 /app

 

2-2. 리눅스 설정

- /etc/hosts의 설정 변경

- DB12는 데이터 베이스의 이름, ora12c는 호스트의 이름

192.168.10.(오라클 서버 IP) DB12.itclass.co.kr DB12

192.168.10.(오라클 서버 IP) ora12c.itclass.co.kr ora12c

 

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

 

내용 추가.

 

soft nproc : 2047개 이상 쓰면 경고 메세지 출력

hard nproc : 16384개 이상은 절대 띄울 수 없다.

soft nofile : 1024개까지 열면 경고 메세지 출력

hard nofile : 65536개 이상은 띄울 수 없다.

soft stack : 스택의 양

limits.conf의 설정 부재시 경고메세지

sysctl.conf

- 커널 파라미터의 설정과 관련된 파일

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

 

내용  추가.

#sysctl -p

//설정 후에 sysctl -p로 적용 후 에러가 나지 않는 것을 확인.

sysctl.conf의 설정 부재시 경고메세지

selinux와 방화벽 사용 정지

 

2-3. 추가 패키지 설치

- oracle 설치시 반드시 필요한 패키지

- 제공된 설치 메뉴얼에 따라 대부분 설치되어 있지만 항상 설치 여부를 확인

#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-4. Ora12c 계정 설정

- ora12c 계정. 즉, 설치될 오라클의 관리 계정에서 수행.

- 특히 ORACLE_BASE, ORACLE_HOME, ORACLE_SID, TNS_ADMIN등은 운영하는데 매우 중요한 설정이므로 주의

- ORACLE HOME은 반드시 ORACLE_BASE 밑에 있어야 함.

- ORACLE_SID : 컴포넌트 파일. 반드시 호스트에 등록되어있는 명령어를 사용.

$cd ~

$vi .bash_profile

 

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

 

내용 추가.

$env | grep ORACLE

// ora12c 계정으로 재로그인 후 설정을 확인한다.

 

3. 설치용 패키지 준비

3-1. 압축 해제

- 오라클 원본 파일은 오라클사 홈페이지에서 다운로드 가능.

- 본 문서에서 사용할 패키지는 'linuxx64_12201_database.zip'

- /app 위치에서 unzip 명령을 이용해서 압축해제

 

$chown -R ora12c.dba linuxx64_12201_database.zip

$unzip linuxx64_12201_database.zip

$ls

// ls 명령을 통해서 압축해제후 database 파일이 생긴것을 확인할 수 있다.

 

3-2. 인스톨러 실행(여기서부터는 리눅스의 XWINDOW에서 실행)

- 설치 파일은 database 디렉토리에 생성

$ ./runInstaller

// 인스톨러를 실행.

-보안 갱신 수신 해제 -> 예

- 데이터 베이스 생성 및 구성 선택

- 데스크톱 클래스 선택

- Oracle Base, 소프트웨어 위치, 데이터베이스 파일 위치 같은 경우는 직접 입력하는 것이 아니라 이미 입력되어있다.

- 나머지 부분은 위의 사진과 같게 설정.

- 전역 데이터베이스 이름은 SID와 hosts에[ 반드시 등록 되어 있어야 함.

- 비밀번호의 권장 표준 같은 경우 무시하고 '예'를 클릭.

- ora12c가 dba 그룹이기때문에 orainventory 그룹 이름도 자동으로 생성

- 요약문서 확인 후 설치 진행

- 구성 스크립트 실행이란 알림창이 나올 경우 기술 된 경우 구성 스크립트를 실행.

- /app/ora12c/12c/root_sh 입력후 추가 설정 부분에서는 전부 엔터 

설치완료.

 

4. 오라클 Network 설정과 접속

▶시스템 구성

오라클 서버 
- IP : 192.168.10.130(oracle서버의 ip), 192.168.10.11(dal) 
- Host명 : DB12.itclass.co.kr 
- ORACLE_OWER : ora12c 
- ORACLE_HOME : /app/ora12c/12c 
- ORACLE_SID : DB12

- TNS_ADMIN : $ORACLE_HOME/network/admin (/app/ora12c/12c/network/admin) 

 

4-1. 오라클 서버 설정(리스너 구동)

- 네트워크를 통해 접속할수 있게 하기 위해 리스너 구동.

- 따라서 $TNS_ADMIN에 리스너 파일이 존재해야 함. 

- SID_LIST_LISTENER에 대한 내용이 없다면 추가.

- 여기까지 완료하면 오라클 서버와 클라이언트를 모두 설치된 것 . 

$cd $TNS_ADMIN

$vi listener.ora

 

SID_LIST_LISTENER =
     (SID_LIST =
               (SID_DESC =
                            (SID_NAME = DB12)
                            (ORACLE_HOME = /app/ora12c/12c)
              )
    )

 

내용추가

 

- Default 리스너명은 listener.
- HOST : 서버의 호스트명이나 IP 주소
- PORT : TCP port 번호
- SID_NAME : Instance 명
- 클라이언트는 반드시 <호스트명>에 해당하는 에 접근 가능해야 한다.

$lsnrctl start listener

//리스너를 구동 후에 메시지 확인

 

Services Summary... 
Service "DB12" has 1 instance(s).

The command completed successfully

//정상적으로 리스너 구동에 성공했을때의 메세지 이며 이 메세지가 나오지 반드시 출력되야 한다.

만약 listner.ora 파일에 SID_LIST_LISTENER에 대한 설정이 없다면 

 

Services Summary... 
Service "DB12" has 1 instance(s). 

The command completed successfully

 

2가지 메세지가 나오지 않는 것을 확인할 수 있다.

 

5. 리눅스 클라이언트 설정과 접속

5-1. Local naming 방식에서 tnsnames.ora 파일의 구성

- listener.ora : 서버쪽 파일  
- sqlnet.ora : 클라이언트 쪽 파일 
- tnsnames.ora : 클라이언트 쪽 파일(내가 접속하고자 하는 서버의 정보가 들어있음). 이 파일은 새로 만들 예정이니 불안하면 백업할 것.

- tnsnames.ora 파일에 dal의 부분을 설정해줄때 dal 서버의 listener.ora 파일도 확인해봐야 함.

 

$cd $TNS_ADMIN

// $TNS_ADMIN은 listener.ora 파일을 저장하는 위치를 지정하는 환경변수로 $ORACLE_HOME 아래 위치.

 

vi tnsnames.ora

$vi tnsnames.ora

 

oracle = 
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.10.39) (port = 1521))
(CONNECT_DATA = (SID = DB12))
)

dal =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.10.11) (port = 1521))
(CONNECT_DATA = (SID = DB12))
)

 

내용 추가. tnsnames.ora에 적히는 oracle과 dal은 접속에 사용할 호스트명과 접속 정보이다.

 

6. 오라클 서버 시스템을 정지 또는 재시작 

$ sqlplus / as sysdba

// 관리자로 접속

 

shutdown immediate

// 대용량 시스템 정지 

$sqlplus / as sysdba

// Connected to an idle instance라는 메세지가 뜨는데 DB가 정지되어있음을 의미.

startup

// 대용량 시스템 재시작 확인