PineTree/Diary2008. 4. 28. 08:26
반응형

자정 무렵 동네 케이블에서...

 

김희선 주진모 주연의 와니와 준하 가했다...

 

예전에 광주에 있을 때 제일극장에서 본건데

 

무척이나 시간이 빠름을 다시 한번 느꼇다...

 

아름다운 희선씨도 좋고...아름다운 영상도 좋고..영화 중간 중간에 애니메이션이 들어갔는데

 

그것도 좋다... 스케일 큰영화도 좋지만 이런것도 좋다..벌써 한 3번 봤넹..ㅋ

 

아 맞다.최강희도 나오고 조승우 데뷔작이 아니였을 까 생각이 드는데 조승우도 나온다.ㅋ

 

몸이 안조아 금요일 당직근무후 집에만 있게 되었다...그  덕에 오랫만에

 

영화를 다운 받아보았다..예전에 볼려구 했던...내사랑

 

이것도 보고 나서 가슴이 훈훈해져서 좋다..최강희가 여기도 나오넹...

 

최강희가 다소 엉뚱하지만 넘 귀엽다..물론 이연희도 귀엽다...

 

아..나도  사랑 하고 싶다...~~

반응형

'PineTree > Diary' 카테고리의 다른 글

20071101  (0) 2007.11.02
오 늘 은....  (0) 2007.08.04
오랫만에.....  (0) 2007.07.14
오랫만에...고향으로..  (0) 2007.05.10
지름신이......^^  (0) 2007.04.22
Posted by [PineTree]
ORACLE/ADMIN2008. 4. 26. 06:24
반응형
다국어 지원을 위한 데이터베이스 구축 방안
지금까지 유니코드와 오라클에서 지원하는 유니코드에 대해서 살펴보았다. 다국어를 지원 데이터베이스를 생성하기 위해서 오라클에서 지원하는 유니코드를 어떻게 사용해야 할까?
두 가지 방법이 있는데
하나는 유니코드를 데이터베이스 character set으로 지정해서 유니코드 데이터베이스를 구축하는 방법이고,
다른 하나는 데이터베이스 character set에 관계없이 NCHAR (National Character) 데이터타입을 이용하는 방법이다.
오라클 9i부터 NCHAR 데이터타입에 유니코드 character set을 지정할 수 있게 되었으므로 두 번째 방법은 9i부터 고려할 수 있는 방법이다.
 
방법 자체를 놓고 보면 아주 간단하다고 할 수 있다.
데이터베이스 생성시 데이터베이스 character set에 유니코드를 지정해서 char나 varchar2에 다국어를 저장하거나 데이터 베이스의 character set을 변경하지 않고 다국어를 저장할 컬럼을 NCHAR (National Character) 데이터타입으로 설정해서 다국어를 저장하면 된다.
그렇지만 방법을 결정함에 있어서 프로그래밍 환경, 마이그레이션의 용이성, 성능, 데이터 타입, 어플리케이션의 타입 등 많은 요소들을 고려해야 하기 때문에 결코 쉬운 일은 아니다.
 
이제부터 두 방법을 사용할 때 어떤 character set을 지정하는 것이 유리한가를 살펴보자.
유니코드 데이터베이스 구축하면서 지정 가능한 character set은 UTF8, AL32UTF8, UTFE이다.
UTF8과 AL32UTF8은 유니코드에서 지정한 UTF-8과 거의 동일 특성을 가지고 있는데 UTF8의 경우는 보충(supplementary) character가 6byte를 차지한다는 점이 다르다. UTFE는 EBDIC platform을 위한 것이므로 일단 논외로 하겠다.
남은 UTF8과 AL32UTF8 중에서 UTF-8과 동일한 특성을 지닌 AL32UTF8을 사용할 것을 권장한다.
AL32UTF8은 보충(supplementary) character가 4byte를 차지하므로 UTF8에 비해서 공간을 덜 차지하고 유니코드에서 정한 UTF-8과도 동일하기 - 유니코드3.1기준에 맞기 - 때문에 보충(supplementary) character를 처리하면서 data conversion의 부하가 발생하지 않기 때문이다.
 
NCHAR 데이터타입의 character set은 데이터베이스 생성시 NATIONAL CHARACTER SET에 지정된 값에 따르며 UTF8과 AL16UTF16을 지정할 수 있다.
UTF8은 가변 길이기 때문에 스토리지를 절약할 수 있지만 처리시 스페이스를 붙이는 부하가 생기며, AL16UTF16은 고정 길이이기 때문에 처리시 스페이스를 붙이는 부하는 없지만 스토리지의 낭비를 초래할 수도 있다.
따라서 저장한 언어가 주로 어느 나라 언어인지 성능과 스토리지 절약 중 어떤 것에 중점을 둘 것인가를 고려해서 결정해야 한다.
 
여러 고려 요소들을 떠나서 가장 이상적인 방법은
AL32UTF8을 database character set으로 정하고 UTF8을 지원하는 언어로 프로그램을 개발해서 character set conversion이 없이 데이터가 오가는 것이다.
---코리아인터넷 닷컴 --
반응형
Posted by [PineTree]
ORACLE/ADMIN2008. 4. 26. 06:22
반응형
오라클에서 유니코드의 사용

1. 컬럼의 데이터타입에 nchar, nvarchar2를 사용
기존 DB캐릭터셋 변경 없음
캐릭터셋 변환으로 인한 부하 발생

2, DB캐릭터셋을 유니코드로 변경(AL32UTF8)
캐릭터셋 변환으로 인한 부하 없음



OTN Forum > Translated Oracle Product >
http://otn.oracle.co.kr/forum/forum_open_list.jsp?forum_cate=tran


[TIP] characterset 선정시 주의 사항

한글을 지원하는 characterset 에는 아래의 것들이 있습니다.

KO16KSC5601
- 완성형
- 한글 2350자 지원

KO16MSWIN949
- 일명 확장완성형(MS에서 windows 에 만들어 놓은 codepage)
- 한글 11172자 지원
- 한글 순서가 뒤죽박죽(2350자의 KSC5601 에서 지원하는 글자는 가나다 순이지만 그 외 글자는 남는 코드 여기저기에 들어가 있음)
- 8.0.6 이상에서만 사용가능 (8.0.5 이하 버전과의 db link나 client 가 8.0.5 등인 경우는 문제가 발생)

