Village For DreamChasers....

블로그 이미지
by 건빵쥔곰
  • 13662Total hit
  • 1Today hit
  • 19Yesterday hit

'전체'에 해당되는 글 35건

  1. 2008/07/29
    PapiNom (Papico + NomNomNom) feat. DJ Koo, DaeKi Kim
  2. 2008/07/29
    JAVA , Signal Number
  3. 2008/07/28
    Best Seller ? Best Books?! Steady Seller? Good Books?!
  4. 2008/07/28
    하악 하악 - 이외수
  5. 2008/07/25
    여행지수 체크
  6. 2008/07/23
    2008.07.23
  7. 2008/07/21
    2008.07.21
  8. 2008/07/18
    The Secret - 론다번
  9. 2008/06/23
    vi-editor 명령어
  10. 2008/05/13
    CRS 와 10G REAL APPLICATION CLUSTERS
아아.. 듣지 말걸 그랬다 ㅠ_ㅠ
악마의 음악이야.. 제길슨........
삐삐리 빠삐코~

http://kr.youtube.com/watch?v=uafxMMN47to
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

최근 서버운영중 OutOfMemory 가 발생
해서 javacore dump 가 떨어 지는데 해당 signal 의 분석이 필요해서 웹을 긁었다.

/**  JAVA Signal */
다음은 헤더에 정의 되어 있는 Java Signal이다.

예외적으로 JVM의 하위 버젼에서는 Out Of Memory의 경우, 0, -1을 출력하는 것으로 알려져 있다.

/* Signals.  */
#define SIGHUP      1   /* Hangup (POSIX).  */
#define SIGINT      2   /* Interrupt (ANSI).  */
#define SIGQUIT     3   /* Quit (POSIX).  */
#define SIGILL      4   /* Illegal instruction (ANSI).  */
#define SIGTRAP     5   /* Trace trap (POSIX).  */
#define SIGABRT     6   /* Abort (ANSI).  */
#define SIGIOT      6   /* IOT trap (4.2 BSD).  */
#define SIGBUS      7   /* BUS error (4.2 BSD).  */
#define SIGFPE      8   /* Floating-point exception (ANSI).  */
#define SIGKILL     9   /* Kill, unblockable (POSIX).  */
#define SIGUSR1     10  /* User-defined signal 1 (POSIX).  */
#define SIGSEGV     11  /* Segmentation violation (ANSI).  */
#define SIGUSR2     12  /* User-defined signal 2 (POSIX).  */
#define SIGPIPE     13  /* Broken pipe (POSIX).  */
#define SIGALRM     14  /* Alarm clock (POSIX).  */
#define SIGTERM     15  /* Termination (ANSI).  */
#define SIGSTKFLT   16  /* Stack fault.  */
#define SIGCLD      SIGCHLD /* Same as SIGCHLD (System V).  */
#define SIGCHLD     17  /* Child status has changed (POSIX).  */
#define SIGCONT     18  /* Continue (POSIX).  */
#define SIGSTOP     19  /* Stop, unblockable (POSIX).  */
#define SIGTSTP     20  /* Keyboard stop (POSIX).  */
#define SIGTTIN     21  /* Background read from tty (POSIX).  */
#define SIGTTOU     22  /* Background write to tty (POSIX).  */
#define SIGURG      23  /* Urgent condition on socket (4.2 BSD).  */
#define SIGXCPU     24  /* CPU limit exceeded (4.2 BSD).  */
#define SIGXFSZ     25  /* File size limit exceeded (4.2 BSD).  */
#define SIGVTALRM   26  /* Virtual alarm clock (4.2 BSD).  */
#define SIGPROF     27  /* Profiling alarm clock (4.2 BSD).  */
#define SIGWINCH    28  /* Window size change (4.3 BSD, Sun).  */
#define SIGPOLL     SIGIO   /* Pollable event occurred (System V).  */
#define SIGIO       29  /* I/O now possible (4.2 BSD).  */
#define SIGPWR      30  /* Power failure restart (System V).  */
#define SIGUNUSED   31

#define _NSIG       64  /* Biggest signal number + 1
                   (including real-time signals).  */

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0
Alone Talk -

1. 매달 월급을 타고 나면 교보문고에 들러 살 책들을 둘러 본다.
가장 먼저 들리는 곳은 속칭 " 베스트 셀러 "
그러고 나서  전공 관련 서적인 IT > 소설 > 경영/경제 > 인문/철학/역사 > etc..

그렇게 한바퀴를 쭈~욱 들러 보면 대략 1~2시간 정도가 지나고
맘에 드는 책을 골라 읽기 시작하면 3~4 시간은 훌쩍 지나간다.
때로는 책만 골라 집으로 와서 인터넷을 통해 "클릭 클릭" 으로 끝낼 떄도 있긴 하지만 말이다..

그렇게 책을 고르고 사서 읽다 보면 가끔 고개가 갸웃 거리기도 한다.
Best Seller 라고 잘 팔리는 책들은 정말 좋은 책 일까? 아니 왜 Best Seller 인걸까 ?
출판사와 작가의 잘된 마케팅 효과인것인가? 정말 책이 좋은것 일까?
(물론 좋은 책의 기준은 사람마다 다르고 읽는 사람마다 다르다는건 기본적으로 인정 한다.)
라는 것이다.

2. 어제 인터넷을 뒤적이다가 한가지 기사를 읽었다.
"서울대 20년 이어진 마르크스 경제학  폐강"
뭐.. 기사도 기사지만 그 밑에 이어진 댓글들에 눈이 더 갔었다.

