RadarURL

조회 수 1720 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

LGU+ 회사의 클라우드(cloudN) 환경의 가상머신(VM,Virtual Machine)에 oracle 11gR2를 설치해 보았다. 대개 서버 설치시에 X-window를 포함하지 않는 경우가 많으므로, java 와 GUI가 제공되는 그래피컬 환경(일반적으로 주로 사용하는 OUI 모드)이 아닌, 텍스트 기반의 서버 환경에서 설치를 진행한다(구글은 이 Silent mode를 침묵 모드라는 말로 멋지게 번역해 준다).


이론은 간단한 듯 하지만, 실제로 해 보면 결코 그렇지만은 않다. 특히 response 파일 설정에서, 다소의 시행착오와 installer 재실행을 몇 번 해 보아야 한다. 일단 한 번 해 보면 어렵지 않게 누구나 따라서 설치 가능하도록 소상하게 과정을 다루도록 하겠다.

 

다만, 서버에 오라클을 설치할 정도의 엔지니어라면 기본적인 Linux 서버의 사용법이나 소프트웨어 설치, 운영에 어느 정도는 기본 지식이 있을 것이라는 전제하에 기초에 해당하는 지식은 과감히 설명없이 넘어가려 함에 유의해 주자.


[사전 작업 - Prerequisites]


반드시 거쳐야 할 작업으로, 스킵하면 installer가 validate시에 칞젏하게 뱉어내 주며, 다음 단계로 진행할 수가 없다.


1. 커널 파라미터 조정

Oracle이 구동되기 위한 기본 설정이므로 아래와 같이 /etc/sysctl.conf 내에 설정하고 root 계정에서 sysctl -p로 실행해야 함을 잊지 말자.


# Mandatory prerequisite conditions


# semaphores: semmsl, semmns, semopm, semmni

kernel.sem = 250 32000 100 128


fs.file-max = 6815744

fs.aio-max-nr = 1048576


net.ipv4.ip_local_port_range = 9000 65500


net.core.rmem_default = 262144

net.core.wmem_default = 262144


kernel.core_uses_pid = 1

fs.suid_dumpable = 1


이 값은 최소한의 값이며 시스템의 상황에 따라 별도로 튜닝을 해 주어야 할 경우도 발생한다.

파라미터들의 값이 적절하지 않으면 installer가 log 파일을 통해서 상세하게 투덜거려 주므로 tail로 log 파일을 반드시 모니터링 하도록 한다.


fs.suid_dumpable 설정은 CentOS 버전에 따라 deprecated 되었을 수도 있으니 참고로 알아두자.


2. 의존하는 패키지 설치


yum install 명령으로 아래의 패키지들을 설치한다. x64 OS라 하더라도 i386에 해당되는 필수 패키지는 반드시 설치하여야 함에 유의한다.


zip.x86_64 unzip.x86_64

ksh.x86_64

perl.x86_64

binutils.x86_64 binutils220.x86_64

libaio.x86_64 libaio-devel.x86_64

libaio.i386 libaio-devel.i386

pdksh.x86_64

compat-libstdc++-33.x86_64

compat-gcc-34.x86_64

libstdc++.i386

libgcc.i386

elfutils.x86_64 elfutils-libelf.x86_64

elfutils-libelf-devel.x86_64

sysstat

unixODBC.x86_64 unixODBC-devel.x86_64

unixODBC.i386 unixODBC-devel.i386


3. VM 방화벽 설정


my.cloudn.co.kr 에 접속하여, Network Filter 메뉴에서 Oracle_sec_rule 와 같은 rule을 정의하고 등록한다. 기본적으로 linux VM이므로 ssh용 TCP 22, ICMP 등을 개방하여야 하며, 이에 덧붙여 Oracle에 접속할 PC나 서버의 IP와 TCP port(1521)를 등록하고 저장한다.


Security Group 메뉴에서 보안그룹을 등록하고, VM NIC그룹맵 수정 기능을 선택, Oracle이 설치되는 VM을 선택하고, 보안관리 드롭다운에서 위에서 등록한 rule을 선택, 운영대상여부를 체크하고 저장, 적용 여부를 묻는 질문에 '예'를 선택하면 방화벽 설정이 종료된다.


