AIX에서 hosts file의 내용을 수정하려면 다른 설정도 하나 바꿔야 한다고 하더군요.
/etc/netsvc.conf 파일의 아래에 "hosts = local, bind"를 추가하고, /etc/hosts 파일을 수정해야 적용이 된다고 하더군요.
 DB로 운영중인 AIX 서버의 Filesystem 용량을 변경해줘야할때가 있다. DBMS Patch 혹은 AIX Patch나 Upgrade 작업을 할때 바이너리 압축을 풀 공간이 부족하거나... 뭐 이런저런 이유로 말이다.
 AIX 장비를 운영중인 DBA라면 알고 있겠지만, AIX는 Volume Group으로 Disk를 묶어서 이를 필요한 마운트 지점에 올려준다. 표현이 부드럽지 않은면이 있지만, 뭐 잘 알아들으시리라 믿으며... (나중에 내가 이해 못하지는 않겠지. ㅋㅋㅋ) 암튼 그래서 이 방식의 장점은 운영중에도 용량을 변경할 수 있다는 것이다. Linux 장비에서도 LVM을 사용해서 파일시스템을 구성하면 이런식으로 쓸 수 있다고 한다. 아직까지 시도해보지는 않아서 Linux에서 LVM이 쓸만한지는 모르겠다.


[TEST1:/] su - root (엔터)   <= 당연한 얘기겠지만, root 계정으로 작업을 해야한다. 현재 로그인한 사용자 id를 모르겠다면 id라고 입력하면 현재 로그인한 사용자의 정보를 보여준다.

[TEST1:/] smitty jfs2 (엔터)  <= 이렇게 하면 관리자 화면이 뜹니다.
아래의 메뉴 중에서 위에서 세번째에 있는 메뉴가 바로 File System을 변경하는 메뉴입니다. 여기로 커서를 옮기고 엔터키를 누르면 해당 메뉴로 들어갑니다.
  Add an Enhanced Journaled File System
  Add an Enhanced Journaled File System on a Previously Defined Logical Volume
  Change / Show Characteristics of an Enhanced Journaled File System
  Remove an Enhanced Journaled File System
  Manage Quotas for an Enhanced Journaled File System
  Defragment an Enhanced Journaled File System
  List Snapshots for an Enhanced Journaled File System
  Create Snapshot for an Enhanced Journaled File System
  Mount Snapshot for an Enhanced Journaled File System
  Remove Snapshot for an Enhanced Journaled File System
  Unmount Snapshot for an Enhanced Journaled File System
  Change Snapshot for an Enhanced Journaled File System
  Rollback an Enhanced Journaled File System to a Snapshot


정상적으로 세번째 메뉴로 커서를 옮기고 엔터키를 눌렀으면 아래와 같은 선택 메뉴가 나온다. 어떤 파일시스템을 수정할것인지 선택하는 메뉴이다. 여기서 원하는 파일시스템으로 커서를 옮기고 마찬가지로 엔터키를 눌러주면 해당 파일시스템의 정보를 수정하는 화면으로 이동한다.
                                                                         File System Name                            
                                                                                                                          
                                             Move cursor to desired item and press Enter.                            
                                                                                                                         
                                               /                                                                     
                                               /home                                                                 
                                               /usr                                                                 
                                               /var                                                                  
                                               /tmp                                                                  
                                               /opt                                                                  
                                               /var/adm/ras/platform 

용량 수정을 할때 미리 단위(KB, MB, GB)를 설정해주고 크기를 수정해준다. 5 GB 정도 늘릴건데 단위를 KB로 해놓으면 숫자키 입력하기 바쁘지 않겠는가. 단위 선택을 잊지 말자.
단위 선택은 "Unit Size" 항목이며, 용량 설정은 "Number of units"이다.

                                                           Change / Show Characteristics of an Enhanced Journaled File System

