FIF's 코딩팩토리

CentOS에 Oracle12c 설치후 local에서 접속하기 본문

Database(데이터 베이스)

CentOS에 Oracle12c 설치후 local에서 접속하기

FIF 2019. 5. 16. 16:24
반응형

Virtual Box에 CentOS를 깔아 Server로 지정했다.

Windows(local) 에서 sql-developer를 사용해 데이터 입력시

CentOS(Server) 에 데이터가 저장되는걸 볼 수 있는 포스팅.

 

1.  개요

 

Version

   OS : Cent OS 7 64bit

   DB : Oracle 12C R2(12.2.0.1.0)

2.  설치

2.1.  CentOS에 오라클 설치

2.1.1.  패키지 설치

Oracle 설치에 필요한 패키지를 설치한다.

# yum update

# yum install -y binutils compat-libcap1 gcc gcc-c++ glibc glibc glibc-devel glibc-devel ksh compat-libstdc++-33 libaio libaio libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++ libstdc++-devel libstdc++-devel libXi libXi libXtst libXtst make sysstat xorg-x11-apps

 

2.1.2.  GroupUser생성

Oracle 계정의 필요한 그룹과 유저를 생성 한다.

# groupadd oinstall

# groupadd dba

# useradd -g oinstall -G dba oracle

# passwd oracle

 

2.1.3.  Oracle 계정의 Oracle Base 디렉토리 생성 및 환경 변수 설정

Oraclebase가 되는 디렉토리 생성 후 권한을 부여 한다.

# cd /home/oracle

# mkdir db

# chown -R oracle:oinstall db

# chmod -R 775 db

# chmod g+s db

 

Oracle 계정의 환경 변수 설정을 하기 위해 편집한다.

vi /home/oracle/.bash_profile

 

export TMP=/tmp

export TMPDIR=/tmp

export ORACLE_BASE=/home/oracle/db

export ORACLE_SID=orcl

export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1

export ORACLE_HOME_LISTNER=$ORACLE_HOME/bin/lsnrctl

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH=$ORACLE_HOME/bin:$PATH

 

2.1.4.  커널 설정 수정

커널 설정을 위해 /etc/sysctl.conf를 편집한다.

아래와 화면과 같이 sysctl.conf의 맨 아래Line에 입력 한다.

vi /etc/sysctl.conf

 

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1987162112

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

 

수정한 커널내용을 적용 및 확인 한다.

# sysctl -p

 

2.1.5.  shell limit 설정

Oracle 계정의 Shell limit를 설정 하기 위해 /etc/security/limits.conf를 편집한다.

vi /etc/security/limits.conf

 

 

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

 

2.1.6.  Oracle Download

프로그램을 내려받기 위해서는 오라클 계정을 갖고 있어야 한다.

계정은 누구나 쉽게 만들 수 있으므로 오라클에 회원가입을 하자.

https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

Accept에 꼭 체크를 해준다.

 

다양한 플랫폼별로 준비된 오라클 데이터베이스 설치 프로그램 중에서 Linux x86-64 버전을 내려받는다.

 

다운로드가 완료되면 lunuxx64_12201_database.zip 파일 이름으로 저장된다.

 

2.1.7.  Oracle Install

Oracle site에서 다운받은 Oracle 설치파일을 unzip으로 해제후 Oracle 계정으로 접속한다.

# unzip linuxx64_12201_database.zip

# su - oracle

$ cd /home/oracle/database

 

오라클설치파일 실행하기

$ ./runinstaller

 

2.1.8.  Configure Security Update

보안 문제에 대한 정보를 메일로 수신하지 않기 때문에 언 체크를 하고 Next한다.

팝업창이 뜨면 Yes를 클릭 한다.

2.1.9.  Installation Option

데이터베이스를 생성하고 Next 한다.

 

 

 

2.1.10.  System Class

서버 클래스로 선택하고 Next 한다.

2.1.11.  Database Installation Option

싱글 인스턴스 데이터베이스 설치를 선택하고 Next 한다.

 

 