접속이 허용되도록 설정된 PC 등에서  telnet oracle_server_ip 1521 와 같이 명령을 실행하여 TCP 포트가 잘 개방되었는지 확인해 보자.


[설치 파일 다운로드, VM에 복사]


www.oracle.com 사이트에 가입하고 oracle 11gr2 에 해당하는 파일들을 다운로드 받는다.


linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip


* 참고: 보통은 오라클 설치 후 패치 파일 또는 패치셋을 애드온 개념으로 설치해야 하지만, 11gr2 linux판의 패치셋은 10g와 같은 이전 버전과 달리 '패치'가 아닌 '재설치', 즉 전체 설치방식(애들 말로 완전체...)이므로 만약 적용할 경우 기존 데이터를 반드시 백업해야 한다.


설치할 VM에 /home/data 디렉토리로 추가 디스크인 /dev/sdb1 을 마운트(/etc/fstab 파일에 설정)해 두고, oracle_zip_file 와 같은 서브디렉토리를 만들고 local PC에서 VM으로 복사해 넣는다. windows 계열의 PC에서 다운로드 받았다면 winscp 같은 훌륭한 무료 프로그램으로 linux 서버에 업로드 해 넣을 수 있다.

 

oraserver# mount -t ext3 /dev/sdb1 /home/data

mypc# scp -i ~/sec_key/mykey.pem linux.x64_11gr2_database_* root@vm_ip:/home/data/oracle_zip_files


[설치 준비]


root 계정으로 oracle계정과 그룹을 다음과 같이 생성한다.

# groupadd -g 5000 dba

# useradd -g dba oracle

# passwd oracle


Oracle inventory(log, 설치 실행을 위한 임시 작업 디렉토리)는 /home/oracle/oraInventory 로 하기로 한다.

# vi /etc/oraInst.loc

inventory_loc=/home/oracle/oraInventory

inst_group=dba


# chown oracle.dba /etc/oraInst.loc


# vi /etc/pam.d/login (라인 추가)

session    required     pam_limits.so


# vi /etc/security/limits.conf (라인 추가)

oracle       soft    nproc   2047

oracle       hard    nproc   16384

oracle       soft    nofile  1024

oracle       hard    nofile  65536


Oracle 데이터베이스의 실제 설치 위치(ORACLE_BASE)는 /home/data/oracle 로, 데이터베이스명(Global database name, ORACLE_SID)은 gdbora1으로 하기로 하자.

# su - oracle

# vi .bash_profile

export PS1="[\u@\H \w]\$ " # CentOS의 prompt를 바꿔둔다

export EDITOR=vi

export ORACLE_BASE=/home/data/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0

export ORACLE_SID=gdbora1

export ORACLE_TERM=xterm

export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

export ORA_NLS10=$ORACLE_HOME/nls/data

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

export PATH=$PATH:$ORACLE_HOME/bin

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export LANG=C


Oracle 설치를 위한 프로그램 파일, 스크립트, 설정 및 response 파일등을 저장할 위치는 /home/oracle/database 로 한다.

# cd

# unzip /home/data/oracle_zip_files/linux.x64_11gR2_database_1of2.zip

# unzip /home/data/oracle_zip_files/linux.x64_11gR2_database_2of2.zip # 현재 디렉토리에 database 디렉토리가 생성된다


[response(응답) 파일 작성 및 엔진 설치]


# cd ~/database/response

# cp db_install.rsp myresp.rsp


# vi myresp.rsp (아래에 해당하는 라인을 찾아서 편집한다)

oracle.install.option=INSTALL_DB_AND_CONFIG

UNIX_GROUP_NAME=dba

INVENTORY_LOCATION=/home/oracle/OraInventory

SELECTED_LANGUAGES=en,ko

ORACLE_HOME=/home/data/oracle/product/11.2.0

ORACLE_BASE=/home/data/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

oracle.install.db.config.starterdb.globalDBName=gdbora1

oracle.install.db.config.starterdb.SID=gdbora1

oracle.install.db.config.starterdb.memoryLimit=512

oracle.install.db.config.starterdb.installExampleSchemas=true