Type or select values in entry fields.
Press Enter AFTER making all desired changes.
 
                                                        [Entry Fields]
  File system name                                    /tmp
  NEW mount point                                    [/tmp]
  SIZE of file system
          Unit Size                                   512bytes                                                                                                                       +
          Number of units                            [2097152]                                                                                                                        #
  Mount GROUP                                        []
  Mount AUTOMATICALLY at system restart?              yes                                                                                                                            +
  PERMISSIONS                                         read/write                                                                                                                     +
  Mount OPTIONS                                      []                                                                                                                              +
  Start Disk Accounting?                              no                                                                                                                             +
  Block Size (bytes)                                  4096
  Inline Log?                                         no
  Inline Log size (MBytes)                           [0]                                                                                                                              #
  Extended Attribute Format                          [v1]
  ENABLE Quota Management?                            no                                                                                                                             +
  Allow Small Inode Extents?                          no                                                                                                                             +

 입력이 다 끝나면 변경된 내용을 적용하기 위한 단축키(ESC + 4)를 눌러준다. 그러면 적용이 된다.
ESC + 4 : 용량 설정 후 적용할때 단축키

 그리고 smitty에서 빠져나가는 단축키(ESC + 0)을 눌러준다. 평소에는 F10을 눌러서 나갈수도 있는것 같은데 AIX 엔지니어가 이 단축키를 알려줬다. 아마... 뭔가 이유가 있겠지??? 이유를 알게되면 내용을 추가하겠다. 그럼 이만~~~
ESC + 0 : smitty에서 빠져나갈때 단축키

 오랫만에 AIX에 Oracle Database client를 설치할 일이 생겼습니다. 그런데, X window로 원격 접속을 하려는데 너무 느려서 화면이 뜨지를 않더군요. telnet으로만 접속해서 작업을 해야할 상황이 되었습니다. 근데 telnet 접속도 아주 느리네요.
 그래서 Oracle client를 설치하는 것 보다는 Instant client를 설치하는 것이 적절할거 같아서 Instant client를 다운 받았습니다. 용량도 적당하고, 설치도 쉽고... 이렇게 진행을 했죠. ORACLE_HOME, TNS_ADMIN, ORACLE_BASE, PATH와 LD_LIBRARY_PATH 등을 설정을 하고 sqlplus를 실행시켰더니 오류가 발생하더군요.

Message file sp1<lang>.msb not found

 우잉 이건 뭐지??? 구글님께 여쭤보니 환경 변수를 설정하라는 내용의 글들이 많이 보이더군요.
그중에서 OTN에서 찾은 아래의 두 글에 해답이 있었습니다.
Message file sp1 lang .msb not found
AIX instantclient "Message file sp1<lang>.msb not found"

AIX에서는 LIBPATH를 설정해줘야 하는데, 제가 이건 쏙 뺐더군요.
아... 그리고 결정적으로 제가 설치 관련 내용을 잘 따르지 않았다는걸 알게 된게요.
바로 아래의 링크를 클릭하시면 나오는 인스턴트 클라이언트 다운로드 웹 페이지 하단에 있는 영문 설명이더군요.

Instant Client Downloads for AIX5L (64-bit)

내용은 아래와 같습니다.

Installation Steps:

1. Download the appropriate Instant Client packages for your platform. All installations REQUIRE the Basic package.


2. Unzip the packages into a single directory such as "instantclient".

3. Set the library loading path in your environment to the directory in Step 2 ("instantclient"). On AIX, LIBPATH is the appropriate environment variable.

4. Start your application and enjoy.


 AIX 서버의 성능 문제가 생겨서 리포트를 작성할 일이 생겨서 nmon을 이용하기로 했습니다. 예전에 제 블로그에 소개했던 nmon 관련 문서를 떠올리곤 TAG목록에서 nmon을 찾아서 문서를 열었죠.
원문보기 : [소개] IBM DeveloperWorks : nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴 (한글)

우선 nmon으로 10시간 가량 모니터링을 하기로 하고 아래와 같이 옵션을 줘서 모니터링을 시작했습니다.