대충 몇몇 댓글들을 요약하자면
"공산주의의 학문을 서울대에서 왜 배우냐?"
"빨갱이들 양성소의 학문따위 진작에 폐강되었어야 한다"
VS
"학문의 산실인 대학에서 맑스 강의의 폐강 = 우리나라의 인문/사회는 이제 죽었다"

크게 댓글들이 이랬던것 같다.

하지만 난 이런 논쟁 자체가 어이가 없기도 하다.
기본적으로 정치 체제와 / 경제 체제에 대한 구분은 하면서 저런 댓글들을 적고 있는지?
적어도 마르크스 경제학 입문서를 한번이라도 읽어 보고 저런 댓글 놀이들을 하고 있는지?
자본주의의 산실이라고 할 수 있는 미국의 월가에서 공공연하게 나도는 말로  "맑스의 '자본론' 을 읽지
않고는 자본에 대해서 논하지 말라" 라는 것을 알고 있는지? (이 말에 대해서는 나도 확인한 바가 없으니
사실 유뮤에 대해서는 논외로 하겠다.. )

3. 역시 주저리 주저리 쓴글이라 정리가 되진 않지만..
그냥 재잘대다가 끝낼련다.. ㅋ
어디까지나 혼잣말이니까~



크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0
사용자 삽입 이미지


작가 이외수는 이 시대의 디지로그다.
아날로그적 감성과 디지털의 표현을 접합한 그의 신작 에세이.

짧은 에세이나 산문형식의 글을 기대하였던 독자에게는 다소 실망을 안겨 줄 수 있는
짧은 쿼터 형식의 글 이지만,
작가의 감성과 필체, 그리고 인생관이 고스란히 녹아 있는 출판작이다.

지하철에서 출 퇴근길에 혼자 피식 피식 웃어 대면서 읽느라 이상한 눈초리를 받긴 했지만
역시 이외수!! 라는 감탄사가 들게 만드는 재밌는, 그리고 해학적인 책




특유의 괴벽으로 인해 '바보 같은 천재', 혹은 '광인 같은 기인'으로 불리며 뚜렷한 개성의 문학 세계를 구축해온 작가 이외수의 신작 에세이. 거친 숨소리'를 뜻하는 인터넷 어휘 '하악하악'은 작가 이외수에 의해 은밀한 주문으로 변신한다. '팍팍한 인생을 거침없이 팔팔하게 살아보자, 하악하악!'

이외수는 2007년 3월 '플레이톡'(www.playtalk.net/oisoo)이라는 홈페이지를 개설한 후 매일 1~10회 가량 글을 올렸다. 이 가운데 네티즌들의 댓글행진을 끌어내며 뜨거운 호응을 얻었던 원고를 엄선하여, 화가 정태련의 세밀화와 함께 엮었다.

인터넷폐인으로 스스로를 '꽃노털(꽃미남처럼 사랑받을 만한 노인)'이라 일컫는 작가 이외수. 그가 45년 이상 피워온 담배를 끊고 금단현상으로 몸서리를 치면서, 24시간 네티즌과 교감하며 써내려간 글들이다.

'1장 털썩', '2장 쩐다', '3장 대략난감', '4장 캐안습', '5장 즐!'의 독특한 소제목 아래, 260여 편의 짤막하고 위트 있는 에세이가 실렸다. 화가 정태련이 그린 우리 토종 민물고기 세밀화 65점은, 3년에 걸쳐 전국의 산하를 발로 뛰며 구현한 작품들이다.



어떤 초딩이 이외수의 사진을 보고 "나 이 사람 누군지 알아"라고 말했다. 엄마가 대견하다는 듯 물었다. "이 사람이 누군데?" 그러자 초딩이 자신감에 찬 목소리로 대답했다. "해모수야." - 본문 17쪽에서

시 간이 지나면 부패되는 음식이 있고 시간이 지나면 발효되는 음식이 있다. 인간도 마찬가지다. 시간이 지나면 부패되는 인간이 있고 시간이 지나면 발효되는 인간이 있다. 한국 사람들은 부패된 상태를 썩었다고 말하고 발효된 상태를 익었다고 말한다. 신중하라. 그대를 썩게 만드는 일도 그대의 선택에 달려 있고 그대를 익게 만드는 일도 그대의 선택에 달려 있다. - 본문 115쪽에서

그 대가 만나는 사람들 중에는 조금만 시간이 흘러도 망각의 늪 속으로 사라져버릴 사람이 있고 아무리 많은 시간이 흘러도 기억의 강기슭에 남아 있을 사람이 있다. 혹시 그대는 지금 망각의 늪 속으로 사라질 사람을 환대하고 기억의 강기슭에 남아 있을 사람을 천대하고 있지는 않은가. 때로는 하찮은 욕망이 그대를 눈멀게 하여 하찮은 사람과 소중한 사람을 제대로 구분치 못하게 만드는 경우도 있나니, 훗날 깨달아 통탄한들 무슨 소용이 있으랴. - 본문 55쪽에서



이외수 (작가프로필 보기) - 1946년 경남 함양군에서 태어나, 춘천교대를 자퇴했다. 1972년 「강원일보」 신춘문예에 단편 '견습 어린이들'로, 1975년 「세대」에 중편 '훈장'으로 신인문학상을 수상하면서 시작한 글쓰기가 벌써 30년을 바라보고 있다.