oracle.install.db.config.starterdb.enableSecuritySettings=true

oracle.install.db.config.starterdb.password.ALL=Oracle123

oracle.install.db.config.starterdb.password.SYS=Oracle123

oracle.install.db.config.starterdb.password.SYSTEM=Oracle123

oracle.install.db.config.starterdb.password.SYSMAN=Oracle123

oracle.install.db.config.starterdb.password.DBSNMP=Oracle123

oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE

oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/home/data/oracle/datadir

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/home/data/oracle/backupdir

DECLINE_SECURITY_UPDATES=true


2개의 터미널창에서 동시에 작업한다

# cd ~/database

# ./runInstaller -noconsole -silent -force -waitforcompletion -responseFile /home/oracle/database/response/myresp.rsp


다른 하나의 터미털창에서 runInstaller 가 보여 주는 로그 파일을 tail -f /home/oracle/oraInventory/logs/installAction....log 명령으로 관찰한다.


runInstaller가 성공적으로 동작하여 데이터베이스 엔진이 설치되었다면

......

INFO: Completed executing action at state

INFO: Waiting for completion of background operations

INFO: Completed background operations

INFO: Moved to state

INFO: Waiting for completion of background operations

INFO: Completed background operations

INFO: Validating state

WARNING: Validation disabled for the state finish

INFO: Completed validating state

INFO: Terminating all background operations

INFO: Terminated all background operations

INFO: Successfully executed the flow in SILENT mode

INFO: Finding the most appropriate exit status for the current application

INFO: Exit Status is -3

INFO: Shutdown Oracle Database 11g Release 2 Installer

와 같은 결과가 확인될 것이다.


[데이터베이스 기동 및 리스너 설정]


root 계정으로 작업한다.

# /home/data/oracle/product/11.2.0/root.sh


oracle 계정으로 DBA 상태로 접속해 본다

# su - oracle

# sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 26 15:55:58 2012


Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to an idle instance.


SQL> 


리스너를 기동할 준비를 아래와 같이 한다

# vi ~/database/response/netca.rsp (해당 라인 편집)

SHOW_GUI=false

LOG_FILE=""/home/data/oracle/product/11.2.0/log/netca.log""


# cd /home/data/oracle/product/11.2.0/bin/

# ./netca /silent /log /home/data/oracle/product/11.2.0/log/netca.log /responseFile /home/oracle/database/response/netca.rsp


리스너를 기동/정지해 보고 프로세스 상태를 점검하자

# lsnrctl stop

# lsnrctl start

# lsnrctl status

# ps -eaf | grep -v grep | grep oracle


[데이터베이스 스키마 생성, 연결 설정]


oracle 계정으로 작업한다.


# vi /home/oracle/database/response/dbca.rsp (해당 라인 편집)

GDBNAME = "gdbora1"

SID = "gdbora1"

SYSPASSWORD = "Oracle123"

SYSTEMPASSWORD = "Oracle123"

NATIONALCHARACTERSET= "UTF8"


# cd /home/data/oracle/product/11.2.0/bin/

# ./dbca -silent -templateName /home/data/oracle/product/11.2.0/assistants/dbca/templates/General_Purpose.dbc -responseFile /home/oracle/database/response/dbca.rsp

Copying database files

1% complete

3% complete

11% complete

18% complete

26% complete

37% complete

Creating and starting Oracle instance

40% complete

45% complete

50% complete

55% complete

56% complete

60% complete

62% complete

Completing Database Creation

66% complete

70% complete

73% complete

85% complete

96% complete

100% complete

Look at the log file "/home/data/oracle/cfgtoollogs/dbca/gdbora1/gdbora1.log" for further details.


수행결과를 log 파일을 통해 확인해 보자

# cat /home/data/oracle/cfgtoollogs/dbca/gdbora1/gdbora1.log


리스너가 정상 작동하는지 확인한다

# lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 26-SEP-2012 16:50:24


Copyright (c) 1991, 2009, Oracle.  All rights reserved.


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                26-SEP-2012 16:40:38

Uptime                    0 days 0 hr. 9 min. 45 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /home/data/oracle/product/11.2.0/network/admin/listener.ora