-fT : 파일로 저장하도록 한다. 대문자 T는 top process까지 저장하도록 하는 옵션이다. 이 옵션이 필요없으면 -f로 하면 된다.
-s : 스냅샷을 찍는 간격. 초 단위이다. 300은 5분 간격을 의미한다.
-c : 스냅샷을 찍는 횟수. 5분간격으로 132번을 찍으니까... 10시간이 된다.

# nmon -fT -s 300 -c 132

5분 간격으로 10시간동안 스냅샷을 찍도록 했죠. 그리고 최신 버전의 nmon analyser를 다운로드 받았습니다. 현재 3.3버전이 최신이네요. IBM의 영문 웹 사이트에서 다운로드 받을수 있습니다. nmon analyser을 이용하면 보기좋게 그래프까지 만들어 주네요
저장되는 파일이름은 [호스트명_년월일_시분.nmon]의 형식이며, 모니터링을 시작한 시분이 표시된다. 파일 하나에 데이타가 저장된다.(5분마다 하나씩 생성될줄 알았는데... 하나에 통채로 들어가네요. ^^;)



 최근에 AIX server 문제로 구글링을 하던중에 알아두면 좋을것 같은 내용이 담긴 문서를 발견했습니다. [반드시 알아둘 AIX 명령]이라는 문서입니다. 예전에 봤던 IBM DW 문서와 내용이 조금 틀린것 같아서 소개합니다.

 나날이 어려워지는 경제 여건속에 어떻게든 살아남으려면 기초 기술력 향상 밖에는 방법이 없는것 같다는 생각이 듭니다. 개발자가 아니라 DBA나 SE 같은 직종이라면 OS는 기본이겠죠. 그래서 더욱 AIX 관련 명령어를 소개하는 이 문서를 읽어둘 필요가 있다고 생각합니다.

 작년에는 그냥 지나갔지만 올해 12월 말에는 올 그 동안 소개했던 IBM DeveloperWorks의 문서중에서 각 분야별로 다시한번 읽어보면 좋을만한 문서들을 하나씩 뽑아볼까합니다. 뭐... 그러면서 기술문서들 한번씩 훑어보는거죠 ^^


원문 : 반드시 알아둘 AIX 명령

AIX®와 System p™ 서버를 사용하다가 의문이 생기면 어떻게 처리하십니까? 고객 지원팀에게 늘 문의하지 않고서 스스로 해결하고 싶습니까? 이제 걱정을 접으십시오. 이 기사에서 Shiv Dutta가 독자들의 의문에 답하는 AIX 명령을 소개합니다.

시작하면서

알 다시피, AIX®가 제공하는 명령은 다양한 작업을 수행하도록 그 수가 많다. 사용자는 수행하려는 작업에 따라 일부 명령 집합을 선택해 사용한다. 사용자가 선택하는 명령 집합은 사용자마다 그리고 작업마다 다르다. 하지만 대다수 사용자가 흔히 사용하는 핵심 명령 집합이 있다. AIX를 사용하다 의문이 생겨서 답을 구하든, 고객 지원팀이 요청하는 정보를 구하든, 어떤 상황이든 유용한 명령 집합이다.

이 기사에서는 몇 가지 핵심 명령을 소개한다. AIX® 사용자라면 반드시 알아둘 명령이다. 각 명령은 이론상 AIX 모든 버전에서 똑같이 동작하지만, AIX 5.3에서만 테스트를 수행했다.

참고:
다음 절에서 설명하는 bootinfo 명령은 사용자 권한으로 실행하지 못한다. 또한 AIX 4.2 이후 버전은 bootinfo 명령을 지원하지 않는다.


 유닉스나 리눅스 시스템을 이용하다보면 자주 나오는 inode에 대한 IBM DeveloperWorks의 문서를 소개합니다.

원문 : 유닉스를 능숙하게 사용하기: inode에 대한 모든 것