UTF8
- Unicode의 CES 중 하나(구현방법중 하나라고 생각하면 될 듯)
- ascii는 1byte, 그 외 유럽쪽은 2byte, 아시아는 3byte(CJK)
- 한글 11172자 지원(고어도 지원) 및 가나다 순 정렬
=> '가'와 '나'의 차이와 '나'와 '다'의 차이가 같음. 제대로 된 전화번호부를 만들 수 있을 듯...

AL32UTF8
- Unicode의 CES중 하나(9i부터 나온 것으로 알고 있음)
- Length semantics로 하면 4 byte( varchar2(3 char) 로 하면 12byte, UTF8에서는 9byte로 알고 있음)
- UTF8과 한글지원 부분은 똑같은 것으로 알고 있음.
- 8i는 미지원이므로 db link나 8i client 사용시 정상적 처리 불가

* AL16UTF16 (논외)
- Unicode의 CES중 하나
- national characterset 에서만 선택가능
- 모든 글자를 2byte or 4byte로 표현

고로

용량을 줄이면서 한글표현 다하고 싶고 8.0.5는 없다면 ko16mswin949를,
한글 표현 제대로 하면서 가나다 순으로 제대로 정렬될 필요가 있으면서 8i와 전혀 연동할 계획이 없다면 AL32UTF8,
위와 같지만 8i가 껴있다면 UTF8로 하시는 것이 좋을 듯 합니다.



UTF8과 AL32UTF8의 차이점

Supplement Character(UTF8에서 4바이트 이상을 차지하는)를 사용하는 것이 아
니라, 일반적인 다국어라면 UTF8와 AL32UTF8의 차이점은 거의 없다고 보시면 됩
니다.

Oracle 캐릭터셋으로서의:
UTF8은 UNICODE 3.0만을 지원하며, 앞으로도 계속 그렇게 유지됩니다.

하지만, UNICODE라는 캐릭터셋 자체도 www.unicode.org에서 보시면 알겠지만,
계속 진화하고 있습니다. 그래서 오라클에서도 새로운 데이타베이스 버전이 나
올 수록 그 순간의 최신 버전의 유니코드를 AL32UTF8을 통해 지원하게 되는 것
입니다.

AL32UTF8은 따라서,
9.0.x : Unicode 3.0
9.2.x : 3.1
10.1.x : 3.2
10.2.x : 4.0

입니다.

AL32UTF8은 9i 이상에서만 식별이 되므로, 8i와 데이타베이스 링크를 사용해야
한다고 할 때에는 UTF8을 사용하는 것이 좋습니다. 아니면 적어도 NLS_LANG을
UTF8로 해 주어야 할 것입니다. 핵심은 구버전과의 호환에 주의해야 한다는 것
입니다. 그리고, National Character Set으로도 설정할 수 없습니다.

성능에서 서로 차이가 있다고는 볼 수 없습니다.





1. 일반적으로 UTF8이 AL16UTF16보다 느리다는 것은 맞습니다. 아무래도
Variable width charset이 Fixed-width charset보다 느릴 수 밖에요. 하지만 얼
마나 느린가에 대해서는 정확히 말씀드릴 수는 없습니다. 하지만 순수하게 한
글 데이타만 저장할 것이 아니라면 AL16UTF16의 경우 영문 데이타 처리에 공간
적 비용이 매우 큽니다. 그래서 일반적으로는 AL32UTF8 charset을 유니코드
charset으로 사용합니다.

2. Web page processing을 UTF8로 하신다는 것은 다국어 지원 클라이언트를 원
하시는 것으로 받아들여집니다. 당연히 데이타베이스는 유니코드 기반의 데이타
베이스를 사용하셔야 합니다. 한글만 처리할 경우에는 Web Client 자체가 유니
코드 기반일 필요는 없겠지요. 그렇다고 안 되는 것은 아닙니다.

3. 그것은 KO16KSC5601 charset이 순수 한글만 포함된 것이 아니라 한자 4880
자, Hiragana 83자, katakana 86자를 포함하고 있기 때문입니다.

nvarchar2컬럼에 데이터입력
4. TO_NCHAR 또는 N''data''를 이용하시면 되겠습니다.
INSERT INTO ... VALUES(TO_NCHAR(''Data''), N''Data'',..);



UTF8과 KO16KSC5601은 성능 이외의 중요한 차이점이 있습니다.

KO16KSC5601은 한글 완성형(KSC5601)을 지원하는 캐릭터셋으로 한글 2350자, 한
자 4880자, 히라카나와 카타카나 53자를 포함한 캐릭터셋입니다. 2바이트를 원
하신다면 차라리 KO16MSWIN949를 선택하셔야 합니다. 운영체제는 전혀 상관없습
니다. 유닉스에서도 KO16MSWIN949를 문제없이 사용할 수 있습니다.

UTF8을 사용하면 공간 활용도가 줄어들 것입니다. 하지만 한글을 정렬해야 할
작업이 많은 경우 오히려 높은 성능을 보여줄 수 있습니다.

KO16MSWIN949는 상대적으로 공간을 절약할 수 있습니다. 하지만 한글 정렬시
UNICODE_BINARY로 정렬해야 하며 정렬의 성능이 좋지 않을 수 있습니다.

실제 트랜잭션들이 과도하게 몰려 바쁘지 않은 이상 한 트랜잭션에서 느낄 수
있는 성능의 차이는 크지 않습니다.

데이타에서 한글과 영문의 빈도, 사용자 수를 조사하시어 시뮬레이션 해 보신
후 결정하시는 것이 좋을 것 같습니다.




혹 유사한 고민을 하시는 분들이다 멀티랭귀지/멀티캐릭터셑 프로젝트를 하시는
분들께 도움이 될까 하여 결과를 올립니다.

-
1. 우선 멀티 랭귀지/캐릭터 셑을 지원하기 위해 캐릭터셑들의 슈퍼셑인 유니코
드를 DB charset으로 설정하셔야 합니다.

2. 사용자와의 인터페이스 부분 (웹서버든 WAS이든) 에 default charset을 설정
하실 수 있으니 UTF-8등의 유니코드로 설정 하십시오.
이때 http header에 setContentType등을 활용하십시오.