2.1.12.  Install Type

고급 설치를 선택하고 NEXT 한다.

2.1.13.  Database Edition

엔터프라이즈 에디션을 선택하고 NEXT 한다.

 

2.1.14.  Installation Location

오라클 설치 경로 확인 후 NEXT 한다.

2.1.15.  Create Inventory

오라클 인벤토리 설정 후 NEXT 한다.

 

2.1.16.  Configuration Type

데이터베이스 타입을 General Purpose로 선택 후 NEXT 한다.

2.1.17.  Database Identifiers

오라클 글로벌 이름과 SID, Pluggable 이름을 입력 후 NEXT 한다.

 

2.1.18.  Configuration Options

메모리 탭에서 자동 메모리 설정을 언 체크하고 메모리 사이즈를 설정한다.

2.1.19.  Configuration Options

Character sets 탭으로 이동 하여 기본 AL32UTF8로 설정하고 NEXT 한다.

실제 다른 character encoding 고르고 넘어가면 나중에 Jira 설치 과정 중에 create a project 할때 project 들어갈 table생성 record들이 안들어가져서 결국 project 생성을 없는 기이한 현상이 발생한다

 

oracle 재설치 없이 character encoding 바꾸고자 하면 https://jehna.tistory.com/36 여기를 따라한다.

2.1.20.  Database Storage

오라클 파일 시스템 경로를 설정하고 NEXT 한다.

 

 

 

 

2.1.21.  Management Options

EM(Enterprise Manager) Cluld Control 등록을 언체크 하고 NEXT 한다.

 

2.1.22.  Recovery Options

복구를 사용할 경우 Enable Recovery를 체크하고, 아니면 언체크 한 후 NEXT 한다.

2.1.23.  Schema Passwords

비밀번호을 전체 동일 하게 선택 패스워드 입력 하고 Next 한다. 오라클 에서 권장하는 비밀번호가 아니므로 진행 하겠느냐에 Yes 선택한다.

오라클에서 권장하는 비밀번호는 8자리 이상의 영문자 대문자, 소문자, 숫자가 모두 포함 된다.

2.1.24.  Operationg System Group

권한이 부여된 운영 시스템 그룹 설정 후 NEXT 한다.

2.1.25.  Prerequisite Checks

전체 조건 검사 수행 시 최대 스택 사이즈가 다릅니다.” 라고 메시지가 나타나면

ulimit -s 해서 stack size를 확인 할 수 있다.

ulimit -s 10240 명령어를 입력 하여 stack size를 늘려준다.

위의 검사에서 "smartmontools" , "net-tools" 등이 없다고 뜨면 

$ yum install smartmontools

$ yum install net-tools

등의 명령어로 설치해준다

 

 

2.1.26.  Summary

검사가 끝나면 Oracle 설치에 대한 정보를 Report 형식으로 보여준다.

확인 후 Install 을 선택한다.

2.1.27.  Install Product

새로운 터미널을 열어서 root로 접속 하고 스크립트 명령어를 입력 한다.

작업이 완료가 되면 앞서 나왔던 팝업창을 OK 선택 한다.

 

 

orainstRoot.sh 실행결과이다.

해석하자면

다음 권한 변경 중/opt/oracle12/oraInventory.

그룹에 대한 읽기, 쓰기 권한을 추가하는 중입니다.

월드에 대한 읽기, 쓰기, 실행 권한을 제거하는 중입니다.

 

그룹 이름 변경 중 /opt/oracle12/oraInventory 대상 oinstall.

스크립트 실행이 완료되었습니다.”

정도이다.

 

root.sh 실행 결과이다. 엔터 치고 넘어가자.

 

2.1.28.  Finish

설치가 완료되면 close를 선택하여 GUI를 끈다.

2.1.29.  sqlplus 테스트

관리자 계정으로 로그인

SQL> sqlplus “/as sysdba”

SQL> startup //오라클 Database 시작

 