df와 같은 유닉스 명령어에서 Iused%Iused가 무엇을 의미하는지, 아니면 사람들이 inode에 대해 이야기할 때 궁금증을 느낀 경우가 없습니까? 유닉스(UNIX®)와 리눅스(Linux®) 시스템은 모두 inode를 사용하며, IBM® AIX®라고 해서 다르지 않습니다. inode가 무엇이며, inode가 유닉스에 중요한 이유, inode의 구조, inode와 관련이 있는 명령어를 알아봅시다.

inode는 유닉스 운영체제에서 사용하는 자료 구조로, 파일 시스템 내부에 파일을 유지하는 중요한 정보를 담고 있다. 유닉스에서 파일 시스템을 생성할 때, 수 많은 inode 집합을 생성한다. 일반적으로 전체 파일 시스템 디스크 용량의 대략 1% 정도가 inode 테이블에 할당된다.

종종 사람들은 inodeinumber를 섞어서 사용한다. 두 용어는 비슷하며, 서로 관련이 있지만 똑같은 개념을 나타내지는 않는다. inode는 자료 구조다. inumber는 실제 inode 인식 번호이므로 inode numberinumber라고 부른다. inumber는 파일 정보를 담은 중요한 항목일 뿐이다. inode에서 몇 가지 다른 속성은 다음 절에서 설명한다.

inode 테이블은 개별 파일 시스템을 위한 모든 inode 숫자 목록을 포함한다. 사용자가 파일에 접근하려면, 유닉스 시스템은 올바른 inode 번호로 inode 테이블을 탐색한다. inode 번호를 발견하면, 사용자가 내린 명령이 inode에 접근해서 가능하다면 적절한 변경 작업을 진행한다.

예를 들어, vi로 파일을 변경하는 작업을 생각해보자. vi <filename>이라고 입력할 때, inode 숫자를 inode 테이블에서 찾아 inode를 연다. vi 편집 세션 중에서 몇 가지 속성이 변경되며, :wq로 작업을 종료할 때, inode가 닫히며 해제된다. 이런 식으로 사용자 두 명이 같은 파일을 동시에 편집하면, inode가 편집 세션을 연 사용자 ID에 할당되며, 다른 사용자는 inode가 해제되기를 기다려야만 한다.


 기존에 AIX 서버에서 Oracle DB를 운영중이었는데, 여기에 개발용으로 Instance를 하나 추가하는 작업을했습니다. 여러가지 작업이 필요하지만 CREATE DATABASE 명령을 실행하기 전에 해야하는 작업 내용을 정리해보려합니다. 사전 작업 때문에 사실 고생을 좀 했거든요.

1. Parameter file 생성
 $ORACLE_HOME/dbs 디렉토리에 보면 기존 DB에서 사용하는 Parameter file이 있다. 이 파일을 수정해서 init[SID].ora라는 이름으로 파일을 생성한다. 이 작업은 oracle 계정(UNIX 계정)에서 수행해야한다.
 파일 내용중에서 SID, DBNAME, Control file의 위치 및 이름 그리고 디렉토리 이름등을 수정해야한다.
예를 들어 새로 만들 개발DB의 SID를 NEWDEV라고 하면.
수정해줘야 할 부분은 아래와 같다. 음... 그외에도 손볼곳을 손본뒤에 저장한다.
###########################################
# Database Identification
###########################################
db_domain=""
db_name=NEWDEV

###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=/oracle/dbms/admin/NEWDEV/bdump
core_dump_dest=/oracle/dbms/admin/NEWDEV/cdump
timed_statistics=TRUE
user_dump_dest=/oracle/dbms/admin/NEWDEV/udump

###########################################
# File Configuration
###########################################
control_files=("/db1/NEWDEV/control01.ctl","/db2/NEWDEV/control02.ctl")

###########################################
# Instance Identification
###########################################
instance_name=NEWDEV

###########################################
# MTS
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=NEWDEVXDB)"