3. jdbc connection은 thin dirver이면 그냥, OCI driver라면 NLS_LANG=.UTF-8
설정하십시오.

위 과정으로도 어떠한 변환 없이 다국어/다캐릭터셑 입출력이 가능합니다.


이제 사용자와의 인터페이스가 유니코드를 지원하지 않는 경우에 대해 이야기
해 보면,

1. 사용자의 캐릭터 셋 정보로 default charset을 설정합니다. (이 방법은 런타
임시에는 변경하기 힘드므로 권장되지 않음)

2. http header의 charset 부분을 사용자 캐릭터 셑으로 변경 하십시오.

3. 일부 웹서버의 경우 input tx를 위해 request에 setCharactersetEncoding으
로 사용자 캐릭터셋을 설정하십시오. (default charset을 설정하는 웹서버의 경
우 header의 contenttype내 charset보다 default charset을 우선합니다. 이런 경
우 set해주세요)

위 과정으로도 다국어/다캐릭터 처리를 해줄 수 있습니다.
원본 : 오라클에서 유니코드 사용
반응형
Posted by [PineTree]
OS/LINUX2008. 4. 19. 02:16
반응형

channel bonding

 

채널 본딩이란 하나의 노드에 여러개의 network card를 하나의 IP로 묶어서 사용하는 방법을 말한다.

여기에는 두가지의 이점이 있다.

 

1. fault Fault tolerence

여러개 중 하나의 네트워크 카드가 고장이 났을때 나머지 끊어짐이 없이 이용이 가능하다.

 

2, load balance

여러개의 네트워크 카드를 이용하여 로드 밸런싱을 할 수 있다.

 

/etc/sysconfig/network-scripts/ifcfg-bond0 을 만들고 아래에 맞게 작성

DEVICE=bond0
USERCTL=no

ONBOOT=yes

IPADDR=*.*.*.*
BROADCAST=*.*.*.*

NETWORK=*.*.*.*
NETMASK=*.*.*.*

 

/etc/sysconfig/network-scripts/ifcfg-ethX (X는 랜카드 번호를 의미)

DEVICE=ethX
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes

BOOTPROTO=none

 

/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=testserver
GATEWAY=11.14.92.1

GATEDEV=bond0            <- 기본 GATEWAY DEVICE를 bond0으로 잡아준다.(만약을 위해 해주자!)

 

모듈올리기

# insmod /lib/modules/'uname -r'/kernel/drivers/net/bonding/bonding.ko miimon=1000 mode=6

혹은

# modprobe bonding miimon=1000 mode=6

 

insmod와 modprobe의 차이는 insmod 같은 경우에는 직접 모듈을 찾아 올려줘야하는 것이고

modprobe는 그와 달리 알아서(의존성이 걸린 모듈까지 전부) 찾아서 올려주는  명령어다.

 

확인

# lsmod

Module                  Size  Used by

bonding                65896  0

위와 같이 bonding이라는 모듈이 올라와 있으면 성공!

 

이후 자동(재부팅 시)으로 모듈을 올릴때

vi /etc/modprobe.conf

alias bond0 bonding
options bonding miimon=1000 mode=6

 

옵션

miimon

MII 링크 감시가 발생할 때 밀리(milli) 초 단위로 주파수를 기술한다. MII 링크 감시를 사용하지 않으려면 0 값을 준다. 100이 최초 시작할 때 적절한 값이 된다. 추가 정보를 위해서 고 가용성(High Availability) 부분을 참조하라. 기본값은 0 이다.

 

 

mode (기본값은 round-robin)

0

Round-robin 정책: 첫 번째 가능한 슬레이브부터 마지막까지 순차적으로 전송한다. 이 모드는 부하분산과 장애 감내를 제공한다.

 

1

Active-backup 정책: bond에서 하나의 슬레이브만 활성화된다. 다른 슬레이브는 활성화된 슬레이브가 fail된 경우에만 활성화 된다.

 

2

XOR 정책: [(출발지 MAC 주소와 도착지 MAC 주소의 XOR) modula 슬레이브 개수] 에 기초하여 전송한다. 이것은 각 도착지 MAC 주소에 대해서 동일한 슬레이브를 선택하게 된다. 이 모드는 부하분산과 장애감내를 제공한다.

 

3

Broadcast 정책: 모든 슬레이브 인터페이스에 모든 것을 전송한다. 이것은 장애감내를 제공한다.

 

5

transmit load 밸런스로써 보내는 패킷만 밸런스 한다.

 

4

802.3ad (link aggregation) – switch aggregation 그룹생성이 필요하다.

 

6

receive와 transmit 패킷을 밸런스 한다. 이때 5,6은 하나의 스위치에 있을때만 동작한다.

 

 

본딩이 잘 되고 있는지 확인 하는 방법

# cat /proc/net/bonding/bond0 

Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005) -> Bonding 버전

 

Bonding Mode: adaptive load balancing                         -> Bonding 모드
Primary Slave: None
Currently Active Slave: eth0                                     -> Active상태인 NIC
MII Status: up                                                       -> link 상태
MII Polling Interval (ms): 1000                                    -> fail시 전환
Up Delay (ms): 0
Down Delay (ms): 0

 

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:8b:b3:b0:88

 

Slave Interface: eth1
MII Status: down
Link Failure Count: 0
Permanent HW addr: 00:50:8b:b3:b3:5e

 

위 결과를 보면 eth0은 살아있고, eth1은 죽어있는 상태임을 알 수 있다.

 

# ifconfig

 

bond0   Link encap:Ethernet  HWaddr 00:50:8B:B3:B0:88 
          inet addr:11.14.92.86  Bcast:11.14.92.55  Mask:255.255.255.0
          inet6 addr: fe80::250:8bff:feb3:b088/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:191496 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118615 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:147344011 (140.5 MiB)  TX bytes:8709361 (8.3 MiB)

 

eth0    Link encap:Ethernet  HWaddr 00:50:8B:B3:B0:88 
          inet6 addr: fe80::250:8bff:feb3:b088/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:191497 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118617 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:147344071 (140.5 MiB)  TX bytes:8709541 (8.3 MiB)

 

