OTN에 올라온 Oracle RAC 구축 관련 문서입니다. Oracle VM과 Oracle Enterprise Linux 환경에 구축하는 내용을 담고 있으며, 개인이나 회사에서 개발용, 테스트 혹은 교육용으로만 사용할 것을 권장하고 있네요.
세개의 웹 페이지로 나뉘어져있으며, 각 페이지에는 인쇄용 화면을 볼 수 있는 링크가 있습니다.

소개

일반적인 Oracle RAC(Real Application Cluster) 구현은 하나 또는 여러 노드의 장애를 신속하게 복구하는 아키텍처입니다. 그러나 일반적인 시나리오에서 Oracle RAC의 모든 노드는 한 곳의 데이터 센터에 있으므로 치명적인 데이터 센터 장애로 이어지기 쉽습니다. 이 시나리오에서 재난 복구를 위한 솔루션은 로컬 데이터 센터와 일부 백업 데이터 센터 간에 Oracle DataGuard를 설치하여 대기 시스템(일반적으로 하나의 Oracle Database 또는 다른 RAC 클러스터)을 실행하는 것입니다.

DataGuard는 이 역할을 물론 잘 수행하지만 전체 대기 시스템과 어레이를 패시브 노드로 전환하므로 트랜잭션에 전산 능력을 사용할 수 없게 되며 이로 인해 솔루션 비용이 매우 높아집니다. (대기 Oracle DataGuard 시스템은 읽기 전용 쿼리를 수행하기 위해 열 수 있고 Active DataGuard in Oracle Database 11g를 사용할 경우 항상 읽기 전용 모드로 실행할 수도 있지만, 이 구성의 경우 애플리케이션이 일부 노드의 읽기 전용 특성을 알고 있어야 합니다.)

다행히도 부분적인 재난 복구를 위한 다른 솔루션이 있으며 그것이 바로 확장 RAC입니다. 이 아키텍처에서 일부 RAC 노드는 "알파 사이트"에서 작동하며 나머지 노드는 "베타 사이트"에서 작동합니다. 두 사이트의 노드는 액티브 모드이므로 모든 전산 리소스를 충분히 사용합니다. 그림 1에서 볼 수 있는 것처럼 각 사이트에는 전용 SAN(Storage Area Network)이 있고, 양쪽 데이터 센터(dcA와 dcB)에 있는 시스템은 동일한 RAC의 구성원이므로 데이터를 신속하게 상호 교환할 수 있고 다른 사이트의 스토리지에 액세스할 수 있습니다. 즉, dcA에 있는 RAC1 노드는 dcB에 있는 SAN 어레이에 데이터를 쓰고 dcB에 있는 RAC2 노드와도 통신합니다.



원문 : Oracle VM 및 Oracle Enterprise Linux에 Oracle 확장 RAC 클러스터 직접 구축하기



  유닉스 쉘 스크립트는 유닉스 서버 관리자에게 좀더 효율적인 서버 관리를 가능하게 해주는 유용한 도구입니다. Database 공부를 해오면서 계속 쉘 스크립트를 이용해 왔지만 아직도 쉘 스크립트는 제게 공부해야할 여지가 많은 분야입니다. 그래서 IBM DeveloperWorks에 한글로 번역된 쉘 스크립트 관련 문서를 소개하려합니다.


원문 : 유닉스를 능숙하게 사용하기: 고급 셸 스크립트 기법

유닉스에는 길고 따분한 작업을 단순하게 만들기 위해 작업을 자동화하는 셸 스크립트가 있습니다. 이 기사는 셸 스크립트를 좀 더 제대로 배우기를 원하며 고급 스크립트를 작성하는 방법이 궁금한 독자들에게 팁을 제공합니다.

다른 유닉스 운영체제나 리눅스와 마찬가지로 IBM AIX 운영체제는 시스템 관리자, 개발자, 사용자가 일상 업무를 처리하고 고객 비즈니스를 단순하게 만들기 위한 여러 가지 강력한 도구를 제공한다. 유닉스에는 길고 따분한 작업을 단순하게 만들기 위해 작업을 자동화하는 셸 스크립트가 있다.