###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_retention=3600
undo_tablespace=UNDOTBS1   <= 이 부분은 CREATE DATABASE 명령을 실행할때와 이름을 맞춰줘야한다.


2. Password file을 생성한다.
 Parameter file과 마찬가지로 $ORACLE_HOME/dbs 디렉토리에서 아래 명령을 실행한다.
# orapwd file=orapwNEWDEV password=비밀번호

그리고 중요한거... 기존의 oracle이라는 UNIX 계정이 아닌 다른 계정에서 oracle이 실행되므로 password file은 oracle 계정(UNIX 계정)에서 생성하고, chmod 명령을 이용하여 권한을 777로 만들어 줘야한다. 근데 instance를 추가하고 난뒤에 DB를 생성하면 이게 원상태로 돌아가버리던데... 이건 뭐가 문제인지...

 DB Server migration 작업의 네번째 이야기입니다.
이번에 할 얘기는 장비 설치입니다. 설치는 S/W가 아니라 H/W의 설치를 뜻합니다. 제 경우처럼 대형 장비가 들어올 경우에 여러 업체에서 다양한 엔지니어들이 들어와서 설치를 하게됩니다. 일정 조정은 지난번에 말씀드렸으니 이번엔 설치하던 날에 대해서 얘기해보죠.

 우선 토요일 오후에 시작해서 일요일 오전에 끝나도록 일정이 잡혔고, 시간대별로 각 업체의 엔지니어분들이 들어왔습니다. 이번 작업을 하면서 서비스를 내리게되자 다른 서버의 펌웨어 업그레이드와 패치 등의 작업도 함께하게 되었습니다. 서비스를 자주 중지할 수 없는, 그리고 중지하더라도 넉넉하게 작업 시간을 확보할 수 없는 환경에서 이런 대형 공사가 있게되면 다른 작업도 함께 하게 되죠. 저희의 경우엔 기존 IBM P-595의 펌웨어 및 관리콘솔의 펌웨어 업그레이드도 함께 하게 되었습니다.

 1. 스토리지 증설
 스토리지에 새로 들어온 장비를 위한 디스크를 장착하고 포멧을 했죠.


2. 펌웨어 업그레이드
 이건 새로 들어온 장비와 상관없이 기존 장비 유지보수를 위한 작업이었죠. 이렇게 10시간 이상 다운타임이 생기면 정말 감사할 따름이죠. ^^


3. 서버 설치
 서버가 꽤 무거운 관계로 서버 납품 업체에서 네분 정도가 지원을 나오셨더군요.
너는 뭘 했냐고 물어보시면... 음... 저는 "갑"은 아니지만 작업 진행 상황을 체크하는 입장이라서 바쁘게 돌아다니기만 했습니다. ^^; 그리고 대형 서버 장비의 경우에는 납품 업체에서 모든걸 처리합니다. 혹시나 도와준다고 했다가 문제 생기면 그쪽에서 책임을 지지 않죠. IBM, HP, SUN 등등 대부분의 대형 서버 밴더들은 그렇습니다.
 서버 장착하는데도 커다란 공구가 필요하더군요. 저는 공구만 옮겨드렸었습니다.


4. SAN 및 기타 넷트웍 케이블 연결
 스토리지, 인터넷 서비스 등을 위한 SAN 케이블을 연결하고 잘 인식하는지 확인합니다. 3번과 4번 사이에는 아주 많은 시간 차이가 있습니다. 엔지니어분들이 고생하셨죠. 수고하셨습니다.~~


 그후.
설치후에 기본적인 설정을 하게됩니다. 그 이야기는 다음에 하도록 하겠습니다. 점심시간이 끝나가네요.

 "사무실의 아무 자리에나 앉아서 아이디와 비밀번호를 입력하면 내가 사용하던 환경이 뜨면서 업무를 볼 수가 있습니다." 어느 영화에서나 보던, 혹은 어느 외국계 기업에서 사용한다던 얘기이지만, 실제로 구현 가능한 기술들이죠. MS의 액티브디렉토리 기술을 사용해서도 구현이 가능하다고합니다.

 이번에 소개할 문서는 유닉스, 리눅스 환경에서 이런 기능을 할 수 있게 해주는 기술들에 대한 내용입니다.
