'2010/02'에 해당되는 글 10건
- 2010/02/25 안드로이드 개발용 키트란다.. 30만원 가량하는데.. 멋시따..
- 2010/02/25 nslookup 사용법
- 2010/02/25 free
- 2010/02/25 안드로이드 입문서 3rd Edition 발행
- 2010/02/24 HeartBeat를 이용한 MySQL HA 구성
- 2010/02/23 mssql 테스트 할 수 있는 프로그램이란다
- 2010/02/18 조각모음
- 2010/02/04 시스템관리할때 유용한 프로그램들
- 2010/02/04 오라클 설치
- 2010/02/01 ip 변경하는 스크립트.. 좋은듯..
| total |
used | free | shared | buffers | cached | |
| Mem: | 2022 | 1420 | 602 | 0 |
64 |
1137 |
| -/+ buffers/cache: | 218 | 1804 |
||||
| Swap: | 1983 | 0 |
1983 | |||
| Total: |
4006 | 1420 | 2586 | |||
mem의 total : 물리적 메모리의 값(2G)
used : 물리적 메모리의 사용량
free : 물리적 메모리의 남은량
shared : ??
buffers : 버퍼영역으로 할당된 메모리
cached : 케시영역으로 할당된 메모리
-/+ buffers/cache의 used : 버퍼와 케시영역을 제외한 실질적인 사용량
free : 버퍼와 케시영역을 포함한 실질적인 메모리의 남은량(mem의 free, buffers, cached 의 값을 더한값)
http://www.kandroid.org/board/board.php?board=tnshopqna&command=body&no=138
인터넷이 발전하고, 인터넷을 사용한 서비스가 발전함에 따라 24시간 서비스를 운영하기 위한 각 서비스 제공 회사들의 노력은 증가하고 있다. 이에 발맞춰 애플리케이션뿐 아니라 DB 레벨에서도 더 좋은 성능으로 24시간 운영하기 위한 여러 가지 솔루션이 발표되고 있다. MySQL AB도 이런 요구에 부응하기 위해 HA를 위한 솔루션을 개발 중이며, HA 구성법도 여러 가지로 다양해지고 있다. MySQL Cluster를 이용해 구성할 수도 있고, MySQL Proxy, DRBD 등을 이용해 구성할 수도 있다. 이 글에서는 MySQL HA 구성 중에 MySQL Replication과 HeartBeat를 이용해 구성하는 방법을 설명한다.
MySQL HA 구성
HeartBeat를 이용한 HA 구성에는 다음과 같은 모듈이 필요하다.
● HeartBeat - 두 서버 사이에 Fail-Over를 가능하게 하는 모듈
● Mon - MySQL Instance의 서비스 가능 여부를 체크하는 체크 모듈
● MySQL Dual Replication - 원활한 Fail-Over 및 Fail-Back을 위한 Replication 구성
HeartBeat
HeartBeat는 Linux-HA 프로젝트 그룹에서 만든 모듈로서 리눅스 운영체제에서 고가용성을 제공한다. HeartBeat는 위에서 간단히 설명한 대로 두 서버 사이에 Fail-Over를 가능하게 하는 모듈로서 서버 사이의 Fail-Over 기능을 제공하고자 할 때 사용한다.
HeartBeat의 구성
HeartBeat를 설치하면 두 서버 사이에 즉, Primary로 설정된 서버와 Standby로 설정된 서버 사이에 주기적으로 메시지를 교환해 서버의 상태를 확인한다. 이때 주고받는 메시지를 ‘heartbeat’ 즉 한글로 ‘심장박동’이라고 한다.