몇 년 동안 유닉스에서 셸 스크립트를 끼적거려 본 경험이 있을지라도 주로 운영체제 안팎을 파느라고 스크립트를 마스터하지는 못했을 것이다. 이 기사는 셸 스크립트를 좀 더 제대로 배우기를 원하며 고급 스크립트를 작성하는 방법이 궁금한 독자들에게 팁을 제공한다. 이 기사는 스크립트를 단순하게 만드는 방법, 스크립트를 최대로 유연하게 유지하는 방법, 깔끔한 스크립트를 작성하는 방법, 스크립트 내부에서 문서화 작업 방법, 스크립트 디버깅 방법을 포함해 일반적인 셸 프로그래밍 기본 원칙을 설명한다.


 유닉스/리눅스 사용자라면 가장 자주 사용하는 프로그램 중에 하나인 vi 편집기에 대한 튜토리얼입니다.
그 동안 vi에 대한 글들이 많았지만 그래도 빠뜨릴수 없는 부분인거 같아서 소개하려합니다. 기본적인 유닉스/리눅스 사용법에 대해서는 알고 있는 사용자를 대상으로 작성된 문서입니다.

원문 : 초보자를 위한 유닉스 팁과 기교, Part 2:vi 편집기

vi 편집기를 처음 접하는 사용자는 편집기가 직관적이지 못하다고 느끼기 쉽습니다. 하지만 세상에서 내로라하는 개발자들이 30년이 넘는 도구를 아직도 애용하는 데는 그만한 이유가 있습니다. vi 편집기는 삽입 모드(insert mode)와 명령 모드(command mode)로 작업을 분리합니다. 그래서 키보드에서 엄청나게 빨리 사용자가 정의한 영역을 대상으로 텍스트를 편집하고 삽입하고 이동할 수 있습니다.

이 튜토리얼 내에서

  • vi 소개

  • vi에서 커서 이동하기

  • vi에서 텍스트 삽입하고 편집하기

  • 고급 vi 명령

선수조건

이 튜토리얼을 따라가려면 명령행, 파일, 디렉터리라는 개념을 알아야 한다. 또한 유닉스(UNIX®) 계열 운영체제에 로그인할 줄도 알아야 한다.


시스템 필요조건

유닉스 계열 운영체제가 돌아가는 시스템에 로그인할 수 있는 계정만 있으면 충분하다. 유닉스 계열 운영체제는 IBM® AIX®, 리눅스(Linux®), BSD(Berkeley Software Distribution), 맥 OS(Mac OS®) X 등을 포함한다. 맥 OS X은 터미널을 실행해야 명령행을 사용할 수 있다.


 Linux 관련 커뮤니티에 올라오는 글들을 보면 가끔씩 임베디드 보드나 미니 ITX 보드등에 CF 카드나 메모리 기반 저장장치를 이용해서 리눅스 박스를 꾸미는 분들이 글을 올리시곤 합니다. 재밌어 보이기도 하지만 막상 시도해보려면 장애물이 많죠. 하드웨어 구매에서 리눅스 설치까지 난관이 많습니다. 10월 28일에 한국IBM DeveloperWorks에 임베디드 리눅스 배포판을 설치하는 튜토리얼이 올라와있어서 소개합니다.

원문 : 바닥부터 만들어보는 임베디드 리눅스 배포판


임베디드 환경에서 쓸 수 있는 리눅스(Linux®) 배포판을 어떻게 만들 수 있을지 배워보겠습니다. 이 내용에서는 TS-7800 싱글 보드 컴퓨터를 동작시키는 경우를 예로 들었습니다. 이 튜토리얼에서는 크로스 컴파일링(cross-compiling), 부트 로더(boot loader), 파일 시스템, 루트 파일 시스템, 디스크 이미지, 부트 프로세스 등 시스템을 만들고 배포판을 생성하는 데 결정해야 할 모든 측면에 대해 배울 것입니다.

시작하기 전에

목표

이 튜토리얼에서는 대상 시스템에 리눅스를 어떻게 설치할지 보인다. 미리 만들어진 리눅스 배포판을 쓰는 게 아니라 처음부터 독자들 스스로 만들어내는 것이다. 당연히 대상에 따라 상세 과정은 다르지만 일반적인 주제는 똑같이 적용된다.

이 튜토리얼을 끝내고 나면(적절한 대상 시스템을 갖고 있다면) 셸 프롬프트가 깜빡거리는 제대로 동작하는 리눅스 시스템이다.

이 튜토리얼에 관해