만일 한글이 깨져서 나온다면 오라클에서 식별가능한 로케일 환경변수를 추가해야 한다.

SQL> SELECT * FROM sys.props$ where name=”NLS_CHARACTERSET;”

 

 

아래 내용을 .bash_profile에 추가한다.

export NLS_LANG=KOREAN_KOREA.AL32UTF8

 

SQL> shutdown //데이터베이스 종료

 

2.2.  계정만들고 권한주기

2.2.1.  ism 계정 만들기

SQL> sqlplus

user-namepassword를 입력하여 SQL에 접속한다.

또는

SQL> sqlplus “/as sysdba”

로 접속한다.

관리자 계정은 syssystem이고 passwd는 오라클 설치시에 입력했던

Specify Schema Passwords이다.

ism계정을 만들고 비밀번호를 123123으로 설정한다.

SQL> create user ism identified by 123123;

 

아래와 같은 에러메시지가 출력될 것이다.

 

이유는 Oracle 12c로 업데이트 되면서 전체적인 구조가 변경되어 사용자 생성 방법이나 규칙들이 조금씩 변경됐기 때문에 나타나는 오류다. 해결방법은 2가지다.

1)    생성할 계정명 앞에 ‘C##’키워드 붙여주기

2)    예전의 스크립트 방식 그대로 생성 가능하도록 설정 변경

C## 키워드가 붙는 이유는 12c전에 등장하는 CDB, PDB 개념 때문인데

자신의 환경이 연습용이거나 12c의 클라우드 계정을 염두해서 사용할것이 아니면 두번째 방법을 추천한다고들 한다.

 

두번째 방법은 아래 한줄만 추가하면 된다.

ALTER SESSION SET “_ORACLE_SCRIPT” = TRUE;

 

아래와 같은 문구가 출력되고, 성공적으로 계정을 만들었다.

 

2.2.2.  ism 계정에 모든 권한 주기

SQL> grant connect, resource, dba to ism;

 

ism계정에 권한이 성공적으로 주어졌다.

 

2.3.  SQL-ClientORACLE 서버 접근

2.3.1.  로컬에서 sql-developer로 서버의 ISM계정 접근

접속이름 : 임의로 자신이 접속이름 설정(한글,영어 가능)

사용자 이름연결할 DB계정 ID

비밀번호연결할 DB계정 PW

호스트이름 : 연결할 DB IP주소(로컬이면 localhost로 냅두고, 외부DB연결이면 IP주소로 적는다)

포트 : 디폴트 1521이다. 아니면 다른포트번호 적기

SID : 설시치 지정한 전역 DB이름, 따로 지정안했다면 orcl 이다.

성공적으로 연결됐다.

2.3.2.  연결이 안될경우

아래와 같은 문구가 뜨는 이유는 오라클 설치이후 기본적으로 외부접근이 막혀있기 때문이다.

리스너를 통해 외부접근을 허용해주자.

아래 경로로 가기.

 

 

linstener.ora 아래와 같이 vi모드로 편집.

 

HOST주소를 서버IP로 변경(localhostdefault로 설정돼있음)

 

SID 등록(경로설정 주의)

수정이 완료되면 리스너 재시작

>$ lsnrctl stop

>$ lsnrctl start

 

리스너 스타트 성공

오라클 관리자 계정으로 startup해서 db시작

(NOMOUNT -> MOUNT -> OPEN의 과정을 거침)

># sqlplus “/as sysdba”

SQL> startup

 

2.3.3.   로컬에서 쿼리문 작성후 서버에서 확인

--PEOPLE 테이블 생성, 칼럼은 NAME 하나

CREATE TABLE people(

    NAME VARCHAR(100) NOT NULL

);

--NAME칼럼에 'Jhon' 데이터 넣기

INSERT INTO people(name) VALUES('Jhon');

--PEOPLE 테이블 확인

SELECT * FROM people;

--커밋

commit;

 

서버에 데이터가 성공적으로 저장됐다.

 

 

 

반응형
Comments