eth1    Link encap:Ethernet  HWaddr 00:50:8B:B3:B3:5E 
          UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[출처] linux bonding|작성자 우주곰

반응형

'OS > LINUX' 카테고리의 다른 글

RPM src install  (0) 2008.06.24
rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
rpm으로 커널 업그레이드 하기  (0) 2008.03.12
[linux] CentOS4 XManager 연결 가능하게 하기  (0) 2008.03.10
Posted by [PineTree]
ORACLE/INSTALL2008. 4. 8. 01:06
반응형

Oracle 10.1.0.4 Update

 
지난번 포스팅시 마지막에 예고했었던 오라클 패치업데이트(10.1.0.2 에서 10.1.0.4) 에 관한 내용. 전제로 OS는 리눅스 환경이다.

예비서버의 오라클 패치를 끝내고 본서버와 교체후 이번에는 본서버의 패치를 실행했다. 2번째라 그런지 별 문제없이 끝났다. 다만 Enterprise Manager에서 트러블이 있었는데 이건 다음에 포스팅하겠음.


>> 10.1.0.2(혹은 10.1.0.3)에서 10.1.0.4로의 패치수순

0. HP유닉스, AIX의 경우는 방법이 일부 다르므로 오라클 홈페이지의 메뉴얼이나 KROWN문서를 참조해서 알아서 수정할것.

1. OiSC에서 패치파일(용량 571MB)를 다운로드해서 서버에 복사.

2. 패치를 실행하기전에 먼저 구패키지에 포함되어 있는 Oracle Database 10g Companion CD에서 Oracle Database 10g Products 인스톨 타입을 선택해서 인스톨을 해야한다. 이안에는 Java퍼포먼스를 향상시키는 Natively Compiled Java Libraries (NCOMP)가 들어있는데 이걸 인스톨하지 않으면 나중에 패치를 실행할때 "ORA-29558: JAccelerator(NCOMP) not installed" 라는 에러가 발생하며 더이상 패치 진행이 불가능하다.


3. RAC환경에서 운영시에는 CRS를 먼저 패치를 실행한 후 본 패치를 실행해야한다. CRS의 패치순서는 다음과 같다.
(1) 기존의 Oracle Database 10g 서비스를 전부 다음의 순서로 정지시킨다.
- srvctl을 사용해서 전노드의 모든 RAC인스턴스, 데이터베이스를 정지시킨다.
srvctl stop instance -d <db_unique_name> -i <inst_name_list> [-o <stop_options>]
srvctl stop database -d <db_unique_name> [-o <stop_options>] [-c <connect_str>]
srvctl stop instance -d SERAC -i SERAC1 -o immedate
srvctl stop instance -d SERAC -i SERAC2 -o immedate
srvctl stop database -d SERAC -o immediate

- srvctl을 사용해서 전노드의 모든 ASM인스턴스를 정지시킨다.
srvctl stop asm -n <node_name> [-i <inst_name>] [-o <stop_options>]
srvctl stop asm -n togos-db1 -i +ASM1 -o immedate
srvctl stop asm -n togos-db2 -i +ASM1 -o immedate

- srvctl을 사용해서 전노드의 노드어플리케이션을 정지시킨다.
srvctl stop nodeapps -n <node_name>
srvctl stop nodeapps -n togos-db1
srvctl stop nodeapps -n togos-db2

- 다음 커맨드를 실행해서 모든 노드의 CRS프로세스를 정지시킨다.
# /etc/init.d/init.crs stop (솔라리스, 리눅스)
# /sbin/init.d/init.crs stop (HP유닉스)
# /etc/init.crs stop (AIX)

(3) 그밖에 혹시 ORA_CRS_HOME를 사용하는 어플리케이션, 프로세스가 존재한다면 모두 정지시킨다.

(4) 패치파일을 압축해제한 디렉토리에서 runInstaller를 실행한다.

(5) 파일의 장소를 지정하는 화면까지 이동한다. 소스지정은 products.xml, 인스톨 장소는 기존 인스톨장소인 ORA_CRS_HOME를 선택한후 계속 진행한다. (데폴트는 이름은 OraCr10ghome1, 패스는 /u01/app/oracle/product/10.1.0/crs)

(6) 이후는 쭉 진행하다가 마지막에 커맨드모드에서 다음의 쉘파일을 모든 노드에서 루트권한으로 실행한다. (메세지에 나온다)
$ORA_CRS_HOME/install/root10104.sh

(7) 여기까지로 CRS패치는 모두 종료되었다. 이후 계속해서 데이터베이스의 패치를 진행하기 위해서 다음의 명령들을 실행해서 (1) 에서 소개한 커맨드들을 다시 실행해서 패치중 재기동된 오라클 서비스들을 정지시킨다. 작업이 끝나면 crs_stat -t 커맨드를 실행해서 전 노드의 리소스가 OFFLINE상태가 되었는지를 재확인한다.


4. EM가 기동중이라면 먼저 정지시킨다. (emctl stop dbconsole)

5. 패치파일의 runInstaller를 기동해서 파일의 장소를 지정하는 화면까지 이동한다. 소스지정은 products.xml, 인스톨 장소는 기존 인스톨장소인 ORACLE_HOME를 선택한후 계속 진행한다. (데폴트는 이름은 OraDb10ghome1, 패스는 /u01/app/oracle/product/10.1.0/db)

6. 쭉 순서에 따라 진행한 후 인스톨화면을 종료한다.


여기까지로 기본 패치 프로그램의 인스톨작업은 끝났다. 하지만 아직 전체작업이 끝난것은 아니다. 다음 작업들을 실행하지 않으면 데이타베이스가 에러("ORA-13516: SWRF Operation failed: CATPROC not valid")를 내며 기동되지 않으므로 계속 패치 수순을 진행한다.


>> 패치 인스톨 후의 작업

1. RAC환경의 경우 클러스터의 모든 노드에 대해서 노드어플리케이션을 기동시킨다.
srvctl start nodeapps -n <nodename>
srvctl start nodeapps -n togos-db1
srvctl start nodeapps -n togos-db2

2. ASM사용시에는 ASM인스턴스를 기동시킨다.
srvctl start asm -n <nodename>

srvctl start asm -n togos-db1
srvctl start asm -n togos-db2