지은 책으로 장편소설 <꿈꾸는 식물>, <칼>, <들개>, <벽오금학도>, <황금비늘>, <괴물>, <장외인간>, 소설집 <겨울나기>, <장수하늘소>, <훈장>, 우화집 <사부님 싸부님>, 에세이 <내 잠 속에 비 내리는데>, <말더듬이의 겨울수첩>, <감성사전>, <그대에게 던지는 사랑의 그물>, <뼈>, <날다 타조>, <외뿔>, <내가 너를 향해 흔들리는 순간>, <바보바보>, <여자도 여자를 모른다>, 시집 <풀꽃 술잔 나비>, 시화집 <그리움도 화석이 된다>와 <글쓰기의 공중부양>, <하악하악> 등이 있다.

정태련 - 1963년 전남 광주에서 태어나 서울대 서양화과를 졸업했다. 다년간 생태관련 세밀화 작업에 전념했으며, MBC에서 일하기도 했다. 2007년 현재 북한강 상류에 위치한 작은 마을의 과수원에서 살고 있다. 그린 책으로 <달팽이 과학동화>, <보리 아기그림책>, <보리 어린이 동물도감>, <보리 어린이 식물도감>, <우리 땅에서 사라져가는 생명들>, <수많은 생명이 깃들어 사는 강> 등이 있다.


   

1장 털썩
2장 쩐다
3장 대략난감
4장 캐안습
5장 즐!


pasted by  http://www.aladdin.co.kr/shop/wproduct.aspx?isbn=897337950x

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

presented by TravelPod, the World's First Travel Blog ( Member of the TripAdvisor Media Network ) 
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

하루종일 무슨이유에서인지 일이 손에 잡히지 않는날..

비가와서 그런건 아닌듯 하고..

기분탓인가.. 점심 식사 이후에도 안정이 되지 않는다..

왠지 술 한잔 하고 싶은날...
크리에이티브 커먼즈 라이선스
Creative Commons License
TRACKBACK 0 AND COMMENT 0
To - Do List

1. Reading Book
 - The Secret
 - 소설처럼 재미있는 금융이야기
 - 하악하악  
 - 굿바이, 게으름
 - 부의 역사

2. Studing
 - Ch4 . DB modeling

3. 생활습관 정규화 하기

4. 목표 세우기


크리에이티브 커먼즈 라이선스
Creative Commons License
TRACKBACK 0 AND COMMENT 0
상투적이고도 일반론만을 내세우는 대다수의 자기개발 베스트 셀러
광고와 언론의 극찬에 비해서는 역시 실망스러움.
뭐..언제나 처럼 결론은 Positive Thinking & Believe Yourself !
단지 다른점이 있다면 "끌어당김" 의 법칙에 대한 구체적인 예시.
다소 허무맹랑한 CASE 지만 사실이라는점

사실에 의거하여 모든사람들에게 비밀을 나누려 한다는 점이 본래 의도이지만
혹시나가 역시나..

출/퇴근길 Killing Time 용으로는 나쁘지 않음

pasted by  http://www.aladdin.co.kr/shop/wproduct.aspx?isbn=8952206509



2007년 '아마존' 최고의 화제작. 출간하자마자 아마존 베스트셀러 목록에 올랐고, '오프라 윈프리 쇼'에서 소개되었다. 방송 후 시청자들의 폭발적인 반응에 오프라 홈페이지마저 마비되었고, 결국 책은 미국에서 '가장 짧은 시간에 가장 많이 팔린 책'이 되어버렸다.

예약판매중인 <해리포터> 최종편을 제치고 아마존 베스트셀러 1위를 차지하기도 했으니, 책의 인기를 쉬 짐작 할 만한데, 왜 미국인들은 이 책에 그렇게 열광하는가? 책의 어떤 내용이 전 세계적으로 '시크릿 열풍'을 불러오고 있는가?

책에서 말하고자 하는 것은 긍정적인 생각과 간절한 믿음이 만났을 때 강력한 힘을 발휘한다는 것이다. 미래의 삶을 창조하는 원동력이 내 안에 있다는 믿음은 원하는 것을 실제로 이루어지게 하는 창조력을 지닌다. 즉, 우리 내면의 숨겨진 힘을 잘 활용하면, 우리가 원하는 것들을 이룰 수 있다고 말한다.



론다 번 (Rhonda Byrne) - 호주의 전직 TV 프로듀서. 위대한 성공의 비밀을 전 세계 사람들과 공유하겠다는 마음을 먹고 미국으로 건너갔다. 뛰어난 저술가, 과학자, 철학자들과의 공동작업으로 ‘시크릿’ DVD와 책이 제작되었고, 이는 미국에서 ‘시크릿 신드롬’으로 이어졌다. 오프라 윈프리 쇼와 래리 킹 라이브 등 미국 최고의 프로에서 집중적으로 조명을 받은 이 책은, 아마존에서 자기계발서가 세운 모든 기록들을 하나씩 갈아치우고 있다. 론다 번의 꿈과 비전이 성공을 꿈꾸는 모든 이들의 열망과 만난 것이다.

김우열 - 연세대 전자공학과를 졸업하고 (주)팬택, 모토로라 등에서 일했다. 2003년부터 번역 지망생을 도왔고, 지망생 카페 '주간번역가' 카페를 개설해 현재까지 운영해오고 있다. 번역 전문 편지 '주간번역' 발행인 및 바른번역(translators.co.kr) 회원, 독자와 번역가가 함께하는 책 이야기 '왓북' 공동 운영진으로도 활동 중이다. 옮긴 책으로 <미친 시대를 이성적으로 사는 법>, <성공의 문을 여는 마스터키>, <죽음의 신비>, <평전 마키아벨리>, <위대한 발견의 숨겨진 역사>, <친구가 많은 아이로 키워라>, <애거서 크리스티 전집 25 - 빅포> 등이 있다.


   