Listener Log File         /home/data/oracle/diag/tnslsnr/vm00046-1/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host_ip_address)(PORT=1521)))

Services Summary...

Service "gdbora1" has 1 instance(s).

  Instance "gdbora1", status READY, has 1 handler(s) for this service...

Service "gdbora1XDB" has 1 instance(s).

  Instance "gdbora1", status READY, has 1 handler(s) for this service...

The command completed successfully


# sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 26 15:55:58 2012


Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> connect / as sysdba

Connected.

SQL> select status from v$instance;


STATUS

------------------------

OPEN


SQL> 



[클라이언트 접속 환경 설정과 그 이후...]


아래 링크를 통해 'instant client'를 다운로드 받고 OCI 를 설치하여야 한다.

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html


 설치 가능한 풀 버전은 아래 링크를 통해 다운로드 받을 수 있다.

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html


<주> Windows에서 Toad for oracle을 사용한다면 64bit용 instant client를 다운로드 받으면 oci.dll 이 로딩되지 않고 toad에서 oracle 접속이 되지 않는다. 이는  Quest software에서 여전히 32bit 버전의 toad.exe를 고수하고 있기 때문인데, 구글링 해 보면 registry 를 조작하는 방법으로 잘 정리한 문서들이 많이 있으니 참조해서 문제를 해결하자.


TNSNAMES.ora 편집 및 데이터베이스 접속에 대해서는 개발자 입장의 지식이고, 이미 많은 개발자들이 다루고 있는 부분이므로 본 포스팅의 성격과 맞지 않아서 생략한다.


출처 : http://bryans.tistory.com/74

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 930302
86 데이터베이스 [오라클] RAC(Real Application Cluster)이란? file JaeSoo 2023.05.01 132
85 데이터베이스 데이터베이스 튜닝 (DB Tuning) file JaeSoo 2023.04.27 388
84 데이터베이스 BCV (Business Continuance Volume) JaeSoo 2023.04.14 110
83 데이터베이스 MySQL Dump / Import (덤프 / 임포트) JaeSoo 2016.10.10 267
82 데이터베이스 mysql이 cpu를 많이 점유하고, DB와의 연결상태가 좋지 않을때 JaeSoo 2016.07.05 376
81 데이터베이스 [Oracle] Lock 확인 및 Lock 해제 JaeSoo 2016.03.28 680
80 데이터베이스 Mysql slow-query를 이용한 로그 분석 JaeSoo 2015.03.17 728
79 데이터베이스 Mysql 데몬 문제 해결 방안 (cpulimit) 2 JaeSoo 2015.03.17 937
78 데이터베이스 mysql 5.5.x my.cnf 참고 JaeSoo 2015.03.16 703
77 데이터베이스 Mysql Slow query log 등록 JaeSoo 2015.03.16 815
76 데이터베이스 MYSQL 성능 향상 정리 JaeSoo 2015.03.16 658
75 데이터베이스 MySQL Query Cache 사용법 JaeSoo 2015.03.16 742
74 데이터베이스 Mysql 에서 Got a packet bigger than 'max_allowed_packet' bytes 오류 JaeSoo 2014.12.25 955
73 데이터베이스 MySQL 내부 변수 max_allowed_packet JaeSoo 2014.12.25 612
72 데이터베이스 Mysql binary log 정리, 삭제 주기 설정 JaeSoo 2014.11.17 1187
71 데이터베이스 MySQL 로그 파일 관리 2 - 로그 파일 남기기 JaeSoo 2014.11.17 1279
70 데이터베이스 MySQL 로그 파일 관리 1 - 설정 JaeSoo 2014.11.17 1189
69 데이터베이스 MySQL Binary Log 지우는 방법 JaeSoo 2014.11.17 1257
68 데이터베이스 MySQL 설치/사용시 발생 에러 유형별 대처방법 JaeSoo 2014.11.17 6919
67 데이터베이스 Mysql 데이터 폴더의 mysql-bin.xxx 파일들 관련 삭제 및 초기화 방법 JaeSoo 2014.11.17 1149
Board Pagination Prev 1 2 3 4 5 Next
/ 5


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너