3. sysdba권한으로 sqlplus에 로그인한다.
sqlplus / as sysdba

4. 데이터베이스를 기동한다.
SQL> STARTUP NOMOUNT

5. SHARED_POOL_SIZE, JAVA_POOL_SIZE 파라메터의 값을 다음과 같이 수정한다. 패치작업을 종료한후 원래대로 다시 수정해도 상관없다.
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='180M' SCOPE=both; (에러발생시 both대신 spfile)
SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='180M' SCOPE=both; (에러발생시 both대신 spfile)

6. RAC환경의 경우 CLUSTER_DATABASE 파라메터의 값을 FALSE로 수정한다. 패치작업이 모두 종료되면 다시 TRUE 로 값을 되돌려야 한다. 그렇지 않으면 RAC환경이 정상적으로 기동되지 않는다.
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile;

7. 수정한 파라메터를 반영시키고 새로운 업데이트를 실시하기위해 데이터베이스를 재기동한다.
SQL> SHUTDOWN
SQL> STARTUP UPGRADE

8. 다음의 커맨드를 실행한다.
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catpatch.sql
(머신파워에 따라 다르지만 내 경우 위커맨드는 실행후 종료까지 30분정도 걸렸다)
SQL> SPOOL OFF

9. 출력된 patch.log파을을 확인해서 에러가 발생하지 않았는지 확인한다. 에러가 발생했을 경우 문제점을 수정하고 다시 catpatch.sql 을 재실행해야한다.

10. 지금까지 문제가 없을경우 데이터베이스를 다시 재기동한다.
SQL> SHUTDOWN
SQL> STARTUP

11. 다음의 커맨드를 실행해서 INVALID스테이터스 상태가 된 PL/SQL패키지를 재컴파일한다.
SQL> @?/rdbms/admin/utlrp.sql
위커맨드 실행시 스탠다드 에디션의 경우는 OLAP관련의 INVALID오브젝트가 여전히 남게되나 이부분은 엔터프라이즈버전에서만 활성화되는 기능이므로 무시한다.

12. RAC환경의 경우 모든 노드에서 configPatch.pl 스크립트를 실행한다.
# perl $ORACLE_HOME/sysman/install/configPatch.pl
log4j: ERROR 가 발생하지만 무시한다.


이로써 10.1.0.4 의 패치작업은 모두 끝났다. 혹시나 발생할 문제점을 미연에 발견하기 위해 전노드의 재기동을 추천한다. 그리고 Enterprise Manager 기능에 관련해서 문제가 발생할 경우는 이를 수정하는것보다 EM을 삭제후 재설치하는 편이 훨씬 빠르다. EM의 재설치에 관련해서는 이전 포스팅 을 참조한다.


이상.

 

반응형
Posted by [PineTree]
ORACLE/ADMIN2008. 4. 2. 20:00
반응형

Writed by soya98 -- 2005.10.03 월 (soya98@naver.com)

(긁어가지 마시고 " 이 포스트를 내 블로그 담기"로 가져가세요!!

힘들게 정리한것입니다.)

 

OS       : CentOs

OACLE : 9.2.0.4

STATUS: 디비에 자료가 없는 거의 초기 상태에서 실행했다.

 

CentOs 에 설치한 오라클(9.2.0.4)이 한글이 깨지고 말썽이다.

인터넷을 돌며 찾아온 매뉴얼대로 했건만 그것도 믿지 못할 것이였으니..

(사실 믿지 못할 것들이다... 문서화된 책이 가장 신뢰감이 있지만 쩝.. 아쉬운대로..)

일단은 다 만든거 다시 깔기도 구찮고 해서 여러가지로 찾아본 결과 다음이 가장

정확한 답이였음을 알수 있었다. 

일단 중요한 데이타는 거의 없고 프로시져가 2개정도 생성되어 있었으면 테이블명 및

데이타 등은 숫자나 영문이였기에 과감히 실행을 했다.

 

==> 즉 데이타 보전은 확실히 못한다는 무시무시한 경고가 있었다.

 

(하지만 그렇게 많은 데이타들이 축적되기 전에 이런 문제가 벌써 발생 하지 않았을까 싶다.

이미 한글로 디비를 생성해서 보려고 한다면 한글은 다 깨졌을 것이고 이것은 데이타가 많이

쌓이기전에 즉, 오라클 데이터베이스를 생성한뒤 초기 설정에 해당되는 내용인것 이라고 추측 된다.)

 

==>바꾸고 보니 프로시저나 펑션에서 주석으로 깨진 한글 그나마 보이긴 하더라.

여전히 "옜옜옜" 과 같은 이해할수 없는 단어 들이였으나 ....

프로시져나 펑션들은 이미 만들어 놓은 것을 갖다가 올리는 것이므로 그다지 크게 문제될 것은 없었다. 또한 테이블의 데이타는 영문,숫자였으므로 그다지 변화가 없었다.)

 

다음은 서머리 내용!!

 

단.. 문제는 펑션이나 프로시져에 한글로된 주석이 있으면 한글표현은 되나 깨져서 보인다.

즉, 다시 올리고 나서 컴파일일 해줄것!!

( 위의 내용으로 추측가능한 것은 만약 테이블명이나 컬럼명 혹은 속에 있는 데이타가

한글이라면 아래의 내용을 실행하기 전에 반드시 해당데이타 등을 백업을 해주자. )

 

 

1. 오라클에서 한글이

??? 혹은 ¿¿ 식으로 깨지고 있었다.

 

예를 들면

 

SQL> select * from scott.emp;
select * from scott.emp
                    *
1행에 오류:
ORA-00942: ¿¿¿ ¿¿ ¿¿ ¿¿¿¿ ¿¿¿¿

 

2. 해당 메세지에 대해 찾아본 결과

Oracle 데이터베이스 생성시에 Character Set를 기본값으로 설정하게 되면 WE8DEC 로 설정

된다고 한다.!! 이런.. 메뉴얼에선 그냥 선택 하라고 했던게 화근이다.

 

토드 같은 툴로

desc props$ 를 입력한뒤 data 를 조회해 보자(보기가 깔끔해서 추천!!)

