[오라클]Slient Install 설치 절차
Silent Install을 사용한 오라클 데이터베이스 설치
가끔 다음과 같은 때가 있다. 오라클 데이터베이스를 설치해야 한다. 그런 데X터미널이 가능한 환경이 없다. 최근엔 노트북 가격이 많이 저렴해서 오퍼레이션 환경으로 사용되는 경우가 많은데 국내에서는 리눅스가 설치 된노트북을보기가드물다. 물론방법이없는것은아니다. 무료소프트웨 어인VMware 플레이어를설치하고적당한리눅스배포판을다운받아설 치하거나 cygwin 같은 오픈소스 소프트웨어를 사용할 수도 있다. 하지만 꼭그럴때에만인터넷이되지않는환경일때가많다.
한번OUI의setup을 실행시켜보자. DISPLAY가 설정되지 않았다는 둥, 지원하지않는환경이라는메시지만이돌아온다. 어떻게하는게좋을까? 또이런경우가있다. 오라클데이터베이스를사용하는애플리케이션을개 발 완료하였다. 이제 인스톨러를 개발해야 하는 단계에 접어들었는데, 오 라클 데이터베이스 설치는 어떻게 해야 할까? 어떤 방법으로든 애플리케 이션 설치 작업 중간에OUI 를 실행시켜 데이터베이스를 사용자가 직접 설치하도록해야하는가? 인스톨중간에자동적으로데이터베이스가설치 되게끔자연스럽게애플리케이션인스톨러에포함시키는방법이없을까? 답은 항상 있는 법이다. 위와 같은 상황에서 우리는 오라클 데이터베이스 의Silent Install 기능과 몇 가지 도구를 사용 함으로서GUI를 통하지 않 으면서도손쉽고빠르게데이터베이스를설치하거나삭제할수있다.
그럼 Silent Install을 통한 오라클 데이터베이스 설치 작업을 전체적으로 살펴보자. 설치는다음과같은작업순서로이루어진다고볼수있다.
작업은크게설치바이너리등의준비를포함하는준비와실제환경에설치 를진행하는두가지단계로나뉜다고볼수있다. 이순서는일반적인오라 클 데이터베이스 설치 순서로써 본 기사에서 언급하는 Silent Install이란 쉽게 말해 이러한 설치의 각 단계에서 사용하는 도구들을GUI 없이 가능 한자동화된방법으로사용하도록해주는것으로생각하면쉽다.
1. 바이너리 준비
준비단계는물론설치할환경용의스테이지바이너리를다운받는것으로 시작한다. 어떠한 경우에라도 설치 작업에서 가장 중요한 것은 설치할 환 경을정확히파악하는것이다. 충분한환경파악및준비없이설치를시작 하게되면커널파라메터의잘못된설정, 디렉토리권한부족등다양한원 인에의해한번의시도로는깔끔하게설치에성공하지못하게될가능성이 높다. 다시 언급 되겠지만 제품 설치 매뉴얼 상에 명시된 소프트웨어/하드 웨어 요구사항과 설치 전 작업 부분을 확인해서 실제 설치 전에 모든 오류 가능성을최대한배제해주는것이현명하다.
2. 데이터베이스 템플릿 준비
다음은 설치 후 생성해 줄 데이터베이스에 대한 준비이다. 목적하고 있는 설치 작업이 만약 기 운용중인 데이터베이스로부터의 마이그레이션 작업 이거나 개발한 애플리케이션의 부속으로서의 데이터베이스 설치라면 이 미구성이완료된데이터베이스를그대로새로설치될데이터베이스에옮 길필요가있을것이다. 이런목적으로사용될수있는것이바로데이터베 이스템플릿파일이며오라클데이터베이스유틸리티인DBCA(DataBase Configuration Assistant)를통해생성되거나사용될수있다. 템플릿파일은템플릿에포함시켜야할데이터가있는가의여부에따라두 가지중하나로선택될수있다. 선택된템플릿유형에따라다음과같은템 플릿파일을사용하게된다.
- 데이터를 포함하는 경우 : dbc, dbf 파일 - 데이터를 포함하지 않는 경우 : dbt 파일 |
데이터베이스를 생성하면서 메타데이터와 같이 선 입력되어야 할 데이터 가있다면dbc 파일템플릿유형을선택하면된다. 스키마는dbc 파일에저 장되며데이터는dbf 파일에압축되어저장된다. DBCA를사용한템플릿생성은다음과같은옵션을설정해야한다.
- createTemplateFromDB : 데이터베이스 생성 작업을 알리는 옵션 - sourceDB : 데이터베이스 소스 - templateName : 저장할 템플릿 파일명 - sysDBAUserName : DBA 계정 - sysDBAPassword : DBA 계정 암호 |
해당옵션을설정한후실행하면다음과같은화면을볼수있다.
dbca -createTemplateFromDB -sourceDB localhost:1521:orcl -templateName dbtemp -sysDBAUserName sys sysDBAPassword oracle1 Wed Dec 17 08:54:51 PST 2008 Creating a template from the database 10% complete 20% complete … 100% complete Look at the log file "/u01/app/oracle/oracle/product/10.2.0/db_1/ cfgtoollogs/dbca/silent.log" for further details. Wed Dec 17 08:55:03 PST 2008 |
이렇게생성된템플릿파일은다음의디렉토리에생성된다. <ORACLE_HOME>/assistants/dbca/templates 여기까지가준비단계이다. 애플리케이션을패키징하는경우라면애플리 케이션 바이너리와 스크립트등을 포함시키자. 오라클 데이터베이스 바이 너리와템플릿파일이준비가되었다면이제타겟시스템에설치준비가다 된것이다.
3. 설치 전 환경 점검
본격적인 설치 작업에 앞서 설치 환경에 대한 점검이 필요하다. 이러한 점 검사항은설치매뉴얼상에자세하게나와있지만일반적으로확인해봐야 하는내용중에는대표적으로다음과같은것들이있다.
- 다른 오라클 제품이 설치 된 것이 있는가? - 설치할 계정이 생성되어 있는가? - 충분한 디스크 용량이 확보되어 있는가? - 네트워크 구성이 되어 있는가 |
특히 사전에 다른 오라클 제품이 설치되어 있는 경우 OUI (Oracle Universal Installer) 가사용하는OraInventory 디렉토리의사용권한에 제약이걸리거나오라클홈이름이충돌할수가있으므로반드시파악을해 두어야 한다. 이러한 점검을 통해 설치할 계정, 바이너리를 설치할 위치 (ORACLE_BASE), 데이터베이스를 설치할 위치(ORACLE_HOME) 를기록해두자.
본기사에서는설치환경을오라클리눅스로가정한다.
4. 바이너리 복사
이제 타겟 시스템에 로그인하여 오라클 데이터베이스 스테이지를 업로드 하자. 업로드 위치는 중요하지 않지만 설치를 진행할 계정에게 실행 권한 을부여하는것을잊지말자.
5. 사용자 환경 설정
사용자 환경설정은 먼저 oraInst.loc 파일을 생성하는 것으로 시작한다. root 계정으로 접속하여 /etc 디렉토리에 다음의 내용을 포함하는 oraInst.loc 파일을생성해주고이파일에데이터베이스를설치할계정이 파일내용을변경할수있도록권한을부여한다.
> vi /etc/oraInst.loc inventory_loc=<ORACLE_BASE>/oraInventory inst_group= |
다음으로 사용자의 환경변수에ORACLE_BASE 를 설정해 준다. 만약 /tmp 디렉토리에400mb 이상의 영역이 확보되지 않았다면 별도의 적절 한영역을확보하여설정해준다.
> vi ./bash_profile $ ORACLE_BASE=/u01/app/oracle $ TMP=<mount_point>/tmp $ TMPDIR=<mount_point>/tmp $ export ORACLE_BASE TMP TMPDIR |
6. 오라클 데이터베이스 바이너리 설치
바이너리설치는Oracle Universal Installer (OUI) 에의해진행된다. 이 OUI 에서 제공하는 Silent Install이바로GUI 없이 오라클 데이터베이 스를설치를가능하게해주는기능이다. Silent Install을위해서는설치시 에 요구되는 오라클 홈, 경로 등 각종 입력 값을 미리 정의하고 있는 Response 파일을통해반드시제공해야한다. Response 파일에는다양한 항목이 명시될 수 있으며DBCA를 따로 호출할 필요 없이 기본 데이터베 이스생성도가능하다. 다음의위치에서오라클스테이지에포함되어있는 Response 파일샘플을열어볼수있다.
<ORACLE_STAGE>/response/enterprise.rsp <ORACLE_STAGE>/response/standard.rsp |
다양한 옵션 설정이 가능하지만 간단하게 데이터베이스 바이너리만을 설 치하는경우라면다음의사항들만입력하면충분하다. 설치하려는데이터 베이스종류에따라두파일중적당한샘플파일을복사, 수정하여사용한다.
FROM_LOCATION : 인스톨 미디어 위치. products.xml 파일의 절대경로 ORACLE_HOME : 오라클 데이터베이스가 설치될 위치 ORACLE_HOME_NAME : 오라클 홈 이름 INSTALL_TYPE : 설치하려는 데이터베이스 타입. SE 혹은 EE COMPONENT_LANGUAGES : 데이터베이스 바이너리의 기본언어 UNIX_GROUP_NAME : 설치 계정의 소속 그룹 n_configurationOption : 기본 데이터베이스를 생성할 것인지의 여부 |
위의 사항들이 포함된 Response 파일을 noconsole, silent, force 그리고 waitforcompletion 옵션들과더불어실행하면OUI 는사전환경점검을 수행하고오류가없으면그대로인스톨작업을시작한다.
> runInstaller -noconsole -silent -force -waitforcompletion -responseFile ./oui.rsp -monitorFile ./oui_monitor.log Starting Oracle Universal Installer... Checking installer requirements... Preparing to launch Oracle Universal Installer from /tmp/OraInstall2009-02- 12_10-05-22PM. Please wait ...Oracle Universal Installer, Version 10.2.0.1.0 Production Copyright (C) 1999, 2005, Oracle. All rights reserved. You can find a log of this install session at: /usr/oracle/oraInventory/logs/installActions2009-02-12_10-05-22PM.log |
옵션에서responseFile에는앞서작성한Response 파일을, Monitor파일 에는 설치 진행에 관련된 로그 파일들의 위치가 출력된다. 이러한 파일들 은현실행위치가경로로잡혀있지않다면절대경로로설정해주어야한다. 옵션으로지정한Monitor파일에는다음과같은메시지가출력된다.
> vi /usr/oracle/oraInventory/logs/installActions2009-02-12_10-05-22PM.log Installactionslog=<ORA_INVENTORY>/logs/installActions2009-01-09_02-09- 44AM.log silentlog=<ORA_INVENTORY>/logs/silentInstall2009-01-09_02-09-44AM.log outlog=<ORA_INVENTORY>/logs/oraInstall2009-01-09_02-09-44AM.out errlog=<ORA_INVENTORY>/logs/oraInstall2009-01-09_02-09-44AM.err |
<ORA_INVENTORY>는 일반적으로<ORACLE_BASE> 하위의 oraInventory 디렉토리이며 이곳에 설치 시작 시간을 기준으로 네 가지 로그파일이생성된다. InstallActionslog는설치에서진행된세부단계의 작업로그가출력되며outlog에서는좀더간결한방식으로출력된다. 그러 나가장유용한로그는silentlog로써 이곳에는 설치 작업 시도에 대한 요약된 결과만을 포함한다. 만약 Response 파일에 누락사항이 있거나 오류 가검출되는경우해당사항만이silentlog에출력되므로대처에용이하다. 다음은설치에성공했을때볼수있는silentlog 파일내역이다.
silentInstall2009-02-12_10-05-22PM.log WARNING:The following configuration scripts /usr/oracle/product/10.2.0/db_1/root.sh need to be executed as root for configuring the system. If you skip the execution of the configuration tools, the configuration will not be complete and the product wont function properly. In order to get the product to function properly, you will be required to execute the scripts and the configuration tools after exiting the OUI. The installation of Oracle Database 10g was successful. |
만약다른애플리케이션설치작업의일환으로데이터베이스의설치를포 함한다면 outlog 파일의 내용을 주기적으로 검사해서 데이터베이스의 설 치 진행 정도를 확인한 후 애플리케이션 인스톨러의GUI 에 반영시키는 형태의응용을고려해볼수있다. 마지막으로, root 계정으로다음의스크립트를실행함으로써바이너리인 스톨이마무리된다.
<ORACLE_HOME>/root.sh |
7. 오라클 리스너 구성
바이너리 인스톨이 완료되면 다음은 오라클 리스너를 설정하고 시작하는 단계이다. 오라클 리스너 구성은 NetCA (Network Configuration Assistant) 를 사용하게 되며 Silent Install이므로OUI 때와 마찬가지로 Response 파일을작성하여야한다. OUI 때와마찬가지로샘플Response 파일을수정하여사용하는것이좋다. NetCA Response 파일에필수적으 로명시해야하는내용은다음과같다.
SHOW_GUI : NetCA 화면이 뜨지 않게 한다. false 로 세팅한다. LOG_FILE : 표준 출력에 출력하는 내용을 지정한 로그파일에도 출력한다. |
작성된Response 파일을써서다음과같이NetCA를기동시킨다. silent, log 옵션을설정한다.
> $ORACLE_HOME/bin/netca /silent /log /responsefile netca.rsp Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /home/oracle/workspace/mystage/Ora10gCD/ netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: Configuring Listener:LISTENER Default local naming configuration complete. Listener configuration complete. Oracle Net Listener Startup: Running Listener Control: /usr/oracle/product/10.2.0/db_1/bin/lsnrctl start null Listener Control complete. Listener start failed. Listener may already be running. Default local naming configuration complete. Created net service name: EXTPROC_CONNECTION_DATA Profile configuration complete. Oracle Net Services configuration successful. The exit code is 0 |
작업이 완료되면 tnsnames.ora와 sqlnet.ora 생성되고 명시된 리스너가 구성된다.
8. 데이터베이스 생성
데이터베이스생성은준비단계에서설명된템플릿파일생성때와마찬가 지로 DBCA의 Silent Install 모드를 통해 수행할 수 있다. OUI 나 NetCA 와마찬가지로상세한설정을Response 파일에하고dbca를실행 하면 된다. Response 파일을 통해서는SGA 영역 설정 등 매우 상세한 내 용까지 설정이 가능하다. 각 항목에 대해서는 샘플 상에 주석으로 설명이 상세히되어있으니참고해보기를권장한다.
본 기사에서는 설치 단계에서 만들었던 데이터베이스 템플릿을 이용하여 데이터베이스를생성하고자한다. 먼저템플릿파일을다음의위치에복사 한다.
$ORACLE_HOME/assistants/dbca/templates/ |
템플릿을사용해서데이터베이스를생성하는경우dbca 에알려주어야하 는내용이최소화될수있으므로굳이Response 파일을만들필요는없다. 여기서는dbca의옵션을직접설정하여데이터베이스설치를진행한다. 다음은DBCA 실행 시에 사용자가 반드시 설정해 주어야 하는 옵션들이다. Response 파일을사용하는경우에도마찬가지로적용된다.
-templateName : 템플릿 파일 명 -gdbname : 글로벌 데이터베이스명 -sid : 데이터베이스 서비스 ID -sysPassword : sys 계정 암호 -systemPassword : system 계정 암호 -recoveryAreaDestination : 데이터베이스 로그 파일이 저장될 위치 |
이제 silent와 createDatabase 옵션을 설정하여 dbca를 기동하면 다음과 같이데이터베이스가생성되는과정을확인할수있다. 데이터베이스가설 치된후에는자동으로데이터베이스가시작된다.
> dbca -silent -createDatabase -templateName optbtemp.dbt -gdbname orcl.jwp.oracle.com -sid orcl -sysPassword oracle1 -systemPassword oracle1 - recoveryAreaDestination /usr/oracle/flash_recovery_area Creating and starting Oracle instance 1% complete Creating database files Creating data dictionary views 21% complete Adding Oracle JVM … Completing Database Creation … 100% complete Look at the log file "/usr/oracle/product/10.2.0/db_1/cfgtoollogs/dbca/orcl/ orcl.log" for further details. |
설치 된 후에 설치계정에ORACLE_SID 를 설정한 후 sqlplus로 접속해 볼수있다.
본설정에서는Enterprise Manager(EM)를사용하지않는데이터베이스 임베딩 환경을 가정하였다. EM 의 설치가 필요하다면 emConfiguration 옵션을추가해주어야한다.
결론
이상으로Silent Install을통한오라클데이터베이스설치방법을스텝바 이스텝으로훑어보았다. 보다상세한각설치과정에대한설명이나설치 전의 확인사항 등에 대해서는 반드시 설치 가이드(Oracle Database Installation Guide)를필독하기를권장한다. OUI의발전과더불어오라 클제품의설치는매우간단해졌지만여전히초심자들에게는어렵게느껴 질때가많으며또가끔GUI 기반의설치에부담을느끼는사람들도종종 보게될때가있다. 이런경우Silent Install 기능은설치과정을단순화하 고각과정에어떠한사용자입력이필요한지를한눈에파악할수있게함 으로써 오라클 데이터베이스의 구조 및 설치 과정에 대해 보다 쉽고 빠른 이해를도울수있다. 또한개발한애플리케이션의부속으로서데이터베이 스가임베딩이되는경우, Silent Install 기능을사용하여애플리케이션설 치과정에데이터베이스설치를자연스러운형태로포함함으로서전체설 치과정에대한통제권을확보할수있다. 이를바탕으로사용자실수, 환경 오류등다양한원인으로비롯될수있는설치오류에대해보다유연한대 처가가능할수있으며따라서애플리케이션의신뢰도와품질향상에기여 할수있을것으로희망한다.
11.31 설치시 OS버전에러시
./runInstaller -ignoreSysPrereqs
./runInstaller -noconsole -silent -force -ignoreSysPrereqs -waitforcompletion -responseFile /var/tmp/client/response/clientadmin.rsp -monitorFile /var/tmp/install.log
# oracle profile 수정
$ vi .profile
umask 022
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export ORACLE_SID=ORA10g #(instance_name을 지정한다)
export TMPDIR=$ORACLE_BASE/tmp
export TMP=$ORACLE_BASE/tmp
# export DISPLAY=hostname:0.0 #(runInstaller를 띄우기 위해 Display를 잡아준다)
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=AMERICAN_AMERICA.UTF8 #(DB Character set 지정)
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/sbin:/usr/ccs/bin:.:$PATH #<HP-UX 의 경우 추가사항>
# export SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib #< AIX 의 경우 추가사항>
export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/lib
export LINK_CNTRL=L_PTHREADS_D7
'01.오라클 > 005.DB 설치' 카테고리의 다른 글
[오라클]SID 선택 가능 .profile(UNIX ksh) (0) | 2012.12.19 |
---|---|
[오라클]스키마 및 오브젝트 생성 순서(스크립트 베이스) (0) | 2012.12.19 |
[오라클]RAC Cluster 구축하기 (0) | 2012.12.19 |
[오라클]DB Slient 설치 (0) | 2012.12.19 |
[오라클]11g RAC 설치 (0) | 2012.12.19 |