튜토리얼은 크로스 컴파일에 관한 이슈 토론으로 시작한다. 그러고 나서 리눅스 시스템의 컴포넌트가 무엇인지 그리고 이것들을 어떻게 한데 넣을 것인지 논의한다. 빌드와 설치 그리고 대상 시스템의 설정에 대해서도 다룬다.

여 기서 논의할 구체적인 대상 시스템인 Technologic Systems의 TS-7800은 기본적으로 스스로 부트할 수 있는 기능을 갖고 있다. 다른 시스템은 다른 메커니즘을 갖고 있을 것이다. 그리고 이 튜토리얼에서는 이외 모든 가능한 부트 로더에 대해 그다지 자세하게 다루지는 않을 것이다.

먼저 준비해야 할 것들 그리고 시스템 요구 사항

대상으로 삼을 임베디드 시스템에 관심을 갖고 있는 개발자들이든, 꼭 그렇지 않더라도 그저 리눅스 시스템이 어떻게 생겼는지 들여다보고 싶은 개발자들이든 이 튜토리얼에서 많은 걸 얻을 것이다.

사용할 호스트 환경은 우분투(Ubuntu)이지만 다른 시스템도 동작한다. 기본적으로 유닉스(UNIX®)나 리눅스 시스템 관리를 할 수 있다고 가정한다. 이 튜토리얼에서는 호스트 시스템에 루트(root) 접근을 갖고 있다고 가정한다.

이 튜토리얼에서는 여러분이 사용할 셸이 본(Bourne)셸 종류라고 가정한다. C셸을 사용한다면 아마도 프롬프트가 다르게 나타날 텐데 환경 변수 설정할 때 다른 명령어를 사용해야 할 필요가 있을 것이다.

크로스 컴파일링을 위해 필자는 2008년 5월에 발표된 crosstool-ng 버전 1.1.0을 사용했다. 배포 사이트(참고자료 참조)에서 다운로드할 수 있을 것이다. 설치와 설정에 대해서는 상세 내용을 참조하기 바란다.


 요즘엔 Oracle 11g가 출시되고 RAC, GRID 등의 다양한 기능을 제공하지만 아직까지 Oracle 9i를 고집하는 시스템도 있다. 특히나 지금 근무중인 곳은 대형 시스템이다보니 한꺼번에 10g나 11g로 옮겨가는 것을 꺼려하고 있다. 이곳만해도 "만약 작업 소요 시간이 지금보다 느리게 나오면 어떻할거냐"는 문제와 함께 "여러대의 DB를 동시에 옮기는데 따른 서비스 중지 시간" 등의 문제로 인해서 쉽게 결정을 못하는 상태이다. 이런저런 문제가 있긴하지만 예산과 인력만 투입된다면 처리될 문제이다. 적어도 내가 보기엔...

물론 DataStage나 기타 관제 소프트웨어, 백업 구성 등등 신경쓸 문제가 너무 많다는것도 맘에 걸리긴 한다. 이런 문제를 한방에 해결하려면 도데체 몇군데 업체가 회의에 참가해야 할런지... 막막하기만 하다. 그래서 일단 Oracle 9i와 9i RAC 설치 연습을 하려고한다.

 운영체제로는 Linux를 선택했다. 앞으로 Linux를 사용하는 곳이 점점 늘어날거라 생각하고 있고(지난번에 소개한 HP Oracle ExaData라는 제품이 Linux 기반이다. 앞으로 이런 제품이 더 많아질거라 생각한다.), 고가의 UNIX 장비를 소유하지 못한 중소기업체에서도 Oracle에 대한 수요가 늘어날거라 생각하기에 Linux에 Oracle 9i를 설치하려고 마음먹었다.

 DB를 선택했고 Linux라는 운영체제를 선택했으니 이제 Linux 배포판을 선택해야겠다. Oracle에서 배포하는 Oracle Unbreakable Linux(다운로드 링크에는 Oracle Enterprise Linux라는 이름으로 되어있다.)를 사용할까 했으나 업데이트에 문제가 있어서 CentOS 4.7을 선택했다. 현재 CentOS는 5.x 버전이 있으나 Oracle 9i 관련 설치 문서는 RedHat Enterprise Linux 4 기반의 문서가 많기에 CentOS도 4.x 버전대를 선택했다. (CentOS는 RedHat Enterprise Linux의 클론이다.)



다른 UNIX 장비에 Oracle을 설치할때와 순서는 비슷하다.