들어가는 말
감사의 글
비밀이 드러나다
비밀에 접근하는 법
비밀을 활용하는 법
두 가지 강력한 도구
돈의 비밀
인간관계의 비밀
건강의 비밀
세상의 비밀
당신의 비밀
인생의 비밀
인물 소개

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0
vi 로 작업하다보면 가끔 헷갈리는 명령어들 -ㅅ-;;


vi 시작 명령어  작업설명
vi filename 파일 열기, 작성
vi +18 filename 18행으로 파일 열기
vi +/"문자열" fn 문자열의 처음발생 단어부터 열기
vi -r filename 손상된 파일 회복
view filename 읽기 전용으로 파일 열기
vi 커서 이동 명령어  작업설명
h(←) 왼쪽으로 커서 이동
j(↓) 아래로 커서 이동
k(↑) 위로 커서 이동
l(→) 오른쪽으로 커서 이동
w 오른쪽 한 단어의 끝 부분으로 커서 이동
e 오른쪽 한 단어의 앞 부분으로 커서 이동
b 왼쪽 한 단어의 앞 부분으로 커서 이동
Enter 한 행 아래로 커서 이동
Back space 한 문자 왼쪽으로 커서 이동
Space Bar 한 문자 오른쪽으로 커서 이동
^ 행의 맨 왼쪽으로 커서 이동
$ 행의 맨 오른쪽으로 커서 이동
H 화면의 맨 위로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
숫자G ‘숫자’만큼 지정한 줄로 커서 이동
Ctrl + f 한 화면 위로 이동
Ctrl + b 한 화면 아래로 이동
Ctrl + d 반 화면 위로 이동
Ctrl + u 반 화면 아래로 이동
Ctrl + e 한 줄씩 위로 이동
Ctrl + y 한 줄씩 아래로 이동
문자,행 삽입 명령어  작업설명
a (종료:ESC) 커서 오른쪽에 문자 삽입
A (종료:ESC) 커서 오른쪽, 행의 끝에 문자 삽입
i (종료:ESC) 커서 왼쪽에 문자 삽입
I (종료:ESC) 커서 왼쪽, 행의 처음에 문자 삽입
o (종료:ESC) 커서 아래에 행 삽입
O (종료:ESC) 커서 위에 행 삽입
텍스트 변경 명령어  작업설명
cw (종료:ESC) 단어 변경
cc (종료:ESC) 행 변경
C (종료:ESC) 커서 오른쪽의 행 변경
s (종료:ESC) 커서가 위치한 문자열 대체
S (종료:ESC) 커서가 위치한 라인의 문자열 대체
r 커서 위치 문자를 다른 문자로 대체
r-Enter 행 분리
J 현재 행과 아래 행 결합
xp 커서 위치 문자와 오른쪽 문자 교환
~ 문자형(대,소문자) 변경
u 이전 명령 취소
U 행 변경 사항 취소
:u 이전의 최종 행 취소
. 이전 최종 명령 반복
텍스트 삭제 명령어  작업설명
x 커서가 있는 문자 삭제
5x 커서가 있는 위치부터 5개의 문자를 삭제
dw 현재 커서가 있는 한단어 삭제
dd 커서가 있는 라인 삭제
5dd 커서가 있는 라인부터 5개의 라인 삭제
db 커서의 위치에서 꺼꾸로 한단어 삭제
D 커서 오른쪽 행 삭제
:5,10d 5-10번째 행 삭제
복사 및 이동 명령어  작업설명
yy 행 yank 또는 복사
Y 행 yank 또는 복사
P yank되거나 삭제된 행 현재 행 위에 삽입
p yank되거나 삭제된 행 현재 행 아래에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 위로 이동
행 번호 설정 명령어  작업설명
:set nu 행 번호 표시
:set nonu 행 번호 숨기기
행 찾기 명령어  작업설명
G 파일의 마지막 행으로 가기
21G 파일의 21번째 행으로 가기
Ctrl + G 현재의 filename과 line수를 알려줌
탐색 및 대체 명령어  작업설명
/검색할 문자열/ 오른쪽 아래 방향으로 문자열 검색
?검색할 문자열? 왼쪽 위 방향으로 문자열 검색
n 문자열의 다음으로 계속 검색
N 문자열의 이전으로 계속 검색
:g/search-string/s//replace-string/gc 각 발생 탐색 후 확인하고 대체
:s/str/rep/ 현재 행의 str을 rep로 대체
:1,.s/str/rep/ 1부터 현재 행의str을 rep로 대체
:%s/str/rep/g 파일 전체 str을 rep로 전부 대체
:.$/aaa/bbb/ 커서의 위치로부터 화일의 끝까지 있는 모든 aaa를 bbb로 대체
화면정리 명령어  작업설명
Ctrl + l  불필요한 화면정리 후 다시 표시
파일 명령어  작업설명
:r filename 커서 다음에 파일 삽입
:34 r filename 파일을 34번째 행 다음에 삽입
보관 및 종료 명령어 작업설명
:w 변경사항 보관
:w filename 버퍼를 파일로 보관
:wq 변경사항 보관 후 vi 종료
ZZ 변경사항 보관 후 vi 종료
:q! 변경사항 보관하지 않고 종료
q 수정한 파일을 저장하지 않고 vi 종료
e! 수정한 것을 무시하고 다시 편집상태로
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