<그림 1> HeartBeat 구성
HeartBeat는 Active로 사용 중인 Primary 서버와 Passive 상태인 Standby 서버 사이에 IP 관리 기능의 일환으로, VIP를 사용해 Active 상태인 Primary 서버에 장애가 일어나더라도 Passive 상태인 Standby 서버를 이용해 서비스가 진행될 수 있도록 한다.
애플리케이션에서는 VIP를 사용해 서버에 접근한다. 이때 VIP로 접근하는 애플리케이션은 HeartBeat 구성에서 Active로 설정된 Primary 서버에 자동으로 접근하게 된다. 만약 서버가 reboot되거나 문제가 발생해 사용하지 못하는 상태가 되는 경우 HeartBeat이 감지해 현재 문제가 발생한 Primary 서버가 아닌 Standby 서버를 Active로 전환해 서비스가 계속 이어지게 한다.

<그림 2> HeartBeat 감지 프로세스
HeartBeat의 특성 및 제약 사항
HeartBeat는 다음과 같은 특성 및 제약 사항을 가진다.
- 리눅스 서버상의 Fail-Over 기능을 제공하고 리눅스 운영체제에서만 사용할 수 있다. HeartBeat 모듈은 리눅스-HA 프로젝트 그룹에서 만든 모듈이기 때문에 리눅스 운영체제에서만 동작하는 모듈이다. 그렇기 때문에 다른 운영체제를 사용하는 시스템에서는 사용이 불가능하다.
- 간단한 설치로 사용이 용이하다.
- 시스템 레벨(System Level)이 아닌 애플리케이션 레벨(Application Level)에서의 Fail-Over는 할 수 없다. HeartBeat는 VIP를 이용해 두 개의 서버 사이의 특정 서버만 접근 가능하게 하는 모듈이기 때문에 시스템 레벨만 가능할 뿐 HeartBeat 자체적으로는 애플리케이션 레벨의 Fail-Over가 불가능하다. 즉, 애플리케이션 레벨의 Fail-Over를 위해서는 추가적인 모듈이 필요하다.
- HeartBeat 구성을 위한 추가적인 장비가 필요하지 않다. HeartBeat은 Active와 Passive를 사용하는 두 서버 사이의 설정으로 사용하는 모듈이기 때문에 추가적인 장비가 필요하지 않다.
Mon
Mon은 이벤트를 이용해 서비스에 대한 사용을 모니터링하는 모듈이다. Mon은 시스템을 ping 프로그램을 이용해 모니터링하는 것과 같은 간단한 경우에서부터 DB 서버에 대한 모니터링까지 가능한 모니터링 모듈로서 HeartBeat과 같이 쓰여서 리눅스 상에서 Fail-Over를 구현할 수 있는 모듈이다.
Mon의 구성 및 동작 프로세스
MySQL 프로세스의 감지를 위해 Mon을 사용하는 경우 <그림 3>과 같은 프로세스로 모니터링이 진행된다.