1. 필수 Software 설치 및 OS 환경 설정하기
2. oracle user 환경 설정하기
3. Oracle 9.2.0.4 설치하기
4. Oracle 9.2.0.8 Patch 설치하기
5. Oracle DB 생성하기


 윈도우를 사용할 때도 마찬가지지만, 리눅스 시스템을 사용하다보면 크지는 않지만 알아두면 편리한 기능들이 있습니다. 이번에 소개할 문서는 그런 내용을 알려주는 문서입니다.

열가지 트릭을 소개하고 있는데요. 반응이 없는 DVD 드라이브 언마운트하기, Screen으로 협력작업 하기, 시스템정보 수집하기 등등의 유용한 팁을 알려주고 있습니다.

원문 : 게으른 리눅스 시트템 관리자를 위한 열 가지 트릭

열 가지 트릭을 익혀 전 우주에서 가장 강력한 리눅스(Linux®) 시스템 관리자가 되어봅시다. 음, 전 우주가 아닐지도 모르겠네요..., 하지만 큰 물에서 놀려면 이 정도 팁은 익힐 필요가 있답니다. SSH 터널, VNC, 암호 복구, 콘솔 훔쳐보기 등을 익힙시다. 각 트릭에는 예제가 따라오므로 각자 시스템에서 실험해볼 수 있습니다.

최강의 시스템 관리자는 효율성부터 다르다. 일반적인 관리자가 두 시간 만에 마칠 작업을 효율적인 시스템 관리자가 10분 내로 끝낸다면, 회사가 시간을 절약했고, 시간이 돈이니까 효율적인 관리자는 보너스를 받아야 하지 않겠는가?

트 릭은 효율성을 관리층에게 증명하는 데 있다. 이 기사에서 이런 정치적인 트릭을 다루지는 않겠지만 게으른 관리자의 트릭 주머니에 열 가지 핵심적인 보석을 넣어줄 계획이다. 여기서 소개하는 팁은 시간을 절약해주며, 좀 더 효율을 발휘해 돈을 벌지는 못할지라도 최소한 헤일로 게임을 하는 데 더 많은 시간을 확보할 수는 있을 것이다.


  이번에 새로 나온 따끈한 제품입니다. HP의 하드웨어(DL360 G5)와 Oracle Database, Oracle Enterprise Linux가 결합된 제품입니다.

 나날이 늘어만가는 데이터 때문에 DW 시스템 운영자에게는 커다란 고민거리죠.  그래서일까요. HP와 Oracle이 손잡고 Exadata라는 제품이 나왔습니다.

 
 Oracle에서 공개한 문서를 보면요, Oracle Enterprise Linux 기반의 Oracle 11g Real Application Cluster 제품이네요. 단순히 스토리지라고 생각을 했었는데...

 DataWarehouse를 위해서 익스트림!!!한 성능을 보여준다고합니다.
가격도 익스트림하면 도입하기 힘들지 않을까합니다만...

 그래도 리눅스 기반의 제품이 나오니 반갑네요.
아직까지 공개된 정보가 별로 없어서 리눅스 기반의 RAC 제품이며, 소프트웨어와 하드웨어가 결합된 형식의 제품으로 판매할 계획이라는 것만 아는 상태입니다.

 시스템 운영자라면 가장 중요한 업무중에 하나로 꼽는것이 바로 백업일 것이다. "복구에 실패한 DBA는 용서해도 백업에 실패한 DBA는 용서 할 수 없다"는 모 강사님의 말씀처럼 백업의 중요성은 백번을 강조해도 과함이 없습니다.
 규모가 큰 업체라면 티볼리같은 백업 솔루션을 사용하기도하지만, 일반적인 중소기업에서는 백업을 위한 스토리지 확보도 힘든게 현실이죠.

 이 문서에서는 간단한 로컬 백업에서부터 넷트워크를 이용해서 분산 백업하는 방식 및 이와 관련된 사항들을 설명하고 있습니다. 백업을 위한 스토리지를 확보했다면 이제 백업을 실습해보고 실무에 적용해보는 것도 좋겠죠.


원본 : 리눅스에서 백업 자동화하기(쉽게 할 수 있는 보안 분산 넷트워크 백업 DIY)

매우 중요한 데이터 손실은 굉장히 파괴적입니다. 그럼에도 수많은 전문가가 데이터 백업을 무시합니다. 이유야 제각기 다양하겠지만 가장 공통적인 해명은 판에 박힌 백업 수행이 정말 허드렛일이라는 것입니다. 기계는 평범하고 반복되는 일을 하는 데 탁월하므로 본래부터 단조로운 일과 사람의 선천적인 미루는 성향을 줄이는 핵심은 백업 과정을 자동화하는 것입니다.