(혹은  sqlplus 나 ssh 같은 툴로

SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';

=>system ,sysdba 계정으로 조회가 가능하다.

혹은

select * from props$ where name='NLS_CHARACTERSET';

=>sysdba 계정으로만 조회가 가능하다.)

 

조회를 해보면 (그중 고쳐야 할 부분만 추려낸것이다.)

NAME                        VALUE$          COMMENT$

NLS_CHARACTERSET WE8ISO8859P1 Character set

와 같이 설정되어 있다.

제대로된 설정이라면(내가 원하는 제대로된 설정은 한글과 영문이

말그래도 "제대로" 보여지는 것이다.)

즉, VALUE$ 컬럼에 있는 값이 KO16KSC5601 혹은 KO16MSWIN949 이였어야 한다.

(보통은 KO16MSWIN949 을 많이 추천함

@_@ 참고 good!! KO16MSWIN949에 대해 설명이 쉽게 잘되있삼

http://cafe.naver.com/ramiyan.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=268

)

 

3. 이제는 바꾸어 보자!  WE8ISO8859P1 --> KO16KSC5601

(어짜피 한글사용을 하더라도 정확한 어법에 맞는것만 사용할것이기 때문에 

KO16KSC5601 를 선택했다.)

 

일단은  SSH 툴로 리눅스(CentOs) 에 원격 접속했다.(집에서 하느라 ㅡㅡ;;)

 

sqlplus "/as sysdba"

 

로 접속한다. 일단 디비를 셧다운 시킨뒤 마운트 상태에서 필요한 셋팅을 해주고

다시 디비를 구동한 다음에 캐릭셋을 변경하고 다시 셧다운 시킨뒤 스타트업으로 완전히

실행하는 방식이다. 아래와 같이 실행해 주자.

 

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> alter database character set internal_use KO16KSC5601;
SQL> SHUTDOWN IMMEDIATE; -- or NORMAL
SQL> STARTUP;

 

한글 캐릭셋

KO16MSWIN949
KO16KSC5601

 

유럽문자 지원 캐릭셋

WE8ISO8859P1

다른 자료들을 찾아보면

alter database character set internal_use KO16KSC5601;

부분이
ALTER DATABASE CHARACTER SET KO16KSC5601;

와 같이 되어 있다.

아래와 같은 방식으로는 절대 바꿀수가 없다.

 

ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

와 같은 메세지가 뜬다. 이것은

"새로운 캐릭터셋은 반드시 기존 캐릭터셋의 Superset이어야만 한다"

는 의미로 해석이 된다.아래 블로그에서 유용한 자료를 찾았다.

 이렇게 하지 않으면 데이타가 보존이 되지 않는다고 한다.

(http://cafe.naver.com/mudong.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=548

의 캐릭터셋 변경의 실제 부분참고)

4. 자 이제 제대로 됬나 확인해보자

다음과 같이 아무렇게나 에러메세지를 발생해보자

(우리의 주특기 아닌가??)

 

SQL> select * from scott.emp;
select * from scott.emp
                    *
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다

 

desc props$ 도 다시 해보자. 2번의 sql을 다시 해보자~

 

반응형

'ORACLE > ADMIN' 카테고리의 다른 글

다국어 지원을 위한 데이터베이스 구축 방안  (0) 2008.04.26
오라클에서 유니코드의 사용  (0) 2008.04.26
오라클 파라미터 관련 사이트 링크  (0) 2007.12.13
DATABASE LINK 사용법  (0) 2007.12.07
oracle lock  (0) 2007.08.14
Posted by [PineTree]
ORACLE2008. 3. 27. 02:31
반응형
특정 테이블을 사용하는 많은 sql 문장들이 있고, 이 문장들이 index를 제대로 타고 있는지 아니면 full scan 하는지를 아는 방법.
반응형

'ORACLE' 카테고리의 다른 글

오라클 12년도 교육 과정  (0) 2012.03.08
Oracle Shared Server 튜닝  (0) 2011.12.13
Oracle ERP에서 사용하는 DB관련 작업  (0) 2007.10.22
Oracle Database 학습법  (0) 2007.09.12
TOAD, DB 관리자의 ‘손과 발’  (0) 2006.11.03
Posted by [PineTree]
ORACLE/Backup & Recovery2008. 3. 14. 02:40
반응형

 

[Unix] 초간단 오라클 백업 스크립트 DB_Oracle 
2007/07/16 17:18

http://blog.naver.com/firstall/100039746941
 

#!/bin/bash
datetime=$(date +%Y-%m-%d-%H)

exp user/userpass file="/위치/화일이름_$datetime.dmp"
gzip /위치/화일이름_$datetime.dmp
find /위치/ -ctime +3 -exec rm -f {} ;
 
 
이렇게 한다면 백업 한후 3일 전의 데이타는 삭제가 됩니다.

 

 

 

 

###############################################################

 

 

 

 

오라클 자동 백업 스크립트 Oracle / DB2 
2006/08/25 21:32

http://blog.naver.com/snake0714/100027849339
 

오라클 자동 백업 스크립트   조회 (70)
 
DB 관련 | 2006/02/20 (월) 15:03   공감 (0)   스크랩 (0)   
 
 

오라클 백업 받는 방법을 앞에서 썼는데요
매일 그짓 할려면 짜증나죠...
자동으로 매일 백업 받도록 하는 방법에 대해서 써보겠습니다.
 
우선 크론(cron)에 대해서 공부를 하시기 바랍니다.
뭐 몰라도 아래를 따라해보는데는 문제가 없겠지만 ...모르고 하는거랑 알고 하는건 다르죠.
요즘의 리눅스에는 /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly 라는 디렉토리가
있습니다.
여기에 매일, 매주, 매월 자동으로 돌아갈 스크립트들을 넣어두면 알아서 실행해줍니다.
우선 스크립트를 먼저 보고 줄마다 설명을 붙여볼께요..
 
---------------------------------------------------------------------------------
#!/bin/sh
source ~oracle/.bash_profile
makeday=$(date +%y%m%d)
exp 아이디/비밀번호@ORACLESID file=/backup/$makeday.full.dmp full=y  log=/backup/$makeday.backup.log
cd /backup
gzip *
ntpdate  time.kriss.re.kr
---------------------------------------------------------------------------------
 
