급하신 분은 보라색 글씨만 보시면 됩니다.
[# ] 표시 = root 계정으로 명령어 입력 / [$ ] 표시 = 사용자계정 (ex. oracle) 으로 명령어 입력
[:: ] 표시 = vi에디터 등에서 표시 이후의 내용을 타이핑하라는 의미입니다.
사전설정
11g 오라클은 오라클 엔진과 오라클 데이터베이스 파일이 같은 곳에 설치되는 것을 권장하지 않는다.
그리고 oracle home 디렉토리를 사용자의 홈 디렉토리와 같은 곳으로 하는 것 또한 권장하지 않는다.
그래서 파티션을 나눌때 /app 파티션을 만들고, /app 파티션에 오라클을 설치한다.
/home/oracle → 오라클 유저의 홈 디렉토리
--구--분--되--어--진--다--
/app/oracle → 엔진설치 베이스 (ORACLE_BASE)
/app/oracle/product/11g → 엔지설치 경로 (ORACLE_HOME)
/app/oracle/oradat/testdb/DB
/app/oraInventory
VMware 가상 컴퓨터 HDD용량 : 30GB 로 설정
파티션 정보
/ 5000
/boot 100
swap 2000
/var 1000
/home 1000
/app 나머지 → 오라클 설치공간
OS 환경설정 → 엔진설치 → 엔진패치 → DB생성
1.설치 파일 준비
p10098816_112020_LINUX_1of7.zip 부터 p10098816_112020_LINUX_7of7.zip 까지
1. 오라클 계정 및 그룹 생성
# groupadd -g 5000 dba
# useradd -g dba oracle
# passwd oracle
2. 설치 파일 복사
WinSCP로 /app 디렉토리에 설치파일을 복사한다.
WinSCP에는 위에 생성한 oracle 계정으로 접속하고, 복사할 경로의 소유자는 미리 oracle로 변경해 두어야 한다.
# chown -R oracle.dba /app
3. 오라클 11g 설치 파일 압축 풀기
# cd /app
# ls -l → 다음의 1~7번 파일이 제대로 복사 되었는지 확인
total 5032156
-rw-r--r-- 1 oracle dba 1322952768 Nov 21 12:05 p10098816_112020_LINUX_1of7.zip
-rw-r--r-- 1 oracle dba 1050532828 Nov 21 12:03 p10098816_112020_LINUX_2of7.zip
-rw-r--r-- 1 oracle dba 864428964 Nov 21 12:01 p10098816_112020_LINUX_3of7.zip
-rw-r--r-- 1 oracle dba 665723921 Nov 21 11:59 p10098816_112020_LINUX_4of7.zip
-rw-r--r-- 1 oracle dba 615198212 Nov 21 11:58 p10098816_112020_LINUX_5of7.zip
-rw-r--r-- 1 oracle dba 512243685 Nov 21 11:57 p10098816_112020_LINUX_6of7.zip
-rw-r--r-- 1 oracle dba 116762007 Nov 21 11:52 p10098816_112020_LINUX_7of7.zip
# unzip p10098816_112020_LINUX_1of7.zip && unzip p10098816_112020_LINUX_2of7.zip && unzip p10098816_112020_LINUX_3of7.zip && unzip p10098816_112020_LINUX_4of7.zip && unzip p10098816_112020_LINUX_5of7.zip && unzip p10098816_112020_LINUX_6of7.zip && unzip p10098816_112020_LINUX_7of7.zip
※ 참고
위의 경우처럼 한줄에 명령을 다 쓰기 길어서 부담 스럽다면 \로 줄바꿈을 할수 있다.
# unzip p10098816_112020_LINUX_1of7.zip \
&& unzip p10098816_112020_LINUX_2of7.zip \
&& unzip p10098816_112020_LINUX_3of7.zip \
&& unzip p10098816_112020_LINUX_4of7.zip \
&& unzip p10098816_112020_LINUX_5of7.zip \
&& unzip p10098816_112020_LINUX_6of7.zip \
&& unzip p10098816_112020_LINUX_7of7.zip
4. 관련 디렉토리 oracle 계정으로 소유권 변경
# chown -R oracle.dba /home/oracle
# chown -R oracle.dba /app
5. 설치 권장사항 확인 → 메모리,디스크,필수패키지 확인
5.1 메모리 → swap 메모리 확인. 램두배(최소1GB)
# grep SwapTotal /proc/meminfo
# free
5.2 디스크 → 디스크 확인. /tmp 디렉토리 1GB이상
# df -h /tmp
5.3 필수패키지 (32bit 리눅스5 기준)
아래 목록 모두 설치되어 있어야 함.
없는 패키지의 경우 OEL5 설치 DVD에 대부분 존재함.
경로 : /media/Oracle Linux Server dvd 20110119/Serverbinutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.137
elfutils-libelf-devel-0.137
elfutils-libelf-devel-static-0.137
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
numactl-devel-0.9.8.i386
sysstat-7.0.2
unixODBC-32bit-2.2.11
unixODBC-devel-2.2.11
# rpm -qa | grep binutils-2.17.50.0.6
binutils-2.17.50.0.6-14.el5
# rpm -qa | grep compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3-61
# rpm -qa | grep elfutils-libelf
elfutils-libelf-devel-static-0.137-3.el5
elfutils-libelf-devel-0.137-3.el5
elfutils-libelf-0.137-3.el5
# rpm -qa | grep gcc-4.1.2
libgcc-4.1.2-50.el5
gcc-4.1.2-50.el5
# rpm -qa | grep gcc-c++-4.1.2
gcc-c++-4.1.2-50.el5
# rpm -qa |grep glibc-2.5
glibc-2.5-58
# rpm -qa | grep glibc-common
glibc-common-2.5-58
# rpm -qa | grep glibc-devel
glibc-devel-2.5-58
# rpm -qa | grep glibc-headers
glibc-headers-2.5-58
compat-glibc-headers-2.3.4-2.26
# rpm -qa | grep kernel-headers-2.6.18
kernel-headers-2.6.18-238.el5
# rpm -qa | grep ksh
ksh-20100202-1.el5_5.1
# rpm -qa | grep libaio
libaio-0.3.106-5
# rpm -qa | grep libaio-devel → 설치안됨
# cd cd /media/Oracle\ Linux\ Server\ dvd\ 20110119/Server/ → OEL설치DVD삽입후 진입
# pwd
/media/Oracle Linux Server dvd 20110119/Server※참고
CD삽입후 자동인식 되지 않는다면,
# umount /media/Oracle Linux Server dbd 20110119
# mount /media/Oracle Linux Server dbd 20110119
# rpm -ivh libaio-devel-0.3.106-5.i386.rpm
warning: libaio-devel-0.3.106-5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:libaio-devel ########################################### [100%]
# rpm -qa | grep libgcc-4.1.2
libgcc-4.1.2-50.el5
# rpm -qa | grep libgomp
libgomp-4.4.4-13.el5
# rpm -qa | grep libstdc++
compat-libstdc++-33-3.2.3-61
compat-libstdc++-296-2.96-138
libstdc++-devel-4.1.2-50.el5
libstdc++-4.1.2-50.el5
# rpm -qa | grep make-3.81
make-3.81-3.el5
# rpm -qa | grep numactl-devel → 설치안됨
# rpm -ivh numactl-devel-0.9.8-11.0.1.el5.i386.rpm
warning: numactl-devel-0.9.8-11.0.1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:numactl-devel ########################################### [100%]
# rpm -qa | grep sysstat-7.0.2 → 설치안됨
# rpm -ivh sysstat-7.0.2-3.el5_5.1.i386.rpm
warning: sysstat-7.0.2-3.el5_5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:sysstat ########################################### [100%]
# rpm -qa | grep unixODBC-32bit-2.2.11 → 설치안됨
# rpm -ivh unixODBC-
unixODBC-2.2.11-7.1.i386.rpm unixODBC-kde-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm
# rpm -ivh unixODBC-*
warning: unixODBC-2.2.11-7.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:unixODBC ########################################### [ 33%]
2:unixODBC-devel ########################################### [ 67%]
3:unixODBC-kde ########################################### [100%]
※ 참고
rpm 설치 일괄적으로 확인하기 = 위의 확인과정 일괄 처리 방법 → 설치안된 것 표시됨
# rpm -q binutils-2.17.50.0.6-14.el5 compat-libstdc++-33-3.2.3-61 elfutils-libelf-devel-static-0.137-3.el5 elfutils-libelf-devel-0.137-3.el5 elfutils-libelf-0.137-3.el5 libgcc-4.1.2-50.el5 gcc-4.1.2-50.el5 gcc-c++-4.1.2-50.el5 glibc-2.5-58 glibc-common-2.5-58 glibc-devel-2.5-58 glibc-headers-2.5-58 compat-glibc-headers-2.3.4-2.26 kernel-headers-2.6.18-238.el5 ksh-20100202-1.el5_5.1 libaio-0.3.106-5 libaio-devel-0.3.106-5 libgcc-4.1.2-50.el5 libgomp-4.4.4-13.el5 compat-libstdc++-33-3.2.3-61 compat-libstdc++-296-2.96-138 libstdc++-devel-4.1.2-50.el5 libstdc++-4.1.2-50.el5 make-3.81-3.el5 numactl-devel-0.9.8-11.0.1.el5 sysstat-7.0.2-3.el5_5.1 unixODBC-2.2.11-7.1 unixODBC-kde-2.2.11-7.1 unixODBC-devel-2.2.11-7.1
6. Core Dump file 생성 설정
운영 중 위험한 상황이 발생 했을때 그 내역을 core dump에 저장해 둔다.
오라클 installer는 설치 중 이러한 core dump를 생성 할수 있는지 여러 파일을 체크한다.
/proc/sys/kernel/suid_dumpable
/proc/sys/fs/suid_dumpable
/proc/sys/kernel/core_setuid_ok
각 파일들의 설정 값이 1이어야 적용된다.
# vi /etc/profile
변경 전 : ulimit -S -c 0 > /dev/null 2 > &1
변경 후 : ulimit -S -c unlimited > /dev/null 2 > &1
# vi /etc/sysctl.conf
kernel.core_uses_pid = 1 → 추가
fs.suid_dumpable = 1 → 추가
7. 사용자 정보 수정 - 설치에 필요한 그룹과 사용자 추가
# groupadd oinstall
# groupadd oper
# usermod -g oinstall -G dba,oper oracle
※참고
-g 주그룹 지정 한개 oinstall
-G 보조그룹 지정 두개 dba,oper
8. 설치할 사용자의 Resource Limit 값 수정
# vi /etc/security/limits.conf
Oracle soft nproc 2047
Oracle hard nproc 16384
Oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
※ 확인법
- Nofile soft : $ ulimit –Sn / - nofile hard : $ ulimit –Hn
- nproc soft : $ ulimit –Su / - nproc hard : $ ulimit –Hu
- stack soft : $ ulimit –Ss / - stack hard : $ ulimit –Hs
9. 커널 파라미터 설정 → 내용 추가 후 저장. 공백, 대소문자 주의!!
# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 → 윗 내용 적용
10. .bash_profle 수정 → 기존내용에 아래 내용 추가 후 저장
# vi /home/oracle/.bash_profile
export EDITOR=vi
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11g
export ORACLE_SID=testdb
export LANG=ko_KR.eucKR
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/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
11. 사용자 인증 보안 → 기존 내용에 아래 내용 추가 후 저장
# vi /etc/pam.d/login
session required pam_limits.so
12. db_install.rsp 변경
# cd /app/database/response
# vi db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/app/oraInventory
SELECTED_LANGUAGES=en,ko
ORACLE_HOME=/app/oracle/product/11g
ORACLE_BASE=/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.optionalComponents= → 있는내용 지우기
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
oracle.install.db.isRACOneInstall=false
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
로그아웃 후, oracle 계정으로 로그인한다.
OS 환경설정 → 엔진설치 → 엔진패치 → DB생성
1. 설치
$ cd /app/database
$ ./runInstaller -silent -responseFile /app/database/response/db_install.rsp
Oracle Universal Installer 시작 중...
임시 공간 확인 중: 120MB 이상이어야 합니다.. 실제 1001MB 성공
스왑 공간 확인 중: 150MB 이상이어야 합니다.. 실제 2000MB 성공
다음에서 Oracle Universal Installer의 시작을 준비하는 중 /tmp/OraInstall2011-12-28_03-33-59PM. 기다리십시오.[oracle@server122 database]$ [WARNING] [INS-13014] 대상 환경이 일??선택적 요구 사항을 충족하지 않습니다.
원인: 일부 선택적 필요 조건이 충족되지 않았습니다. 자세한 내용은 로그를 참조하십시오. /tmp/OraInstall2011-12-28_03-33-59PM/installActions2011-12-28_03-33-59PM.log
작업: /tmp/OraInstall2011-12-28_03-33-59PM/installActions2011-12-28_03-33-59PM.log 로그에서 실패한 필요 조건 검사 목록을 확인하십시오. 로그 파일 또는 설치 설명서에서 필요 조건을 충족하는 적합한 구성을 찾아 수동으로 오류를 수정하십시오.
다음 위치에서 이 설치 세션의 로그를 찾을 수 있습니다.
/app/oraInventory/logs/installActions2011-12-28_03-33-59PM.log
루트 사용자로 다음 스크립트를 실행합니다.
1. /app/oraInventory/orainstRoot.sh
2. /app/oracle/product/11g/root.sh
Successfully Setup Software.
2. 설치 과정 log 보기
# tail -f /app/oraInventory/logs/installActions<tab> → <tab>키를 입력하면 목록이 나온다.
3. 설치 완료 후 root계정으로 스크립트실행
# /app/oraInventory/orainstRoot.sh
다음 권한 변경 중/app/oraInventory.
그룹에 대한 읽기, 쓰기 권한을 추가하는 중입니다.
월드에 대한 읽기, 쓰기, 실행 권한을 제거하는 중입니다.
그룹 이름 변경 중 /app/oraInventory 대상 oinstall.
스크립트 실행이 완료되었습니다.
# /app/oracle/product/11g/root.sh
Check /app/oracle/product/11g/install/root_server122_2011-12-28_16-04-23.log for the output of root script
4. 설치 확인
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Wed Dec 28 16:06:09 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
OS 환경설정 → 엔진설치 → 엔진패치 → DB생성
1. 패치생략 - 최신버전임
※ 참고
10g 까지 : 엔진 설치 → 패치로 업데이트를 할 수 있었다.
Ex) 10.2.0.1 → 10.2.0.5 패치 실행으로 업그레이드 가능
11g : 기존처럼 패치만 하는 것이 아니라 상위 버전의 설치파일이 따로 있다.
Ex) 11.2.0.1 --> 11.2.0.2 로 가기 위해서는 엔진을 새로 설치 하여야 한다. 현재로서는 패치가 없다고 생각 할 수도 있다.
리스너 구성
2011/12/26 - [Study/Oracle - 설치] - 리스너(Listener) 란?
1. netca.rsp 수정
$ vi /home/oracle/database/response/netca.rsp
LOG_FILE=""/oracle10gHome/network/tools/log/netca.log""
위의 내용 수정(주석제거 = #표시 제거해서 적용될수 있도록)
구성 과정을 log 로 남기고 싶다면, 위의 내용처럼 log 위치를 넣어준다.
OUI모드로 인스톨 시에는 netca.rsp 파일은 수정 안해도 무방하다.
2. 리스너 구성 (사일런트모드. 리눅스 GUI 환경에서 새터미널을 열고 $ netca 만 입력하면 EM이 뜬다. 쉽게 구성가능)
$ cd /home/oracle/product/10g/bin/
$ ./netca /silent /log /home/oracle/product/10g/network/tools/log/netca.log /responseFile /home/oracle/database/response/netca.rsp
----------- 리스너 구성 과정 텍스트 ----
Sun Dec 25 22:56:53 KST 2011 Oracle Net Configuration Assistant
명령줄 인수 분석:
매개변수 "silent" = true
매개변수 "log" = /home/oracle/product/10g/network/tools/log/netca.log
매개변수 "responsefile" = /home/oracle/database/response/netca.rsp
명령줄 인수 분석을 완료했습니다.
Oracle Net Service 구성:
프로파일 구성이 완료되었습니다.
포트에서 시작한 리스너:1521
Oracle Net 리스너 시작:
실행 중인 리스너 제어:
/home/oracle/product/10g/bin/lsnrctl start LISTENER
리스너 제어가 완료되었습니다.
리스너가 성공적으로 시작되었습니다.
리스너 구성이 완료되었습니다.
기본 로컬 이름 지정 구성을 완료했습니다.
Oracle Net Service 구성을 성공했습니다. 종료 코드는 다음과 같습니다. 0
※ 참고
리스너 상태 확인
$ lsnrctl status → 리스너 상태 확인
$ lsnrctl start → 리스너 시작
===============o r======================
$ lsnrctl
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 22-DEC-2011 15:31:12
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start → 리스너 시작
LSNRCTL> help → 명령어 보기
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start stop status
services version reload
save_config trace spawn
change_password quit exit
set* show*
OS 환경설정 → 엔진설치 → 엔진패치 → DB생성
1. dbca.rsp 편집
$ vi /app/database/response/dbca.rsp
GDBNAME = "testdb"
SID = "testdb"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET = "KO16MSWIN949"
NATIONALCHARACTERSET= "UTF8"
2. db 생성
$ dbca -silent -responseFile /app/database/response/dbca.rsp
데이터베이스 파일 복사 중
1% 완료
3% 완료
11% 완료
18% 완료
26% 완료
33% 완료
37% 완료
Oracle 인스턴스 생성 및 시작 중
40% 완료
45% 완료
50% 완료
55% 완료
56% 완료
60% 완료
62% 완료
데이터베이스 생성 완료 중
66% 완료
70% 완료
73% 완료
85% 완료
96% 완료
100% 완료
자세한 내용은 로그 파일 "/app/oracle/cfgtoollogs/dbca/testdb/testdb.log"을(를) 참조하십시오.
3. 로그확인
$ cat /app/oracle/cfgtoollogs/dbca/testdb/testdb.log
데이터베이스 파일 복사 중
DBCA_PROGRESS : 1%
DBCA_PROGRESS : 3%
DBCA_PROGRESS : 11%
DBCA_PROGRESS : 18%
DBCA_PROGRESS : 26%
DBCA_PROGRESS : 33%
DBCA_PROGRESS : 37%
Oracle 인스턴스 생성 및 시작 중
DBCA_PROGRESS : 40%
DBCA_PROGRESS : 45%
DBCA_PROGRESS : 50%
DBCA_PROGRESS : 55%
DBCA_PROGRESS : 56%
DBCA_PROGRESS : 60%
DBCA_PROGRESS : 62%
데이터베이스 생성 완료 중
DBCA_PROGRESS : 66%
DBCA_PROGRESS : 70%
DBCA_PROGRESS : 73%
DBCA_PROGRESS : 85%
DBCA_PROGRESS : 96%
DBCA_PROGRESS : 100%
데이터베이스 생성이 완료되었습니다. 자세한 내용은 다음의 로그 파일에서 확인하십시오.
/app/oracle/cfgtoollogs/dbca/testdb
데이터베이스 정보:
전역 데이터베이스 이름:testdb
SID(시스템 식별자):testdb
4. db 생성확인
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Wed Dec 28 16:39:32 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL>