1. 운영 체제 요구 사항
O.S. : Linux Advanced Server 2.1 ( Redhat )
System Libraries : GNU C Library version 2.2
Operation System Patches : Oracle Install시 binutils rpm 변경
JRE : Sun JRE 1.3.1
JDK : Oracle HTTP Server Powered by Apache users Sun JDK 1.3.1 and Blackdown 1.1.8_v3
( Java = JRE & JDK )
2. 환경 설정
RHAS 2.1 설치 단계
설치CD를 부팅한 후, 하드웨어 유형에 따라 설치 모드 중 하나를 선택.
1) 다음과 같이 설치 모드의 항목이 나타난다.
- Install/upgrade in Graphical mode: <ENTER>
- Install/upgrade in text mode: text <ENTER>
- Low resolution mode: lowres <ENTER>
- Disable framebuffer mode: nofb <ENTER>
- Expert mode: expert <ENTER>
- Rescure mode: linux rescue <ENTER>
- Have adriver disk mode: linux dd <ENTER>
처음의 3모드는 비디오 카드 메모리가 낮고 모니터 해상도가 떨어지는 오래된 시스템들을 위한 것이다. Expert모드는 하드웨어 자동검색이 실패할 경우에 사용되는데, 설치 프로세스를 완전하게 제어할 수 있다. Rescue모드는 시스템이 하드 디스크를 부팅하지 못하고, 또한 부팅 가능한 플로피 디스크도 갖고 있을 않을 때 사용한다. Linux dd모드는 시스템이 Advanced Server CD에서 드라이버를 사용할 수 없는 새로운 하드웨어를 갖고 있을 때 사용한다. 새로운 하드웨어용 드라이버는 디스크로 구할 수 있다.
2) 다음 단계는 설치 과정에서 사용할 언어를 선택하는 것.
- English
3) 키보드 및 마우스 설정을 선택해야 한다.
( 시스템이 2버튼 마우스가 갖고 있다면 “시뮬레이트 3버튼 마우스”가 선택되어 진다.)
4) 다음 단계는 설치 유형을 선택하는 것.
- Advanced Server (9i R2 데이터베이스 설치의 경우 권장 )
- Custom ( 보다 자세하고 융통성 있는 패키지 그룹을 선택할 수 있게 해주지만, 시간이 많이 걸린다는 단점. “install all packages"를 선택하는 경우에는, /usr 파티션을 위해 약 6GB의 디스크 공간이 갖고 있어야 한다.)
5) 단계인 파티션 설정은 전체 설치 프로세스에서 가장 중요한 단계이다. 파티션을 잘못 선택하면 전체 성능이 나빠질 수 있다. 다음과 같은 옵션이 표시될 것이다.
- Automatic. (/와 /boot 파티션만이 만들어지고 교체는 거의 사용되지 않으므로, 사용하지 않는 편이 좋다.)
- Disk Druid (사용의 간편성과 유연성 때문에 이 옵션의 사용 추천 )
- fdisk ( 전문적인 fdisk 사용자들에게 적합한 옵션으로서, 이전 옵션과 동일한 기능과 유연성을 제공하고 있지만, 사용자 친화적인 인터페이스는 갖고 있지 않다.)
Oracle9i R2 데이터베이스의 단일 인스턴스가 배포되어 있는 시스템에서는 다음과 같은 파티션들이 OS 디스크(18GB) 상에서 권장되고 있다.
/ 2GB
/boot 64MB
/tmp 1GB
/usr 3GB (Advanced Server 설치를 위해서는 3GB, 모든 패키지를 설치를 위해서는 7GB)
/var 512MB
swap (최소한의 물리적 메모리의 크기, 500MB)
/home 2GB (필요한 경우 더 커질 수 있음)
/u01 7GB (Oracle Software)
/u02 7GB (Oracle Database)
6) 부트 로더에 대해서는 다음과 같은 옵션들이 선택 가능한데, 관리자의 전문성에 따라 LILO 또는 GRUB가 선택될 수 있다.
- GRUB
- LILO
- no boot loader
7) 다음 단계는 네트워크를 구성하는 것이다. 일반적으로 정적 IP주소는 Orarcle9i R2 데이터베이스가 배포되어 있는 서버에 할당된다. DHCP가 선택되면, 동일한 구성을 위해 네트워크 정보가 자동적으로 수집된다.
- DHCP
- Static IP (호스트 이름에 도메인 이름을 포함시켜 준다.)
설치 프로세스는 게이트웨이, 넷마스크, DNS 등에 대한 정보에 대해 물어 볼 것이다.
8) 요구 사항에 따라 높은 수준 또는 중간 수중의 보안 방화벽을 구성할 수 있다.
- High
- Medium
- No firewall
9) 추가 언어 지원
: 설치시 선택된 언어 이외에 추가적인 언어들을 선택하는 것이다.
10) 표준 시간대
: 적합한 표준 시간대 선택
11) 계정구성
(설치 시에는 “루트”만 생성하는 것이 좋다. 만약 설치 시에 다른 사용자들의 생성이 이루어지면, Advanced Server 설치가 동일한 사용자 이름을 갖는 그룹을 생성하게 되는데, 이는 바람직한 현상이 아니다.)
12) 패키지 그룹 선택
: 설치 후반부는 이 단계에서 만들어진 선택에 달려 있다. 다음과 같은 항목들이 선택을 위해 표시된다.
- GNOME
- KDE
- Software Development
- Check "select individual package" option
Oracle9i R2 설치는 몇 가지 이유 때문에 “Software Development" 패키지를 선택하는 것이 필수적입니다. 그것은 비동기 I/O, 낮게 매핑된 베이스 등의 Advanced Server 기능들을 활용할 때 뿐만, 아니라 설치 시간 중 Oracle을 재연결할 때에도 필요하다.
GNOME 및 KDE 패키지 그룹을 선택하는 것은 매우 유용하게 사용될 수 있다.
표준 Advanced Server 설치에 속하지 않는 추가 RPM 패키지를 선택하려면, “select individual package" 옵션을 선택하면 된다.
13) 그래픽 인터페이스 (x)구성
: 설치중인 서버가 데이터베이스 서버로 사용되고 있고, 또한 콘솔에 대한 엑세스가 제한된 상태에서 데이터 센터에 호스팅 되어지고 있다면, 이 구성은 하지 않아도 상관없다. 시스템에서 X를 구성할 필요가 있다면, 적당한 비디오 카드를 선택한 후에야 이 단계를 마칠 수 있다.
14) 부트 플로피 생성
: 선택 목록에서 “Create"를 선택하는 것은 언제나 좋은 생각이다. 생성된 부트 플로피는 시스템 복구 시에 유용하게 사용될 것이다.
- Create
- Skip
15) 모니터 구성
: 설치중인 서버가 데이터베이스 서버로 사용되고 있고, 또한 콘솔에 대한 엑세스가 제한된 상태에서 데이터 센터에 호스팅 되어지고 있다면, 이 구성은 하지 않아도 상관없다. 시스템에서 X를 구성할 필요가 있다면, 적당한 비디오 카드를 선택한 후에야 이 단계를 마칠 수 있다.
16) 로그인 콘솔 - 다음 옵션 중 하나를 선택할 수 있다.
- Graphical
root 사용자로 해야 할 작업 ( 크게 2가지 작업 )
Linux 커널의 설정
: Oracle 9i 서버의 SGA (System Gloal Area)를 수용하게 끔 Linux 커널 IPC (Interprocess Commuication)파라미터를 수정해야 한다. SGA를 수용하기 위한 적절한 공유 메모리가 설정되어 있지 않은 경우에 데이터베이스가 기동디지 않을 수도 있다.
1) ipcs 명령을 사용하여 현재 시스템의 공유 메모리와 세마포어 세그먼트, 그리고 그들의 각각의 식별자와 세그먼트를 확인한다.
2) 다음의 커널 매개 변수를 설정
- 공유 메모리 세그먼트의 최대크기 (SHMMAX)
- 시스템 내 공유 메모리 세그먼트들의 최대 개수 (SHMMNI)
- 사용자 프로세스 하나가 사용할 수 있는 공유 메모리 세그먼트의 최대 개수 (SHMSEG)
- 시스템 전체에서 할당할 수 있는 공유 메모리 세그먼트의 최대 개수 (SHMMNS)
허용 가능한 전체 메모리의 최대 값은 다은과 같이 얻어진다.
SHMMAX * SHMSEG
만약 하나 이상의 인스턴스를 인스톨 한다거나 init<sid>.ora 파일을 수정한다면 이 파라미터들을 변경해야 한다.
오라클에서는 시스템이 지원하는 한 가장 크게 설정하는 것을 권장한다. 그러나 너무 큰 값으로 설정하게 되면 시스템 부팅시 문제가 발생할 수도 있다.
Kernel Parameter 값의 확인 및 수정
: 먼저 root 사용자로 로그인하여 작업을 한다.
# cd/proc/sys/kennel
# cat sem
250 32000 32 128
위에서 나타나는 값은 SEMMSL, SEMMNS, SEMOPM, SEMMNI을 나타낸다. 위의 parameter value의 수정하는 command는 아래와 같다.
# echo SEMMSL_value SEMMNS_value SEMOPM_value SEMMNI_value > sem
그리고 shared memory parameter 값을 확인 하는 방법은
# cat shared_memory_parameter
수정하는 방법은 다음과 같다.
# echo 2147483648 > shmmax
현재 메모리 확인
# cat/proc/meminfo
위에서 수정한 값이 시스템이 startup하는 동안에 적용하기 위해서는 시스템의 init files에 적용하여야 한다. 시스템에 적용하는 방법에 관한 내용은 시스템 업체의 문서에 따라 작업을 한다.
Solaris인 경우, 아래의 방법을 사용한다.
# vi /etc/system
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=200
set shmsys:shminfo_shmseg=20
set shmsys:shminfo_semmni=200
set shmsys:shminfo_semmsl=200
set shmsys:shminfo_semmns=400
set shmsys:shminfo_semopm=200
set shmsys:shminfo_semvmx=32767
# touch /reconfigure
# reboot
리눅스는
# vi /etc/sysctl.conf
kernel.shmmax=2147463648
다음은 Oracle i9를 사용하기 위해 요구되는 최소한의 값이다.
---------------------------------------------------------------------
파라미터 권장값 설명
=====================================================================
SHMMAX 214783648 한 개의 공유 메모리 세그먼트의 최대크기
(바이트 단위로서, 2GB를 의미한다.)
SHMMIN 1 한 개의 공유 메모리 세그먼트 최소크기
(바이트 단위)
SHMMNI 100 공유 메모리 식별자의 개수
SHMSEG 4096 한 개의 프로세스에 연결될 수 있는 공유 메모리
세그먼트의 최대값
SEMMNS 256 시스템 내 세마포어의 개수
SEMMNI 100 시스템 내 세마포어 셋 식별자의 개수, SeMMNI는
어느 한 순간에 동시 사용될 수 있는 세마포어의
개수를 결정한다.
SEMMSL PROCESSES 한 개의 세마포어 세트에 존재할 수 있는 세마포어
파라미터값보다 최대개수. Oracle 프로세스의 최대 개수에 10개를
동일&크게설정 더한 값으로 설정한다.
SEMOPM 100 Semop call 당 operations의 최대 개수
SEMVMX 32767 세마포어의 최대 값을 결정한다.
---------------------------------------------------------------------
이러한 내용들을 커널에 반영시키기 위해서는 소스 패키지의 내용을 고친 후에 커널을 컴파일 해야 한다. 이 같은 작업에 대해서는 여기에서 자세히 설명할 수 없으므로, Linux 운영체제와 관련된 서적이나 문서등을 참조하기 바란다.
Network 확인
# ifconfig eth0 up 해당 IP Address
# ping 해당IP
Oracle 9i RAC 설치를 위한 선행 작업
Oracle 9i R2 설치 전에 섹션을 살펴 보자.
Oracle 9i Release 1 Database 설치 시의 재연결 문제
: 재연결 오류는 Red Hat Advanced Server에서 Oracle 9i R2 DB의 세 번째 CD를 설치 할 때 발생한다. 이 문제는 binutils-2.11.90.0.8-13.i386.rpm에 의해 해결 된다. 솔로션은 다음과 같으며 Metalink 및 OTN에서 얻을 수 있다.
1) 시스템에 있는 binutils의 기존 버전 정보를 백업해 두는 것이 좋다.
# rpm -qa|grep binutils(binutils-2.11.90.0.8-12)
시스템이 Red Hat Advanced Server로 설치되어 있다면, binutils-2.11.90.0.8-12 버전이 그것 위에 설치되어 있다.
2) binutils-2.11.0.8-13.i.386.rpm은 Oracle Metalink(ARU) 또는 OTN사이트에서 다운로드 할 수 있다. 시스템의 binutils는 다음과 같은 명령을 통해 업그레이드 되어 진다.
# rpm -Uvh --force binutils-2.11.90.0.8-13.i386.rpm
(binutils-2.11.90.0.8-13.i386.rpm 파일이름)
이 패치는 단지 설치 시의 문제점만 수정한다. 그러므로 일단 Oracle 제품이 설치되면, binutils의 저장된 버전으로 다시 돌아가는 것이 좋다. 예를 들어, 2.11.90.0.8-12로 복귀하고 싶으면,
# rpm -Uvh --force binutils-211.90.0.8-12.i386.rpm
앞으로 발생할 수도 있는 재연결 오류를 피하고 싶다면 다음과 같은 파일들을 수정하라.
‘-z defs'플래그는 모든 파일에서 제거되어야 한다.
$ ORACLE_HOME/bin/genclntsh
$ ORACLE_HOME/ldap/lib/ins_ldap.mk
$ ORACLE_HOME/ldap/lib/env_ldap.mk
$ ORACLE_HOME/sqlplus/lib/env_sqlplus.mk
이후 반드시 리부팅.
(system 쪽이라면 이쪽으로 설정한다.)
Database Administrator를 위한 그룹 생성
Linux에서 groupadd란 유틸리티를 이용하여 DBA라는 그룹을 생성하도록 한다.
( group : Oracle 사용할 때 사용할 소프트웨어를 그룹. ( DBA 그룹 ) )
예를 들면, 다음과 같다.
[root /]# groupadd -g 5000 dba
그룹이 잘 생성되었는 지 확인하려면 /etc/group 파일 내용을 통해 확인하면 된다.
위의 경우 파일내에 DBA라는 그룹명이 파일내에 추가되게 된다.
Oracle 소프트웨어를 설치할 계정 생성
Linux에서 useradd라는 유틸리티를 사용하여 Oracle계정을 생성한다.
생성전에 다음과 같은 것들을 결정해야 한다.
로그인 이름
- 무엇으로 결정해도 괜찮다.
이 설치 가이드에서는 일반적 많이 사용하는 Oracle계정을 이용한다.
디폴트 그룹 ID
- 위에서 생성한 DBA 그룹
홈 디렉토리
- 사용자의 홈 디렉토리.
ORACLE_HOME 디렉토리와 같을 필요는 없다.
로긴 쉘
- /bin/bash, /bin/sh, /bin/csh, /bin/ksh 등이 될 수 있다.
[root /]# adduser -g dba -d /home/oracle -s /bin/bash/ oracle
[root /]# passwd oracle
[root /]# mkdir -p /u01/oracle
[root /]# chown oracle:dba /u01/oracle
[root /]# mkdir -p /u02/oradata
[root /]# chown oracle:dba /u02/oradata
앞으로 설명하게 될 내용에서는 사용자 계정은 Oracle로, 이 사용자의 홈 디렉토리는 /home/oracle 이라고 가정한다. 해당 유저는 적절한 사용자 디렉토리를 갖는 계정을 생성하면 된다.
Oracle 사용자로 해야 할 작업
환경 변수 설정
: 다음과 같은 환경 변수들을 설정해야 한다.
이 값들은 사용하는 쉘 종류에 맞게 Oracle계정의 홈 디렉토리에 있는
.profile이나 .cshrc 등에 기록하도록 한다.
ORACLE_HOME
현재 설치하고자 하는 버전을 저장할 디렉토리.
LD_LIBRARY_PATH
Oracle 제품을 사용할 때 사용되는 Shared Library들의 위치 경로.
LD_LIBRARY_PATH가 $ORACLE_HOME/lib를 포함하게 지정한다.
ORACLE_SID
해당 DB 고유번호.
Oracle 서버 인스턴스의 이름인 Oracle System Identifier ( SID )를 지정한다.
PATH
Oracle 명령어.
다음을 포함하게 한다.
$ ORACLE_HOME/bin, /bin, /usr/bin
NLS_LANG
Oracle 언어.
Oracle 데이터베이스와 관련하여 언어 종류와 캐릭터 셋을 지정한다.
DISPLAY
Oracle Universal Installer가 구동하기 위해서 Severname name이나 IP address, X Server, Screen을 지정한다.
환경 변수 설정 예
: 다음은 환경변수 파일에 Oracle 설치 및 사용을 위해 설정한 환경 변수들의 예이다.
자신의 디렉토리에 맞게 고쳐다 쓰자.
## Environment variables for Oracle
export ORACLE_HOME=/u01/oracle/product/9.2.0
export NLS_LAND=AMERICAN_AMERICA.K016KSC5601
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_SID=ORA92
PATH=/bin:/usr/bin:/usr/sbin:/etc:/sbin:/usr/ccs/bin:/usr/bin/X11
PATH=$PATH:$ORACLE_HOME/bin:/usr/local/bin
export PATH
## CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
'[ Programing ] > Database' 카테고리의 다른 글
[Oracle 9i] Fundamentals 2 - Practice 3 (0) | 2010.03.23 |
---|---|
[Oracle 9i] Fundamentals 1 (0) | 2010.03.22 |
[Oracle] 잠긴 계정 풀기 (0) | 2010.01.31 |
[Oracle] SharedServer 및 Dispatchers 확인 (0) | 2010.01.29 |
[DB2] db2 lock 확인 (0) | 2010.01.29 |