CRS 와 10G REAL APPLICATION CLUSTERS
===================================


PURPOSE
-------
이 문서는, 10g Real Application Cluster의 CRS (Cluster Ready Services)에 대한 추가적인
정보를 제공하는 것을 목적으로 한다.


Explanation
-----------
1. CRS 와 10g REAL APPLICATION CLUSTERS
 
CRS (Cluster Ready Services)는 10g Real Application Cluster의 새로운 기능으로,
모든 플랫폼에 대해 표준화된 클러스터 인터페이스를 제공 해 주고, 이전 버전에서는 없었던
새로운 고가용 서비스를 제공해 준다.


2. CRS 핵심 기능

CRS와 10g RAC를 설치하기 전에, CRS및 10g RAC에 대해 사전에 알아 두어야 할 사항이 있다 :

- 10g RAC를 설치를 위해서는 CRS는 사전에 설치 되고 실행되어야 한다.

- CRS는 하드웨어 공급 업체에서 제공하는 클러스터 제품 (예 : Sun Cluster,
  HP Serviceguard, IBM HACMP, TruCluster, Veritas Cluster, Fujitsu Primecluster,
  기타 ...) 위에서 실행 될 수도 있고, 하드웨어 공급 업체에서 제공하는 클러스터 제품
  없이도 실행될 수 있다. 하드웨어 업체에서 공급하는 클러스터 제품은 9i RAC까지는 반드시
  필요했지만, 10g RAC에서는 선택 사항이다.

- CRS HOME 과 ORACLE_HOME 은 반드시 다른 디렉토리에 설치 되어야 한다.

- CRS를 설치하기 전에, voting 파일 또는 OCR (Oracle Configuration Repository) 파일을
  설치 할 수 있는 공유된 디렉토리 또는 디바이스가 셋업되어야 한다. voting file은 최소 20MB 정도
  크기이며, OCR 파일은, 최소 100MB 크기가 되어야 한다.

- CRS 및 RAC를 설치하기 위해서는 다음과 같은 네트워크 인터페이스가 구성되어야 한다 :
  - Public Interface
  - Private Interface
  - Virtual (Public) Interface
  관련된 추가적인 정보는 <Bulletin No: 22345> 참조.

- CRS 설치 후 root.sh를 실행시키면 CRS 서비스를 구동시킨다. 만약 CRS가 정상적으로
  구동되지 않는다면, Note 240001.1 참조.

- RAC 노드당 1개의 CRS 데모만 실행 가능.

- 유닉스 시스템의 경우, CRS 서비스는 /etc/inittab 상의 ‘respawn’ entry로 등록되어 있다.

- 네트워크 split이 있을 경우 (노드간 통신 두절) data corruption을 방지 하기 위해 하나
  또는 그 이상의 노드에서 리부팅이 발생할 수 있다.

- CRS 서비스를 구동시키는 올바른 방법은 장비를 부팅시키는 것이다.

- 서비스를 중단시키는 올바른 방법은, 장비를 shutdown 시키거나, "init.crs stop" 명령을
  실행시키는 것이다.

- CRS 데몬을 kill 시키는 것은 올바른 방법이 아니며, 오직 설치된 CRS를 제거한 경우에만
  적용해도 되는 방법이다. (Bulletin No: 22343 참조) 이것은 , 플래그 파일에 불일치가 발생 할
  수 있기 때문이다.

- 시스템 유지 보수를 위해서는, OS를 단일 사용자 모드 (single user mode)로 전환한다.

서비스 스택이 구동되면, ps -ef 명령으로 관련된 데몬 프로세스를 확인 할 수 있다 :

[rac1]/u01/home/beta> ps -ef | grep crs

 oracle  1363   999  0 11:23:21 ?  0:00 /u01/crs_home/bin/evmlogger.bin -o /u01
 oracle   999     1  0 11:21:39 ?  0:01 /u01/crs_home/bin/evmd.bin
 root    1003     1  0 11:21:39 ?  0:01 /u01/crs_home/bin/crsd.bin
 oracle  1002     1  0 11:21:39 ?  0:01 /u01/crs_home/bin/ocssd.bin


3. CRS DAEMON 기능

다음은 각각의 CRS 데몬 프로세스에 대한 간략한 설명이다 :

CRSD:
- HA 작업을 위한 엔진
- '애플리케이션 자원'관리
- '애플리케이션 자원'을 구동, 정지, fail over 처리
- 애플리케이션 자원 구동/정지/점검 하기 위한 별도의 'actions'을 spawn
- OCR(Oracle Configuration Repository)의 구성 프로파일 관리
- OCR의 현재 알려진 상태를 저장
- root 권한으로 실행
- 장애 발생시 자동으로 재 구동됨

OCSSD:
- OCSSD는 RAC의 일부로, ASM과 함께 단일 인스턴스를 구성함
- 노드 멤버쉽에 대한 액세스를 제공
- 그룹 서비스 제공
- 기본적인 클러스터 lock 기능 제공
- 하드웨어 공급 업체에서 제공하는 클러스터 소프트웨어가 설치되어 있을 경우, 통합을 실시
- 하드웨어 공급 업체에서 제공하는 클러스터 소프트웨어 없이도 실행 가능
- 오라클 계정으로 실행
- 장애로 인한 종료시 시스템 리부팅됨
--- 리부팅은 split brain 현상 발생시, 데이터 corruption 방지를 목적으로 함.