리눅스를 사용한다면 맞춤 백업 솔루션을 만드는 데 필요한 굉장히 강력한 도구에 접근할 수 있다. 이 글에서 다룰 솔루션은 간단하면서 좀 더 진보적이고 안전한 네트워크 백업을 수행하는 데 도움이 될 것이다. 이 일을 하는 데는 거의 모든 리눅스 배포판의 일부로 들어 있는 오픈 소스 도구를 사용할 것이다.


 결혼한 친구들이나 직장 동료분들이 얘기하기를
"장가가기전에 사고 싶은거 다 사야한다. 결혼하면 아무것도 살 수 없다."라고 하더군요.

그래서 지금 계획중인게 몇가지 있는데 아무래도 자금 사정상 한가지 밖에 못 할 것 같습니다. 어떤걸 해야할까요?

1. 미니 ATX나 Mini-ITX 보드를 이용해서 저소음 PC를 조립한뒤에 리눅스를 설치해서 홈 미디어 서버를 구축해본다. 무선 마우스와 키보드 등을 이용해서 쇼파에 누워서 TV 화면으로 영화 감상...
 일단 PC 조립 가격만 60만원 가량이 소요될것 같다. 마우스랑 키보드가 무선이라...


2. PS3를 구매해서 리눅스를 설치해서 데스크탑 혹은 홈 미디어 서버로 구축한다. 아무래도 PS3라 폼은 좀 날것 같은데, Fedora ppc버전이 얼마나 좋은 성능을 발휘해줄지 모르겠다. 역시 무선 키보드와 마우스를 추가 구매해야하므로 거의 50~60만원 정도가 소요될것 같다.
 중고 PS3를 구매할 수 있다면 어느정도 아낄 수 있을것 같긴한데...


3. 맥 미니를 산다.


4. 고진샤 미니 노트북을 사서 이젠 구형이 되어버린 씽크패드 X-31을 대체한다.
 사실 고진샤 미니 노트북보다는 씽크패드 X-300이 더 좋을것 같긴한데, 너무 비싸더군요. 300만원정도니 원...


흠... 3번은 그다지 도전하는 재미는 없겠네요. 새로운 운영체제를 접한다는것 빼고는...
아무래도 1번과 2번에 상당히 끌리긴한데...
어떤게 좋을까요?
 실시간 아키텍쳐가 무엇인지 그리고 리눅스에서 지원되는 실시간 아키텍쳐에 대한 문서를 소개합니다.
 실시간 운영체제는 우리가 일반적으로 생각하는 정확한 연산이 이뤄지는 운영체제에 시간 제약이라는 요소까지 만족시키는 운영체제입니다. 이 문서에서는 "자동차가 충돌하는 시점에 에어백이 터지지 않는다면 없느니만 못하다"는 말로 실시간 운영체제의 예를 보여줍니다.


원문 : 실시간 리눅스 아키텍쳐 분석 (부드러운 실시간에서 딱딱한 실시간으로)


리눅스(Linux®)가 빠르거나 효율적이지 않다는 이야기를 하려는 의도는 아닙니다만, 어떤 경우에는 속력만으로 충분하지 않을 경우가 있습니다. 속력 대신 필요한 특성은 정해진 허용 범위 내에서 결정된 스케줄링 데드라인을 충족하는 능력입니다. 가상화 해법을 흉내내는 초기 아키텍처부터 표준 2.6 커널에 들어있는 옵션까지 다양한 실시간 리눅스 대안을 연구해서 각각이 어떻게 실시간을 달성하는지 살펴봅시다.

이 기사는 실시간 특성을 지원하는 몇 가지 리눅스 아키텍처를 살펴보고 실시간 아키텍처가 실제로 무엇을 의미하는지 설명한다. 몇 가지 해법이 리눅스에 실시간 능력을 부여하고 있으며, 이 기사에서 마이크로 커널 접근 방법, 나노 커널 접근 방법, 자원 커널 접근 방법을 분석하겠다. 마지막으로 표준 2.6 커널에 들어있는 실시간 기능을 설명하고 이를 활성화해 사용하는 방법을 보여주겠다.


+ Recent posts