NIS, NIS+, NFS, Automounter, 시각동기화 등의 기술을 이용해서 구현하는 법을 설명하고 있습니다. NIS, NFS는 모두 SUN Microsystems가 만든 기술들로 AIX, HP-UX, Solaris, Linux에서 모두 사용 가능합니다.

원문 : 유닉스와 리눅스를 함께 어울리게 만들기

 이 글을 쓴 마틴 브라운은 자유기고가로 IT 컨설턴트이면 프리랜서 작가입니다. 번역은 박재호, 이해영씨가 수고하셨습니다.


NIS(Network Information Service)로 리눅스(Linux®)와 유닉스(UNIX®) 사이에 핵심 데이터베이스를 공유하는 방법과 NFS(Network File System)로 직접 연결하거나 automounter로 파일 시스템을 공유하는 방법을 살펴봅니다. 유닉스와 리눅스는 비슷하지만, 두 시스템을 통합하는 과정을 복잡하게 만드는 몇 가지 차이점이 있습니다. 예를 들어, 동일한 인증 시스템을 공유하지만, 대다수 시스템은 또한 단독으로 동작합니다. 이런 인증 정보 공유는 네트워크에 물린 모든 서버에 SSO(Single Sign-On) 기능을 제공합니다.

 유닉스/리눅스를 사용하다보면 다양한 작업을 시간대 별로 실행 시켜야 할 때가 있습니다. 사용자들이 적은 시간대에 해야할 작업, 특정 시각에 해야 할 작업, 특정 작업이 종료된 다음에 할 작업... 등등 작업은 아주 많습니다.
유닉스/리눅스에서는 cron이라는 프로그램을 이용해서 배치작업을 처리하죠. 이번에는 cron과 at을 이용한 작업 일정 관리에 관한 문서를 소개하려 합니다.

원문 : 리눅스 팁: cron과 at를 사용한 작업 일정 관리 (한글)


아래는 서문을 발췌한 것입니다.

2008 년 3 월 25 일

시스템 사용량이 적어진 한밤중에 작업을 실행할 필요가 있거나 일일이나 주간 단위로 작업을 수행할 필요가 있지만, 잠도 자야겠고 다른 활동도 하면서 삶을 즐기고 싶습니다. 작업 일정 관리가 필요한 또 다른 좋은 이유는 반복적인 과업을 자동으로 수행하도록 만들거나 매번 동일한 방식으로 과업을 수행하도록 만들고 싶기 때문입니다. 여기서 소개하는 팁은 주기적으로나 일회성으로 미래 작업 일정을 관리하는 cronat 기능을 활용하도록 도와줍니다.

리눅스(Linux®)와 유닉스(UNIX®) 시스템은 일회성이거나 반복적인 미래 작업 일정을 관리하도록 만들어준다. LPI exam 102 prep: Administrative tasks에서 발췌한 이번 기사에서는 주기적으로 작업 일정을 관리하는 방법과 미래에 작업을 수행하는 방법을 보여준다.

많 은 시스템 관리 작업은 리눅스 시스템에서 종종 주기적으로 수행해야만 한다. 이런 작업에는 로그 파일을 회전시켜서 파일 시스템이 가득 차지 않도록 만들기, 자료 백업하기, 시스템 시각을 동기화하기 위한 서버 연결과 같은 작업을 포함한다. 이런 관리 작업에 대한 세부 사항은 위에서 언급한 튜토리얼을 참조하기 바란다. 이번 팁에서는 리눅스에서 사용 가능한 작업 일정 관리 패키지인 cron, crontab, anacron, at 명령을 다룬다. 시스템이 잠들거나 꺼져 있더라도, anancron은 다음 번에 깨어날 때 작업을 따라잡도록 도와준다.




+ Recent posts