EVMD:
- 특정한 사건 발생 시 이벤트 생성
- 자식 프로세스로 evmlogger를 spawn 시킴
- Evmlogger는 필요시 자식 프로세스를 spawn 시킴
- callout directory를 스캔하고 callout을 호출
- 오라클 계정으로 실행.
- 장애로 인한 종료시 자동으로 재 구동됨


4. CRS 로그 디렉토리

CRS 문제의 원인을 추적할 때는, CRS 홈 디렉토리 아래 디렉토리를 살펴보는 것이
중요하다.

$ORA_CRS_HOME/crs/log - 이 디렉토리는, CRS 자원들에 대한 트레이스를 포함하며,
CRS에 의해 식별된 가입(joining), 탈퇴(leaving), 재구동(restarting), 재배치(relocating)와
관련된 정보들이 기록된다.

$ORA_CRS_HOME/crs/init - crsd.bin 데몬과 관련된 모든 core dump가 기록된다.

$ORA_CRS_HOME/css/log - css 로그는, 재구성(reconfiguration)이나, 성공하지
못한 체크인 (missed checkin), 클라이언트의 css listener로 부터 발생한 연결(connect) 및
연결해제(disconnect)와 관련된 모든 액션을 기록한다. 때에 따라서는 로거에서는 (auth.crit)
유형의 메시지를 남기는데 이것은 오라클에 의해 리부팅이 발생할 때 남는다. 이 정보는
리부팅이 정확히 언제 발생했는지를 확인하는데 사용될 수 있다.

$ORA_CRS_HOME/css/init - 기본적으로는 ocssd로 부터의 core dump 파일을 저장하며, 프로세스의
종료가 심각한 문제로 간주되는 css 데몬의 pid 정보 또한 기록된다. css의 비정상 재 구동이 발생할
경우, core 파일은, core.<pid> 형태로 기록된다.

$ORA_CRS_HOME/evm/log - evn과 evmlogger 데몬의 로그 파일이 기록된다. CRS 또는 CSS 관련 디렉토리
처럼 디버깅 용도로 자주 사용되지는 않는다.

$ORA_CRS_HOME/evm/init - EVM의 pid와 lock 파일이 저장된다. EVM으로 부터 발생한 core 파일 또한
이 디렉토리에 저장된다. 디버깅을 위해서는 Note 1812.1 참조.

$ORA_CRS_HOME/srvm/log - OCR을 위한 로그 파일.


5. CRS 자원의 상태

RAC를 설치하고, RAC root.sh을 실행시키면 VIPCA (Virtual IP Configuration Assistant)가
구동된다. crs_stat 명령을 이용하여 모든 CRS 자원을 확인할 수 있다. 예 :

 cd $ORA_CRS_HOME/bin
 ./crs_stat

 NAME=ora.rac1.gsd
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE
 
 NAME=ora.rac1.oem
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE

 NAME=ora.rac1.ons
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE

 NAME=ora.rac1.vip
 TYPE=application
 TARGET=ONLINE          
 STATE=ONLINE

 NAME=ora.rac2.gsd
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE
 
 NAME=ora.rac2.oem
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE
 
 NAME=ora.rac2.ons
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE

 NAME=ora.rac2.vip
 TYPE=application
 TARGET=ONLINE
 STATE=ONLINE

CRS 자원을 읽기 쉬운 형태로 확인하기 위한 스크립트 또한 사용할 수 있다.
다음은 shell script의 예이다 :

--------------------------- Begin Shell Script -------------------------------

#!/usr/bin/ksh
#
# Sample 10g CRS resource status query script
#
# Description:
#    - Returns formatted version of crs_stat -t, in tabular
#      format, with the complete rsc names and filtering keywords
#   - The argument, $RSC_KEY, is optional and if passed to the script, will
#     limit the output to HA resources whose names match $RSC_KEY.
# Requirements:
#   - $ORA_CRS_HOME should be set in your environment

RSC_KEY=$1
QSTAT=-u
AWK=/usr/xpg4/bin/awk    # if not available use /usr/bin/awk

# Table header:echo ""
$AWK \
  'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";
          printf "%-45s %-10s %-18s\n", "-----------", "------", "-----";}'

# Table body:
$ORA_CRS_HOME/bin/crs_stat $QSTAT | $AWK \
 'BEGIN { FS="="; state = 0; }
  $1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};
  state == 0 {next;}
  $1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
  $1~/STATE/ && state == 2 {appstate = $2; state=3;}
  state == 3 {printf "%-45s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'

--------------------------- End Shell Script -------------------------------

실행 결과 예시 :

[opcbsol1]/u01/home/usupport> ./crsstat
HA Resource                                   Target     State            
-----------                                   ------     -----            
ora.V10SN.V10SN1.inst                         ONLINE     ONLINE on opcbsol1
ora.V10SN.V10SN2.inst                         ONLINE     ONLINE on opcbsol2        
ora.V10SN.db                                  ONLINE     ONLINE on opcbsol2
ora.opcbsol1.ASM1.asm                         ONLINE     ONLINE on opcbsol1
ora.opcbsol1.LISTENER_OPCBSOL1.lsnr           ONLINE     ONLINE on opcbsol1
ora.opcbsol1.gsd                              ONLINE ONLINE on opcbsol1
ora.opcbsol1.ons                              ONLINE     ONLINE on opcbsol1
ora.opcbsol1.vip                              ONLINE     ONLINE on opcbsol1
ora.opcbsol2.ASM2.asm                         ONLINE     ONLINE on opcbsol2
ora.opcbsol2.LISTENER_OPCBSOL2.lsnr           ONLINE     ONLINE on opcbsol2
ora.opcbsol2.gsd                              ONLINE     ONLINE on opcbsol2
ora.opcbsol2.ons                              ONLINE     ONLINE on opcbsol2
ora.opcbsol2.vip                              ONLINE     ONLINE on opcbsol2


6. CRS 자원 관리

자원을 관리하기 위해서는, srvctl 명령을 사용한다. 다음은 명령어 문법 예제이다.


1) CRS 자원 상태