#!/bin/sh
우선 스크립트를 실행할 쉘을 설정해줍니다.
 
source ~oracle/.bash_profile
혹시 몰라서 오라클 환경 설정값을 불러올수 있도록 했습니다.
~oracle은 오라클이 깔린 기본 디렉토리이고, .bash_profile은 오라클 환경 변수들이
설정되어 있는 파일입니다.
 
makeday=$(date +%y%m%d)
makeday라는 변수에 날짜를 년월일로 세팅해줍니다.
 
exp 아이디/비밀번호@ORACLESID file=/backup/$makeday.full.dmp full=y  log=/backup/$makeday.backup.log
이게 핵심이죠...날짜별로 20031023.full.dmp, 20031023.backup.log 형식으로 파일이 생깁니다.
 
cd /backup
gzip *
용량때문에 압축을 해줍니다. 머 용량이 작으면 그냥 둬도 좋지만 그래도 아끼면 잘살죠..^^
 
ntpdate  time.kriss.re.kr
날짜를 맞춰줍니다.
 
위 스크립트를 /etc/cron.daily 아래에 넣어놓으면 매일 자동으로 일정한 시간(주로새벽)에
실행해줍니다.
마찬가지로 /etc/cron.weekly아래에 넣어놓으면 매주가 되고, /etc/cron.monthly아래는 매달이
되겠죠..
 
파일이름은 아무걸로나 해도 됩니다.

 

반응형
Posted by [PineTree]
OS/LINUX2008. 3. 12. 02:34
반응형

Download e http://www  .kernel.org/pub/linux/kernel/v2.4/

Download e http://www.netfilter.org/files/

Download e http://www.oltenia.ro/download/pub/linux/bridge/

[root@sunny SRPM]# rpmbuild --rebuild kernel-2.4.20-8.src.rpm

[root@sunny i386]# rpm -Uvh kernel-source-2.4.20-8.i386.rpm

[root@sunny i386]# rpm -Uvh kernel-BOOT-2.4.20-8.i386.rpm

[root@sunny i386]# rpm -Uvh kernel-doc-2.4.20-8.i386.rpm

[root@sunny tmp]# tar zxvf linux-2.6.5.tar.gz -C /usr/src/

[root@sunny src]# cd linux-2.6.5/

풀린 리눅스 커널 소스 디렉토리를 linux로 심볼릭 링크 합니다

[root@sunny src]# ln -s linux-2.6.5 linux

[root@sunny src]# cd /usr/src/linux

Patch 파일을 이용하여 커널을 Patch 합니다

[root@sunny linux]# patch -p1 < /usr/local/src/bridge-nf-0.0.8-against-2.6.5.ddff

[root@sunny linux]# make mrproper

Kernel Option 을 설정한다.

만약 콘솔모드에서 설정한다면 다음 명령을 이용한다.

[root@sunny linux]# make menuconfig

그리고 x-windows 모드에서 설정한다면 다음 명령을 이용하면 된다.

[root@sunny linux]# make xconfig


 

여기에서 변경해야 할 주요 항목은 Networking optionsNetwork device support 이다.

y는 커널에 포함시키는 항목이며, m module로 분리하며, n은 커널이나, module로 포함하지 않는 의미한다.

. Packet socket, Network packet filter (replace ipchains)+ Socket Filtering, + Unix domain sockets, + TCP/IP networking, IP: multicasting 이 부분을 내 시스템 보안과 네트워크 상태에 다라서 변경해 주어야 한다.

그리고 설정 내용을 저장해 주고 나온다.


 

컴파일을 위한 의존성 관계를 설정합니다

[root@sunny linux]# make dep

만약 이전에 커널 컴파일을 진행하였다면 이전에 수행했던 컴파일과정에서 생성된 오브젝트 파일(*.[oas]), 커널, 임시파일(.tmp*), 설정값(configure) 등을 삭제합

[root@sunny linux]# make clean

압축된 커널 이미지를 만듭니다. I(아이)를 대문자로 써야합니다.

[root@sunny linux]# make bzImage

Root device is (3, 6)

Boot sector 512 bytes.

Setup is 4991 bytes.

System is 1126 kB

Kernel: arch/i386/boot/bzImage is ready

기존의 module을 삭제합니다.

[root@sunny linux]# rm -rf /lib/modules/2.4.20-8/

[root@sunny linux]# make modules

[root@sunny linux]# make modules_install

모듈 사이의 의존성을 검사하여 /lib/modules 디렉토리 아래 modules.dep 파일을 만듭니다.

[root@sunny linux]# depmod -a 2.4.19

새로운 부트 이미지와 map 파일을 복사합니다.