<그림 3> Mon 구성
먼저 Mon 실행 스크립트를 작성해 MON 프로세스를 띄운다. MON은 설정 파일(mon.cf)에 저장된 값을 이용해 주기적으로 mysql.monitor를 실행한다(mysql.monitor는 MySQL과 MSQL을 모니터링하기 위해 제공되는 스크립트인 msql-mysql.monitor의 이름을 수정한 것이다). mysql.monitor는 주기적으로 호출될 때마다 MySQL 프로세스를 체크하고, mysql.monitor가 체크시 MySQL 프로세스의 문제점을 확인하게 되면 bring-ha-down.alert를 호출하게 된다.
ring-ha-down.alert는 MySQL 프로세스 문제 시 동작하는 스크립트 파일로서 이 파일에서 Fail-Over를 위해 HeartBeat 모듈을 호출하게 된다. 즉, bring-ha-down.alert은 HeartBeat를 호출하는 스크립트로서 이 스크립트를 통해 HeartBeat와 연결되어 동작한다. 이 스크립트는 Mon 모듈에 속한 게 아니라 사용자가 직접 생성해야 한다.
Mon의 특성 및 제약 사항
Mon은 다음과 같은 특성 및 제약 사항을 가진다.
- 여러 가지 애플리케이션 및 하드웨어의 장애를 감지하는 모니터링 툴이다. Mon은 다방면에서 사용할 수 있는 모니터링 모듈로서 MySQL 프로세스뿐 아니라 MSQL 프로세스 모니터링, 그리고 각종 하드웨어 모니터링까지 가능한 모듈이다. 여기에서 우리는 MySQL에 대한 모니터링 기능 부분만 사용한다.
- 간단한 스크립트 작성으로 사용하기가 간편하다. 위에서 설명한 것과 같이 간단한 스크립트 작성으로 모니터링 시 문제 해결을 위한 여러 기능을 구현할 수 있고, 원하는 대로 사용할 수 있다.
- 실질적인 Fail-Over를 발생시키는 모듈이 필요하다. 앞서 설명한 대로 Mon은 모니터링 모듈이기 때문에 Fail-Over를 위해서는 Mon뿐 아니라 추가적인 모듈이 필요하고, 그래서 여기서는 Fail-Over를 위한 모듈, 즉 HeartBeat과 같이 사용한다.
MySQL Replication
MySQL Replication은 MySQL Server 4.0에서부터 사용 가능한 HA 솔루션으로 가장 쉽게 구성할 수 있고, 가장 많이 사용하고 있는 솔루션이다. MySQL Replication은 다른 특별한 설치 과정이 필요 없이 MySQL 서버의 설치만으로 사용할 수 있고 구성하기 쉽기 때문에 누구나 쉽게 설치해 사용할 수 있다. 또한 제약사항이 적고 구성하는 프로세스가 간단하기 때문에 여러 구성으로 사용하는 것이 가능하다.
Replication의 구성
MySQL은 <표 1>과 같은 Thread를 통해 Replication을 운영한다.MySQL은 <표 1>의 세 가지 프로세스를 비동기적으로 실행해 Replication이 진행되도록 한다.

<표 1> Thread를 통한 Replication 운영
Replication은 이 세 개의 Thread만으로 동작하며 다른 임의의 프로세스가 존재하지 않는다. MySQL Replication의 동작은 <그림 4>와 같이 설명할 수 있다.

<그림 4> Replication 프로세스 구성
Slave에서 start slave 명령어가 실행되면 Master와 Slave에는 각각 Binlog Dump Thread와 I/O Thread, SQL Thread가 생성된다. 그리고 Binary log가 생성될 때마다 Binlog Dump Thread는 Binary Log를 Slave로 보낸다. 이때 Slave의 I/O Thread는 받은 Binary Log를 Relay Log로 기록하게 되고, SQL Thread는 이렇게 새롭게 기록된 내용을 읽어서 Slave에서 실행하게 된다. HeartBeat를 이용한 MySQL Replication은 일반적인 Replication이 아닌 Dual-Master 구성을 사용한다.
Dual-Master Replication
두 대의 서버가 동시에 Master/Slave의 역할을 수행하는 구성을 의미한다.