srvctl status database -d <database-name> [-f] [-v] [-S <level>]
srvctl status instance -d <database-name> -i <instance-name> >[,<instance-name-list>]
       [-f] [-v] [-S <level>]
srvctl status service -d <database-name> -s <service-name>[,<service-name-list>]
       [-f] [-v] [-S <level>]
srvctl status nodeapps [-n <node-name>]
srvctl status asm -n <node_name>

예제:

데이터베이스의 상태, 모든 인스턴스와 모든 서비스
        srvctl status database -d ORACLE -v
이름이 부여된 인스턴스의 상태와 현재 서비스
        srvctl status instance  -d ORACLE -i RAC01, RAC02 -v
이름이 부여된 서비스의 상태.
        srvctl status service -d ORACLE -s ERP  -v
데이터베이스 애플리케이션을 지원하는 모든 노드의 상태.
        srvctl status node


2) CRS 자원의 구동

srvctl start database -d <database-name> [-o < start-options>]
       [-c <connect-string> | -q]
srvctl start instance -d <database-name> -i <instance-name>
       [,<instance-name-list>] [-o <start-options>] [-c <connect-string> | -q]
srvctl start service -d <database-name> [-s <service-name>[,<service-name-list>]]
       [-i <instance-name>]  [-o <start-options>] [-c <connect-string> | -q]
srvctl start nodeapps -n <node-name>
srvctl start asm -n <node_name> [-i <asm_inst_name>] [-o <start_options>]

예제:

데이터베이스를 모든 활성화된 인스턴스와 함께 구동.
        srvctl start database -d ORACLE
이름이 부여된 인스턴스의 구동. 
        srvctl start instance  -d ORACLE -i RAC03, RAC04
이름이 부여된 서비스의 구동. 연관된 인스턴스는 필요시 구동됨.
        srvctl start service -d ORACLE -s CRM
이름이 부여된 인스턴스의 서비스의 구동.
        srvctl start  service -d ORACLE -s CRM -i RAC04
노드 애플리케이션의 구동.
        srvctl start  nodeapps -n myclust-4


3) CRS 자원의 정지

srvctl stop database -d <database-name> [-o <stop-options>] 
       [-c <connect-string> | -q]
srvctl stop instance -d <database-name> -i <instance-name> [,<instance-name-list>]
       [-o <stop-options>][-c <connect-string> | -q]
srvctl stop service -d <database-name> [-s <service-name>[,<service-name-list>]]
       [-i <instance-name>][-c <connect-string> | -q] [-f]
srvctl stop nodeapps -n <node-name>
srvctl stop asm -n <node_name> [-i <asm_inst_name>] [-o <start_options>]

예제:

데이터베이스, 모든 인스턴스, 모든 서비스를 정지 시킴.
        srvctl stop database -d ORACLE
이름이 부여된 인스턴스를 정지 시킴. 그 전에 우선 존재하는 모든 서비스를 재배치 함.
        srvctl stop instance  -d ORACLE -i RAC03,RAC04
서비스를 정지시킴.
        srvctl stop service -d ORACLE -s CRM
이름이 부여된 인스턴스의 서비스를 정지 시킴.
        srvctl stop  service -d ORACLE -s CRM -i RAC04
노드 애플리케이션을 정지 시킴. 인스턴스와 서비스 역시 정지됨.
        srvctl stop  nodeapps -n myclust-4


4) CRS 자원의 추가

srvctl add database -d <name> -o <oracle_home> [-m <domain_name>] [-p <spfile>]
       [-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}]
       [-s <start_options>] [-n <db_name>]
srvctl add instance -d <name> -i <inst_name> -n <node_name>
srvctl add service -d <name> -s <service_name> -r <preferred_list>
       [-a <available_list>] [-P <TAF_policy>] [-u]
srvctl add nodeapps -n <node_name> -o <oracle_home>
       [-A <name|ip>/netmask[/if1[|if2|...]]]
srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home>

OPTIONS:

-A      vip range, node, and database, address specification. The format of
        address string is:
        [<logical host name>]/<VIP address>/<net mask>[/<host interface1[ |
        host interface2 |..]>] [,] [<logical host name>]/<VIP address>/<net mask>
        [/<host interface1[ | host interface2 |..]>]
-a      for services, list of available instances, this list cannot include
        preferred instances
-m      domain name with the format “us.mydomain.com”
-n      node name that will support one or more instances
-o      $ORACLE_HOME to locate Oracle binaries
-P      for services, TAF preconnect policy - NONE, PRECONNECT
-r      for services, list of preferred instances, this list cannot include
        available instances.
-s      spfile name
-u      updates the preferred or available list for the service to support the
        specified instance. Only one instance may be specified with the -u
        switch.  Instances that already support the service should not be
        included.

예제:

새로운 노드의 추가.
        srvctl add nodeapps -n myclust-1 -o $ORACLE_HOME  ?A 
        139.184.201.1/255.255.255.0/hme0
새로운 데이터 베이스의 추가. 
        srvctl add  database  -d ORACLE -o $ORACLE_HOME