[root@sunny linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.5.6

[root@sunny linux]# cp System.map /boot/System.map-2.5.6.map

부팅 하드 디스크가 SCSI 이라면 initrd 이미지도 새롭게 만들어야 합니다.

[root@sunny boot]# mkinitrd /boot/initrd-2.5.6.img 2.5.6

boot 디렉토리로 이동 후 기존의 심볼릭 링크된 부트이미지와 map 파일을 삭제합니다

[root@sunny linux]# cd /boot

[root@sunny boot]# rm -rf vmlinuz

[root@sunny boot]# rm -rf System.map

새로운 부트이미지와 map 파일로 심볼릭 링크를 합니다.

[root@sunny boot]# ln -s vmlinuz-2.5.6 vmlinuz

[root@sunny boot]# ln -s System.map-2.5.6 System.map

lilo 설정 파일을 수정합니다.

[root@sunny boot]# vi /etc/lilo.conf

prompt

timeout=50

default=linux   e default=linux-2.5.6

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

message=/boot/message

lba32

 

image=/boot/vmlinuz-2.4.20-8

        label=linux

        initrd=/boot/initrd-2.4.20-8.img

        read-only

        append="hdc=ide-scsi root=LABEL=/"

e 다음 내용을 추가

image=/boot/vmlinuz-2.5.6

           label=linux-2.5.6

           initrd=/boot/initrd-2.5.6.img

           read-only

           append="hdc=ide-scsi root=LABEL=/"

lilo를 실행하여 수정한 lilo.conf 설정파일의 설정을 적용시킨다.

[root@sunny boot]# lilo

Bridge Utils 설치

[root@linuxclub tmp]# rpmbuild --rebuild bridge-utils-0.9.3-8.src.rpm..rpm

[root@linuxclub ko]# rpm -Uvh bridge-utils-0.9.3-8.i386.rpm

[root@linuxclub ko]# rpm -Uvh bridge-utils-devel-0.9.3-8.i386.rpm

[root@linuxclub ko]# rpm -Uvh bridge-utils-debuginfo-0.9.3-8.i386.rpm

[root@sunny tmp]# tar xvfz bridge-utils-1.0.tar.gz

[root@sunny tmp]# cd bridge-utils-1.0

[root@sunny bridge-utils-1.0]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man

[root@sunny bridge-utils-1.0]# make

[root@sunny bridge-utils-1.0]# make install

iptables 설치

[root@linuxclub tmp]# rpmbuild --rebuild  iptables-1.2.7a-2.src.rpm..rpm

[root@linuxclub RPMS]# rpm -Uvh iptables-1.2.7a-2.i386.rpm

[root@linuxclub RPMS]# rpm -Uvh iptables-debuginfo-1.2.7a-2.i386.rpm

[root@linuxclub RPMS]# rpm -Uvh iptables-ipv6-1.2.7a-2.i386.rpm

[root@linuxclub iptables-1.1.2]# make

[root@linuxclub iptables-1.1.2]# make install
반응형

'OS > LINUX' 카테고리의 다른 글

rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
linux bonding  (0) 2008.04.19
rpm으로 커널 업그레이드 하기  (0) 2008.03.12
[linux] CentOS4 XManager 연결 가능하게 하기  (0) 2008.03.10
OpenVPN 사용하기  (0) 2008.03.03
Posted by [PineTree]
OS/LINUX2008. 3. 12. 02:32
반응형

http://cafe.naver.com/dgembedded4/288

 

kernel-2.6.17-1.2462.fc6.src.rpm 은 fedora에서 패치들을 쉽게 설치할 수 있도록 rpm으로 패키징해서 제공하는 것이다.
다운 로드 받을 수 있는 곳은 
http://download.fedora.redhat.com/pub/fedora/linux/core/development/source/SRPMS/
에서 최신 버전을 받을 수 있고,
http://download.fedora.redhat.com/pub/fedora/linux/core/
에서 원하는 fedora 버전에 따라 디렉토리를 찾아가 받으면 된다.

xxx.src.rpm형태의 파일은 xxx.rpm 파일처럼  # rpm -ivh(또는 -Uvh) xxx.rpm  명령어로는 간단히 설치 할 수가 없다.
rpm 개발자가 사용자들이 자신의 시스템에 맞게 리빌드 해서  사용 할 수 있도록  rpm 파일을 만드는데 사용된 소스를
함께 제공하는 형태다.  따라서 xxx.src.rpm은  자신의 시스템에 맞게 리빌드 해서 xxx.rpm 형태로 바꾼 후 설치를 해주
면 된다. 리빌드 방법에는 두가지가 있는데

1. 소스를 수정하지 않고 리빌드 해서 설치하기
2. 소스를 수정한 후 리빌드 해서 설치하기

첫번째 방법은 아주 간단하다. spec 파일이나 rpm 빌드 방법에 대해서 몰라도 다음 명령어들만 쳐주면 된다.
먼저 kernel-2.6.17-1.2462.fc6.src.rpm을 다운로드 받은 디렉토리도 이동한 후

# rpmbuild --rebuild kernel-2.6.17-1.2462.fc.6.src.rpm --target=i686 

명령을 실행시키면 i686 시스템에 맞는 RPM을 Redhat 리눅스 일경우  /usr/src/redhat/RPMS/i686 디렉토리에
kernel-2.6.17-1.2462.i686.rpm 파일명으로 만들어 준다. 그리고 이 디렉토리로 이동해서

# rpm  -ivh kernel-2.6.17-1.2462.i686.rpm

을 실행해주면 설치가 된다.  재부팅을 해보면 커널 선택 매뉴에 추가된것을 확인 할 수 있을 것이다.

두번째 방법은 조금 복잡한데 자세한 내용은 참고 문서와 책을 참고하기 바란다.   먼저

# rpm -ivh  kernel-2.6.17-1.fc6.src.rpm


  명령을 실행해 압축을 풀면(설치한다고도 한다) Redhat 리눅스 일경우  /usr/src/redhat/ 아래 SPECS와 SOURCES
디렉토리에 kernel.2.6.spec 파일과 소스파일들이 생성된 것을 확인 할 수 있다.
이렇게 했는데.. 디렉토리가 없니 어쩌니 라고 나오면.. 패키지를 하나 더 설치해야 한다. 우선 src.rpm이 설치 되야 하는
디렉토리가 있어야 하는데 없을경우 다른 곳에서 찾아야 한다. 그 필요한 디렉토리를 만들어주는 패키지가 rpm-build
패키지이다.  가지고 있는 시디에서 rpm-build 로 시작하는 패키지를 찾아서 설치하거나 인터넷에서 찾아서 설치하면 된다.
그런 후에 다시 다운로드 받은 src.rpm 을 설치하고
/usr/src/redhat/ 아래 SPECS와 SOURCES에 가보면 파일들을 볼 수 있다.
자기가 필요한 패치를 추가하거나 필요없는 것은 뺀 다음  spec파일을 수정해주었으면 SPECS 디렉토리로 이동해 다음
명령어로  rpm을 빌드해준다.

# rmpbuild -ba  kernel-2.6.spec --target=i686

빌드가 정상적으로 끝나면 ./RPMS/i686/ 과  ./SRPMS 디렉토리에
kernel-2.6.17-1.2462.i686.rpm 파일과 kernel-2.6.17-1.2462.i686.src.rpm  파일이 만들어 진것을 볼 수 있을 것이다.
첫번째 방법과 같이 ./RPMS/i686/이동해서 설치해주면 된다. 끝.


반응형

'OS > LINUX' 카테고리의 다른 글

linux bonding  (0) 2008.04.19
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
[linux] CentOS4 XManager 연결 가능하게 하기  (0) 2008.03.10
OpenVPN 사용하기  (0) 2008.03.03
REDHAT 9 설치후 기본 셋팅  (0) 2008.02.27
Posted by [PineTree]