<그림 5> Dual-Master 구조
이 구성은 두 대의 서버가 인스턴스로 Replicate되는 구성으로 동시에 두 대의 서버가 Master/Slave로서의 역할을 수행하는 구성이다.
● 특징
- 두 서버가 서로 Replication으로 연결된 구조로서 어느 서버에서든지 DML을 발생시켜도 다른 서버에 Replicate되어 전달된다. 두 서버가 동시에 Master이자 Slave이기 때문에 각 서버에서 발생된 DML은 다른 서버로 이동하게 되고, 결국 같은 DML이 두 서버에서 다 발생하게 된다.
- 두 대의 서버가 같은 스키마와 데이터를 가진 구조이다. 앞에서 설명한 대로 두 서버의 DML이 Replicate되어 양 서버에서 다 발생하기 때문에 같은 스키마와 데이터를 가진 구조가 된다.
● 장점
- HeartBeat/Mon을 이용한 HA 구성으로 사용할 경우 Fail-Over, Fail-Back에 유연한 대처가 가능하다. 이론적으로 두 서버가 동시에 Master와 Slave로 연결된 구조이기 때문에 단 방향으로 연결된 Replication 구조에 비해 Fail-Over, Fail-Back에 유연하게 대처할 수 있다. 물론, 안전한 Fail-Over, Fail-Back을 위해서는 Fail-Over, Fail-Back에 대한 프로세스는 간단하지 않다. 하지만, 단 방향 구조에 비해 그 프로세스는 간단하게 된다. 또한, HeartBeat에 의해 두 서버 중 하나의 서버만 실질적으로 서비스에 사용되기 때문에 뒤에서 설명할 Dual-Master 구조의 치명적인 단점에서 자유롭다.
- 어느 서버에 DML이 발생해도 다른 서버로 Replicate가 가능하다. 앞서 설명한 대로 양 방향으로 연결된 구조이기 때문에 두 서버 중 어느 서버에 DML이 발생해도 다른 서버에 Replicate되어 DML이 전달된다.
● 단점
- 두 서버에서 동시에 같은 데이터에 DML이 발생하는 경우 데이터의 불일치 발생 가능성이 높다. Dual-Master 구조의 특징으로 두 서버가 같은 스키마와 데이터를 가진다고 설명했다. 하지만 Dual-Master 구조는 그 구성에 치명적인 문제를 가지고 있다. 바로 DML 발생에 따라 데이터 불일치가 발생할 수 있다는 것이다.
- DML 분산이 되는 것처럼 착각할 수 있으나, DML 분산은 실질적으로 발생하지 않는다. Replication 동작 프로세스를 통해 알 수 있는 것처럼 Master에서 실행된 Query를 Slave에서도 똑같이 동작하게 해 데이터를 일치화시키는 솔루션이므로, 실질적으로 두 서버의 DML이 분산되는 것은 아니다.
Configuration
이제 앞에서 설명한 모듈들을 사용한 전체 구성에 대해 알아보도록 하자. 여기서는 Replication을 이용해 HA 구성을 하게 되는데, Replication 중 앞에서 설명한 Dual-Master Replication 구성을 사용한다.
|
Dual Master 구조에서의 데이터 불일치 케이스 |
|
Dual Master 구조에서 컬럼의 값에 동시에 DML 쿼리가 실행된다고 가정해 보자.
<그림 6> 현재 서버에 SQL문 실행
먼저 각각 서버에서 update 문이 실행되기 때문에 처음에 server1은 1, server2는 2로서 값이 변경된다. Commit이 진행된 후 Binary log에 작성되고 각각 서버에서 실행된 Query는 BinlogDump Thread에 의해 server2, server1으로 이동하게 된다.
<그림 7> Replication으로 넘어온 SQL 문이 다시 실행
그 후에 Replication으로 넘어온 SQL 문이 실행되는 경우 값은 다시 server1은 2로 server2는 1로 바뀌게 된다. 결국 server1의 값은 2로, server2의 값은 1로 남게 된다. |
HeartBeat + Mon
HeartBeat와 Mon은 모두 무료로 사용할 수 있는 모듈이다. HeartBeat은 서버의 Fail-Over 기능을 제공하고 Mon은 MySQL 프로세스를 모니터링하는 기능을 제공하기 때문에 두 개의 모듈을 함께 사용해야만 완전한 Fail-Over 기능을 구현할 수 있다.
● 특징
- 다른 특별한 기기 없이 모듈 설치만으로 Fail-Over가 가능하다.
- 안전한 구성을 위해 추가적인 스크립트 생성이 필요하다.
- 리눅스 운영체제에서만 사용이 가능하다.
Dual Master Replication + HeartBeat + Mon
MySQL은 Dual Master 구조로 데이터를 실시간으로 복제한다. Mon은 실시간으로 MySQL의 상태를 체크해 모니터링하고 만약 MySQL 서버에 문제가 발생하면 그것을 감지하고 HeartBeat를 호출해 Fail-Over가 이뤄지게 한다. Fail-Over가 일어난다 할지라도 애플리케이션에서는 VIP를 통해 접근하기 때문에 문제없이 서비스를 지속할 수 있다.