이미 존제하는 데이터베이스에 이름이 부여된 인스턴스 추가.
        srvctl add instance -d ORACLE -i RAC01 -n myclust-1
        srvctl add instance -d ORACLE -i RAC02 -n myclust-2
        srvctl add instance -d ORACLE -i RAC03 -n myclust-3
서비스를 이미 존재하는 데이터베이스에 추가하며, 선호되는 인스턴스를 지정 (-r)하고,
가용한 인스턴스를 지정함(-a). 가용 인스턴스에 대해서는 기본 failover를 사용함.
        srvctl add service -d ORACLE -s STD_BATCH -r RAC01,RAC02 -a RAC03,RAC04
이미 존재하는 데이터베이스에 선호되는 인스턴스를 list 1, 가용한 인스턴스를 list 2에
추가함. 가용 인스턴스에 대해서는 사전연결 (preconnect) 방식을 사용함.
        srvctl add service -d ORACLE -s STD_BATCH -r RAC01,RAC02 -a RAC03,RAC04  -P PRECONNECT


5) CRS RE자원의 제거

srvctl remove database -d <database-name> 
srvctl remove instance  -d <database-name> [-i <instance-name>]
srvctl remove service -d <database-name> -s <service-name> [-i <instance-name>] 
srvctl remove nodeapps -n <node-name>

예제:

데이터베이스에 대한 애플리케이션의 제거.
        srvctl remove database  -d ORACLE
이미 존재하는 데이터베이스의 이름이 부여된 인스턴스에 대한 애플리케이션 제거.
        srvctl remove instance -d ORACLE -i  RAC03
        srvctl remove instance -d ORACLE -i  RAC04
서비스 제거.
        srvctl remove  service -d ORACLE -s STD_BATCH
인스턴스로부터 서비스 제거.
        srvctl remove  service  -d ORACLE -s STD_BATCH -i RAC03,RAC04
노드로 부터 모든 노드 애플리케이션 제거.
        srvctl remove  nodeapps -n myclust-4


6) CRS 자원의 변경

srvctl modify database -d <name> [-n <db_name] [-o <ohome>] [-m <domain>]
       [-p <spfile>]  [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}]
       [-s <start_options>]
srvctl modify instance -d <database-name> -i <instance-name> -n <node-name>
srvctl modify instance -d <name> -i <inst_name> {-s <asm_inst_name> | -r}
srvctl modify service -d <database-name> -s <service_name> -i <instance-name>
       -t <instance-name> [-f]
srvctl modify service -d <database-name> -s <service_name> -i <instance-name>
       -r  [-f]
srvctl modify nodeapps -n <node-name> [-A <address-description> ] [-x]

OPTIONS:

-i <instance-name> -t <instance-name>  the instance name (-i) is replaced by the
   instance name (-t)
-i <instance-name> -r the named instance is modified to be a preferred instance
-A address-list for VIP application, at node level
-s <asm_inst_name> add or remove ASM dependency

예제:

인스턴스가 다른 노드에서 실행되도록 변경.
        srvctl moinstance  -d ORACLE  -n myclust-4
서비스가 다른 노드에서 실행되도록 변경.
        srvctl modify service -d ORACLE  -s HOT_BATCH -i  RAC01 -t RAC02
인스턴스가 서비스의 선호되는 인스턴스가 되도록 변경.
        srvctl modify service -d ORACLE  -s HOT_BATCH -i  RAC02 ?r


7) SERVICE의 재 배치

srvctl relocate service -d <database-name> -s <service-name> [-i <instance-name >]-t<instance-name > [-f]

예제:

서비스를 한 인스턴스에서 다른 인스턴스로 재 배치
        srvctl relocate  service -d ORACLE -s CRM -i RAC04 -t RAC01


8) CRS 자원을 활성화 (자원은 이 기능을 사용할 당시 실행중이거나, 정지된 상태일 수 있음)

srvctl enable database -d <database-name>
srvctl enable instance -d <database-name> -i <instance-name> [,<instance-name-list>]
srvctl enable service -d <database-name> -s <service-name>] [, <service-name-list>] [-i <instance-name>] 

예제:

데이터베이스를 활성화.
        srvctl enable database -d ORACLE
이름이 부여된 인스턴스의 활성화. 
        srvctl enable instance  -d ORACLE -i RAC01, RAC02
서비스의 활성화. 
        srvctl enable  service -d ORACLE -s ERP,CRM
이름이 부여된 인스턴스에서 서비스의 활성화.
        srvctl enable  service -d ORACLE -s CRM -i RAC03


9) CRS 자원의 비활성화 (자원은 이 기능을 사용할 당시 정지된 상태 이어야만 함)

srvctl disable database -d <database-name>
srvctl disable instance -d <database-name> -i <instance-name> [,<instance-name-list>]
srvctl disable service -d <database-name> -s <service-name>] [,<service-name-list>] [-i <instance-name>] 

예제:

데이터베이스를 전역(global) 비활성화 시킴.
        srvctl disable database -d ORACLE
이름이 부여된 인스턴스의 비활성화. 
        srvctl disable instance  -d ORACLE -i RAC01, RAC02
서비스를 전역(global) 비활성화. 
        srvctl disable  service -d ORACLE -s ERP,CRM
이름이 부여된 인스턴스상의 서비스를 비 활성화.
        srvctl disable  service -d ORACLE  -s CRM -i RAC03,RAC04


추가 정보는 Oracle10g Real Application Clusters Administrator's Guide - Appendix B 참조


Example
-------


Reference Documents
-------------------
<Note:259301.1>  CRS and 10g Real Application Clusters

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

ARTICLE CATEGORY