<그림 8> HeartBeat를 이용한 HA 전체 구성
이 구조에서 두 서버의 MySQL은 Dual Master 구조로 되어 있지만, HeartBeat 설정을 통해 애플리케이션은 VIP를 이용해 두 서버 중 하나의 서버에만 접근할 수 있으므로 구조적으로 가지는 Dual-Master의 문제점을 피할 수 있다. 여기서 설명한 HA 구성에서 문제 발생시 동작하는 프로세스를 정리하면 <그림 9>와 같다. 여기서 살펴본 HA 구성의 특징을 정리하면 다음과 같다.

<그림 9> HA 구성상의 감지 프로세스
● 특징
- Fail-Over를 하기 위한 별도의 장비가 필요하지 않다.
- Replication이 가능한 어떤 스토리지 엔진을 사용하든 구성할 수 있다.
- MySQL Community 버전 설치만으로 사용할 수 있다.
- 구성할 수 있는 두 대 중 한 대는 VIP를 사용해 서비스용으로 사용할 수 없다.
- Passive 상태의 Standby 서버를 물리적인 IP로 접근해 사용할 수는 있지만, 앞서 설명했던 Dual-Master의 데이터 불일치 가능성으로 인해 권장하지는 않는다.
- Fail-Over된 원인에 따라 Active로 사용하던 서버의 변경내역이 Replicate 되지 않을 수 있기 때문에, Replication에 대한 분석 프로세스가 추가되어야 한다. - 리눅스 운영체제에서만 구성할 수 있다.
- HeartBeat 구성의 제약으로 인해 Fail-Over가 발생하면 꼭 Fail-Back 진행을 해줘야 한다.
- DB 레벨의 Fail-Over는 Heart-Beat/Mon 조합으로 가능하게 되었지만, 세션 레벨의 Fail-Over는 구현되지 않았기 때문에, Fail-Over 발생 시 애플리케이션의 DB Connection을 refresh하는 작업을 해야 한다.
맺음말
여기서 설명한 내용은 MySQL에서 구현할 수 있는 HA 구성 방법 중 하나로서 현재 필자는 이와 같은 구성으로 구현해 서비스에 투입한 후 사용하고 있다. 여기에서는 자세한 설치법보다는 각각 모듈의 개념 및 프로세스 설명에 주안점을 두어 설명했다. 이와 같은 내용을 먼저 알아두고 실제 설치 작업을 진행한다면 훨씬 더 쉽게 구현할 수 있다.
필자소개
윤은경 joanney1@daum.net, mysqldba.tistory.com, blog.daum.net/joanney|다음커뮤니케이션 DB기술팀 MySQL Cell 소속. 대학 졸업 후 5년 동안 자바 개발자로 살다가, 갑자기 맘이 바뀌어 그 후 5년간 DBA로 살고 있는, 10년 차 직장인이 됐다는 게 여전히 믿겨지지 않는 IT 종사자이다.
참고자료
1. http://mon.wiki.kernel.org/index.php/Main_Page
2. http://www.linux-ha.org/
3. http://dev.mysql.com/doc/refman/5.0/en/replication.html
Title |
License |
OS |
내려받기 |
|
traceroute |
Free |
Unix |
|
|
Solaris 2.5 |
|||
|
Solaris 2.6 |
|||
|
arpwatch |
Free |
Unix |
|
|
Redhat7.0 RPM |
|||
|
Mandrake RPM |
|||
|
fping |
Free |
Unix |
|
|
ping plot |
Free/share |
Win95/98/NT |
|
|
prtraceroute |
Free |
Unix |
|
|
tcpnetview |
Free |
Win95/98/NT |
|
|
pingroute.pl |
Free |
Unix/Win |
네트워크 간의 Performance를 확인하는 Tool들입니다.
|
Title |
License |
OS |
내려받기 |
|
echoping |
Free |
Unix |
|
|
pchar |
Free |
Unix |
|
|
timeit |
Free |
Unix |
|
|
VitalAgentIT Client PC에서 인터넷 서버까지 네트워크 상황을 감시하며 속도 및 지연 그리고 피켓 손실들을 표시하여 준다. 전체적인 네트워크 현황에 대하여 alarm 기능을 제공하여 조치사항을 권고하여 주는 유용한 프로그램이다. |
Free |
Win95/98/NT |
|
Title |
License |
OS |
내려받기 |
|
cflowdCisco Netflow data를 이용하여 인터넷 트래픽 현황을 보여주는 프로그램이다. 해당 프로그램을 구동하기 위해서는 arts++ 프로그램이 필요하다. |
Free |
Unix |
|
|
flow toolscflowd와 마찬가지로 Cisco Netflow data를 이용하여 트래픽 현황을 파악하는 간단한 프로그램들의 집합이다. |
Free |
Unix |
|
|
IPTrafIPTraf 는 Linux를 위한 console 기반의 네트워크 통계 프로그램이다. IPTraf는 TCP 연결 패킷과 바이트 수, 인터페이스 통계치, TCP/UDP 트래픽 분석등 다양한 정보를 제공한다. |
Free |
Linux |
|
|
spyLinux기반의 프로토콜 ANALYZER |
Free |
Linux |
|
|
etherealUnix와 Windows를 위한 자유롭게 이용가능한 네트워크 network protocol analyzer 이다. 실제 네트워크 또는 수집된 파일로부터 데이터를 조사할 수 있다. |
Free |
Unix |
|
|
Redhat RPM |
|||
|
Mandrake RPM |
|||
|
Solaris 8 |
|||
|
Win95/98/NT |
Windows PC에서 인터넷 서비스 데몬을 올릴 수 있는 프로그램들입니다.
|
Title |
License |
OS |
내려받기 |
|
SolarWinds-TFTP-Server |
Free |
Win95/98/NT |
|
|
tftpd32 |
Free |
Win95/98/NT |
License 제약없이 자유롭게 이용가능한 각종 인터넷 client 프로그램들과 네트워크 관리를 위한 지원 프로그램들입니다.
|
Title |
License |
OS |
내려받기 |
|
Netlab |
Free |
Win95/98/NT |
|
|
PMG Toolkit |
Free |
Win95/98/NT |
|
|
PMG Toolkit 2.4(password : pmg97)
|
Free |
Win95/98/NT |
|
|
SolarWinds-Subnet-CalculatorIP address의 Subnet mask에 따른 host 갯수를 확인할 수 있는 프로그램이다. 복잡한 subnet 계산을 쉽게 해준다. |
Free |
Win95/98/NT |
|
|
TeraTerm |
Free |
Win95/98/NT |
|
|
TeraTerm SSH client |
Free |
Win95/98/NT |
|
|
qcheck_console1.3 |
Free |
Win95/98/NT |
|
|
qcheck_endpoint |
Free |
Win95/98/NT |
펌'd by 리눅스홀릭
10g XE free 버전의 경우에는 rpm을 제공하는군요.
http://otn.oracle.com 에서 테스트용도로 database 10g를 다운로드 받아 사용할 수 있다.
본 문서는 centos5에 오라클10g를 설치하고 테스트 할 수 있는 환경을 안내하는데 있다.
1. centos5 설치
가. 오라클은 설치에 xwindow환경을 사용한다.
나. 설치옵션에서 gnome, kde 환경 모두를 선택한다.
다. 설치옵션에서 "virtualisation", "Clustering", "Cluster Storage"는 선택하지 않는다.
다. 필요에 따라 개발 라이브러리를 추가한다.
라. 설치에 필요한 정보는 http://www.howtoforge.org 의 centos카테고리의 centos5 퍼펙트셋업 편을 참고한다.
마. 설치완료 후에 섹션을 KDE로 선택하고 로긴한다.(KDE환경에서 설치 권장)
바. 설치완료 후에 네트워크 환경이 제대로 잡혀 있어야 한다. /etc/hosts 등.
2. 다운로드
http://otn.oracle.com 에서 다운로드 함. -> 아이디가 있어야 함.(누구나 가입할 수 있음)
특정한 디렉터리를 만들고 그 안에서 압축을 해제 한다.
3. 설치 환경 설정(운영체제)
가. /etc/redhat-release
redhat-4
로 수정한다.(기존에는 centos로 되어 있다. 즉, 오라클설치에 레드헷으로 인식하기 위함이다.)
설치완료후에 원래의 형태로 다시 수정한다.(즉, centos5 등의 원래 테스트로...)
나. /etc/security/limits.conf
다음과같이 추가한다.
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
다. /etc/sysctl.conf
다음과 같이 추가한다.(커널 파라메터 수정)
//kernel.shmall = centos값 그대로 유지
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
설정 후 오류가 있는지 확인하기 위하여 /sbin/sysctl -p 명령어를 실행해본다.
error 메시지가 없고 설정파일만 보이면 성공이다.
라. /etc/pam.d/login
session required /lib/security/pam_limits.so
을 추가한다.
마. 추가 패키지 설치
rpm -qa setarch make glibc libaio compat-libstdc++-33 compat-gcc-34 gcc libXp openmotif compat-db
위에서 설치되지 않은 패키지는 yum 으로 설치
yum install 패키지명
바. 운영체제를 재부팅하여 에러가 없는지 확인한다.
3. 오라클 설치
가. 오라클 환경 설정
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
passwd oracle
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
mkdir -p /u02/oradata
chown -R oracle.oinstall /u02
(/u02 디렉터리는 gui환경에서 설치중에 오라클 DB데이터를 저장한다.
즉, 설치진행중에 이 디렉터리로 지정한다.)
나. 오라클 사용자 환경변수 설정
오라클 사용자로 하여(root사용중에는 su - oracle 명령어로 변경하여 사용)
현재 KDE (Xwindow)환경에서 작업해야 한다. (Xwindow환경에서 오라클은 설치가 진행됨)
오라클 사용자 기본디렉터리(예, /home/oracle/ )의
.bash_profile (ls -a 로 해야 이 파일이 보임)을 다음과 같이 편집
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
export DISPLAY=:0.0
다. 오라클 설치
root 사용자 권한에서 (KDE Xwindow 환경에서) kconsole등을 띄우고 작업
(# , $ 입력하지 않음)
# xhost +
# su - oracle
$ ./runInstaller (다운받은 오라클이 압축해제 되어있는 곳에서)를 실행
라. 설치진행 중 옵션(나머지는 디펄드 값으로 진행)
- Select Installation Method -> Advanced Installation 선택
- Specify Database Configuration Optins -> Database Character Set -> unicode standard UTF-8 AL32UTF8
- Specify Database Storage Option -> File System -> /u02/oradata (환경설정에서 만들었던 디렉터리)
- 설치 마무리 단계에서(이부분은 또하나의 kconsole 같은 것을 띄워서 root에서 실행해야 한다.)
Execute Configuration Scripts에서
두가지정도의 스크립트를 실행해야 한다.
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/ap/oracle/product/10.2.0/db_1/root.sh
각 해당 디렉터리에서 ./orainstRoot.sh , ./root.sh 를 실행(각 실행 파일 앞에 ./ 를 붙여 주어야 한다.)
마. 설치 마무리
설치가 종료되면 창을 닫고 테스트 하여 본다.
4. 오라클 중요환경 변수
/u01/ap/oracle/product/10.2.0/db_1/network/Admin 디렉터리에
네트워크 환경 변수들이 들어있다. (tnsnames.ora 파일등 ora파일)
인터넷에서 검색하여 자세한 정보를 학습한다.
5. 시작과 종료(오라클 사용자로 로긴하여)
- 이 때 부터는 Xwindow가 필요하지 않는다. /etc/inittab -> (5->3)으로 수정하여 사용하여도 무방
- 네트워크서비스(외부에서 접속하거나 외부로 서비스 할 때)
lsnrctl start / stop
- 오라클시작과 종료
sqlplus /nolog
connect sys as sysdba
패스워드
startup (오라클 시작)
shutdown immediate (오라클 종료)




