728x90

# HSODBC 설정 방법

 

1. ODBC 설정

 오라클이 설치된 NT 장비에서 [제어판 [관리도구 [데이터원본(ODBC)] 메뉴 선택

 . ODBC 데이터 원본 관리자 창에서 [시스템 DSN] 탭메뉴 선택 후 추가 버튼 클릭

 새 데이터 원본 만들기 창에서 [SQL Server] 드라이버 선택

 . SQL Server에 새로운 데이터 원본 만들기 창의 이름 항목에 ‘hsodbctest설명 항목은 생략
     
서버 항목에 임시장비2 IP 입력

 . Microsoft SQL Server DSN 구성 창에서 ‘사용자가 입력한 로그인 ID 및 암호를 사용하는 SQL Server 
     
인증 사용’에 체크 하고,
 하단의 ‘추가 구성 옵션의 기본 설정을 얻기 위해 SQL Server에 연결’에도 체크 후 
     ID 
및 암호 항목에 임시장비2에 설치된 
MSSQL DB의 계정 정보를 입력

 그 이후 단계는 디폴트로 진행

 

 

2. 오라클 HSODBC 설정

 . $oracle_home\network\admin\tnsnames.ora 파일 수정 (붉은색 부분 추가)


hsodbc =

      (DESCRIPTION=

        (ADDRESS=(PROTOCOL=tcp)

        (HOST=127.0.0.1)

        (PORT=1521))

        (CONNECT_DATA=(SID=hsodbc))

        (HS=OK)

      )

 

 . $oracle_home\network\admin\listener.ora 파일 수정 (기존 리스너 환경에 붉은색 부분만 추가)


SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

    (SID_DESC=

      (SID_NAME=hsodbc)

      (ORACLE_HOME=C:\oracle\product\10.2.0\db_1)

      (PROGRAM=hsodbc)

    )

  )

 

 . $oracle_home\hs\admin\inithsodbc.ora 파일 수정 (기존 parameter 항목에 붉은색 부분 반영)


HS_FDS_CONNECT_INFO = 
hsodbctest

HS_FDS_TRACE_LEVEL = off

 

 오라클 리스너 restart

  - cmd 창에서 lsnrctl 입력 후 stop -> start 명령어 입력

 

 

3. 오라클 DB Link 생성

 . cmd 창 또는 SQLPLUS 프로그램을 통해 오라클 DB 접속 (DBA 권한이 있는 계정으로 접속)

 다음과 같은 쿼리문으로 DB Link 생성 (ID/PW는 오라클 DB가 아닌 MSSQL DB의 계정의 ID/PW )


CREATE PUBLIC DATABASE LINK 
hsodbc

CONNECT TO <MSSQL-ID> IDENTIFIED BY <MSSQL-PW> USING 'hsodbc';

 

 

4. 검증

 오라클 DB 접속

 . DB Link를 통해 MSSQL DB 내 특정 객체(테이블/조회


select count(*) from 
테이블
@hsodbc;




<참고 자료> 
- How to setup generic connectivity (HSODBC) for 32 bit Windows (Windows NT, Windows 2000, Windows XP, Windows 2003)
728x90

'Oracle > oracle' 카테고리의 다른 글

Optimizing GROUP and ORDER BY  (0) 2011.04.13
오라클 캐릭터셋 확인  (0) 2011.03.08
Oracle 11g - ADRCI : IPS  (0) 2010.05.20
NOT IN과 NOT EXISTS의 차이점  (0) 2010.05.03
NOT IN, NOT EXISTS, MINUS의 효과적인 튜닝방법  (0) 2010.04.01
728x90

/etc/man.config 파일 수정



PAGER      /usr/bin/less -iRs

-> PAGER       /usr/bin/less -isr

728x90

'*nix' 카테고리의 다른 글

*NIX 별 커널 파라미터 설정  (0) 2010.07.07
nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴  (0) 2010.07.07
Unix 프로세스 Job Control  (0) 2010.06.14
sed 사용법  (0) 2010.06.01
vi 특정문자열 삭제  (0) 2010.06.01
728x90

Job과 프로세스
  Job 제어는 많은 shell(Bash, Tcsh 포함)에서 제공되어지며, 다수의 명령어나 job을 
동시에 제어할 수 있게 해준다. 이것을 더 설명하기 전에 프로세스에 대한 설명이 필
요하다.
  프로그램을 실행할 때는  언제나 운영되는 프로그램의  단순한 이름으로 시작한다. 
'ps' 라는 명령어는 현재의 운영되는 프로세스의  목록을 출력해 준다. 예제를 아래와 
같이 보인다. 
         /home/larry# ps
            PID   TT   STAT    TIME    COMMAND
             24    3     S     0:03    (bash)
            161    3     R     0:00    ps
         /home/larry#
  첫 번째 칼럼의 PID 목록은 프로세스 ID이며, 이것은 모든  운영되는 프로세스에게 
주어지는 단위 숫자이다. 마지막 칼럼의 COMMAND는 운영되는 명령어의 이름이다. 
여기에, 우리는 Larry가  운영하고 있는  프로세서만을 볼 수  있으며, 현재  Larry의 
shell인 'bash'와 'ps' 명령만이 있다. - 실제로 시스템에  운영되는 많은 프로세스들이 
있으며, 이것은 'ps -aux'로 볼 수 있다. - 여기서 볼 수 있는 것처럼, 'bash'는 'ps' 명
령어와 동시에 운영됨을 알 수 있다. Larry가 명령어를 입력하면 'bash'가 'ps'를 실행
한 것이다.  'ps' 이후는  운영이 끝나고(프로세스   목록의 출력이 끝나고)  제어권이 
'bash'에게 되돌아오며, 프롬프트가 출력된후 다시 명령어 대기상태가 된다.
  운영되는 프로세스는 shell에서 "job"이라고 한다. 프로세스와 job은 상호 변경될 수 
있다. 어쨌든, 프로세스는 몇 개의 독립적인 "job"들 사이를 전환할 수 있으며, shell의 
job 제어가 또한, "job"이라고 일컬어진다.
  대부분의 경우 사용자가 shell에게 마지막 입력한 명령어가 단일 job으로 운영된다. 
job 제어를 사용하면, 여러 개의  job을 한번에 할 수  있으며, 필요할 때마다 전환할 
수 있다. 예를 들어, 문서 파일을 편집하고 있으며, 어떤 다른 일들을 하기 위해 편집
을 보류해야 할 경우가 있다고 하자. job 제어를 사용하면, 에디터를 임시적으로 잠시 
보류하고, shell 프롬프트로 돌아와서 다른 작업을 할 수 있다. 작업이 끝나면, 에디터
를 종료하지만 않았다면 어디에서든지 다시 에디터로 되돌아올 수 있다. 이것은 단순
히 한 예에 불과하지만, 실제로 매우 유용하다. 
포그라운드와 백그라운드
  job은 포그라운드에서와 백그라운드에서 할 수 있다. 포그라운드에서의  job은 한번
에 한 job만 할 수 있으며, 키보드로부터 입력을  받고, 화면으로 출력을 보내는 상호
작용이 이루어지진다. (물론 입력과 출력을 리디렉트 시킬 수 있다.)  다른 말로 하면, 
백그라운드에서의 job은 터미널로부터 입력을 받지  못한다. 따라서, 상호작용이 별로 
필요하지 않는 작업에 일반적으로 사용된다.
  프로그램 컴파일이나 압축같은 작업은 시간이  소요되며 또한, 처리되는 동안 어떠
한 다른 입력을 필요로 하지 않는다. 이런 종류의 작업들을 백그라운드로 실행시키면, 
다른 프로그램을 운영할 수 있는 여유를 갖게 된다. 또한,  하나이상의 작업을 백그라
운드로 운영할 수 있으며, 포그라운드에서의 처리 속도와의 차이는 거의 나지 않는다.
  job은 또한 보류될 수 있다. 보류된 job은 현재 운용되는 job은 아니고, 잠시 멈추는 
것이다. job을 보류한 후에 포그라운드에서든지 백그라운드에서든지 그  job을 필요에 
따라 계속하게 할 수 있다. 보류된 job은 어떠한 방법으로도 그 상태가 변하지 않으며 
강제로 종료시키지 않을 때까지 계속 유지된다.
  보류된 job은 인터럽팅된 job과는  같지 않다. 운영되는 프로세스를  인터럽트 시킬 
때( 인터럽트 키는 stty 명령으로 설정할 수 있으며, 디폴트는  [ctrl-C]이다.) 는 프로
세스를 제거하는(kill) 것이다. job이 제거되면, 그 job을 다시 할 수 없고, 명령을 다시 
실행하여야 한다. 어떤 프로그램은 인터럽트를 [ctrl-C]로 즉시 job을 중지하지 못하게 
한다. 이것은 프로그램이 실행하기 이전의 깨끗한 상태로 유지하기 위하여 단순히 인
터럽트를 중지되는 것을 허용하지 않는 것이다. 
백그라운드 시키기와 Job 제거
  간단한 예제로 시작해 보자. 명령어 'yes'는 끊임없이 y를 출력하는  명령이다. 이것
은 어떤 명령어가 계속적인 질문으로 답을 요구하는 경우, 그것이 보통 yes라는 답이 
된다면, 파이프를 사용하여 y를 계속 보내 답을  하는 것으로  유용하게 사용되어 질 
수 있다.
        /home/larry# yes
          y
          y
          y
  y가 계속 끊임없이 출력된다. 인터럽트 키, 보통 [ctrl-C] 같은 것으로서 프로세스를 
제거할 수 있다. 이런 y의 출력들이 귀찮다면, yes의 표준 출력을 /dev/null 로 리디렉
트 시켜 보자. /dev/null 은 데이터의 "black hole" 로 작용한다. 어떠한 데이터도 이곳
으로 보내면 나타나지 않는다. 이것은 질문을  계속 물어 보는 성가신 프로그램을 조
용하게 만드는 아주 효과적인 방법이다.   
         /home/larry# yes > /dev/null
  아무것도 출력되지 않으며, shell 프롬프트로 되돌아오지도 않는다. 이것은 yes가 여
전히 운영되고 있으며, 계속 /dev/null 로  'y'를 출력하고 있는 것이다. 따라서, job을 
제거하기 위해서 인터럽트 키를 눌러야 한다.
  가정을 해보자. 우리는 yes의 명령이 계속되기를 바라나, 다른 작업을 하기  위해서 
shell 프롬프트로 되돌아오기를 원한다. 그러면, 우리는 백그라운드로 yes를 실행해 놓
을 수 있다. 이것은 그것이  계속 운영되고 있는 있는  것이지만 상호 작용할 필요는 
없는 것이다. 
  백그라운드로 프로세스를 놓는 방법은 명령어의 끝에 "&"를 추가하는 것이다.
         /home/larry# yes > /dev/null &
         [1]  164
         /home/larry#
  위에서 볼 수 있는 것처럼, shell 프롬프트가 되돌아 왔다. 그런데, "[1] 164"는 무엇
일까? 그리고, 'yes'의 명령이 정말로 실행되고 있는 것일까?
  "[1]"은 yes 프로세스의 job 번호를 표시하고 있다. shell은 모든 운영되는 job을 job 
번호로 지정한다. yes는 현재 운영되고 있는 오직 하나의 job이기 때문에 job  번호 1
인 것이다. "164"는 프로세스 ID 또는 PID 라는 것이며, 이것은  시스템이 job에게 주
는 프로세스 번호이다. 이러한 번호들은 모두 job을 가르키는데 사용된다.
  백그라운드로 yes 프로세스가 계속적으로 /dev/null에 'y'들을 보낼  수 있다. 이 프
로세스의 상태를 검사하기 위해서는 셀 명령인 'jobs' 을 사용하면 된다.   
         /home/larry# jobs
         [1]+   Running                      yes  >/dev/null   &
         /home/larry#
  운영중인 것을 확인할 수 있다. 또한 'ps'명령어를 사용하여 위에서 검사한 것과 같
은 job의 상태를 알 수 있다. 
  job를 정지시키기 위해서는 'kill' 명령어를 사용해야 한다.  이 명령어는 job 번호나 
프로세스 ID 번호를 인자로서 사용한다. 이것은 job 번호는 1이며, 명령어를 사용하기 
위해서는 아래와 같이 입력한다.
         /home/larry# kill %1
  위와 같이 하면 job은 제거될 것이다. job이나 job 번호를  표시하려 할 때는  퍼센
트 문자의 위치에 번호를 넣으면 된다.
  지금 우리는 job을 제거하였고, 'jobs'을 사용하고 그것을 다시 검사하고 있다. 
        /home/larry# jobs
        [1]+   Terminated                   yes  >/dev/null
        /home/larry#
  job은 확실히 제거되었고, 'jobs' 명령어를  다시 사용한다면, 아무것도 출력되지 않
을 것이다.
  또한 프로세스 ID(PID) 번호를 사용하여 job을 제거할  수 있다. PID는 job이 시작
할 때 job ID와 함께 출력되는 것이다.  우리의 예제에서, 프로세서 ID는 164이다. 따
라서,
        /home/larry# kill 164
  은, 아래와 동일한 기능을 수행한다,
        /home/larry# kill %1
  프로세스 ID에 의한 job을 언급할 때는 "%"를 사용할 필요가 없다.
Job의 보류와 계속하기
  백그라운드 안으로 job을 넣는 또 다른 방법이 있다. job을 보통으로 실행(포그라운
드로) 시킬 수 있으며, job을  멈출 수도 있고, 백그라운드로 재실행  시킬 수도 있다.  
이것을 아래에 설명한다.
  먼저, 포그라운드로 yes를 실행한다.
        /home/larry# yes > /dev/null
  yes가 포그라운드로 실행이 되었기 때문에, shell 프롬프트로 바로 돌아올 수 없다.
  지금, '[ctrl-C]'로서 job을 인터럽팅하는 대신에, job을 보류해 보자. job을 제거하
지않고, 보류시킨다는 것은 재실행하기 전까지 잠시 멈춘다는 것을 의미한다. 이렇게 하
기 위해서는 보류 키를 눌러야 하며, 일반적으로 '[ctrl-Z]'이다.
        /home/larry# yes > /dev/null
        [ctrl-Z]
        [1]+   Stopped                      yes  >/dev/null
        /home/larry#
  보류된 job은 단순히 실행이 멈춘 것이다. CPU 나 메모리는 job을 위해 전혀  사용
되지 않는다. 여기서 아무것도 변하지 않은  보류되기 이전 job 상태로 재실행 할  수 
있다.
  이 job을 포그라운드로 재실행하기 위해서는 명령어 'fg'(forground)를 사용한다.
        /home/larry# fg
        yes >/dev/null
  shell은 포그라운드로 바꾸었던 명령어의 이름을 다시 출력한다. 다시 job을 멈추게 
하려면 '[ctrl-Z]'를 사용한다. 이번엔 명령어 'bg'를 사용하여 job을 백그라운드로 놓아 
보자. 이것은 처음에 명령어를 입력할때 끝에 "&"를 사용하여 실행했었던 것과 같다.
        /home/larry# bg
        [1]+ yes >/dev/null &
        /home/larry#
  위와 같이 하면 프롬프트가 되돌아온다. job은 yes가 실행이 되었음을 보고한다. 먼
저 번에 사용하였던 명령어 'kill'을 사용하여 job을 제거할 수 있다.
  어떻게 job을 멈출 수  있을까? [ctrl-Z]을 사용하면  job이 백그라운드로 실행되기 
때문에 작업을 할 수 없다. 이 답은 'fg'를 사용하여 포그라운드로  job을 놓아야만 하
며, 그래야 멈출 수 있다. 멈춰진 job이나 백그라운드의 job을 'fg'를  사용하여 전환할 
수 있다.
  백그라운드에서의 job과 멈춰진 job은 커다란 차이가 있다. 보류된 job은 CPU 시간
이나 메모리를 전혀 사용하지 않으며,  따라서 아무 일도 하지  않는다. 백그라운드로 
운영되고 있는 job은 메모리를 사용하며, 또한 다른 작업을 하고 있을 동안에도  완벽
하게 이 작업을 수행한다. 어쨌든, 백그라운드에서의 job은 터미널에서 문자를 출력하
고자 하며, 어떤 다른 작업을 하고  있다면,  귀찮게 할 것이다. 예를 들어, 아래의 명
령같이 입력한다면,
        /home/larry# yes &
  /dev/null 로 표준 출력을  리디렉팅하지 않는다면, y의 문자열들은  화면에 어떠한 
인터럽트도 받지 않고 출력될 것이다. '[ctrl-C]'는 백그라운드의 job  에게 인터럽트를 
걸 수 없다. 끊임없는 'y'들을 멈추기 위해서는 'kill' 명령어를 사용해야 한다.  아마
도, 입력하는 것을 보는 것은 불가능할 것이다.
  또 중요한 것은, 명령어 'fg'나 'bg'를 인자없이 입력하면 최근에 멈추어진 job을  포
그라운드나 백그라운드 시킨다. 만일  지금 복수개의 job을  동시에 운영하고 있다면, 
특정 job은 주어진 job ID를 'fg'나 'bg'의  인자로서 사용하여 포그라운드나 백그라운
드로 전환 시킬 수 있다.
        /home/larry# fg %2
  job 번호 2를 포그라운드로 전환 시킨다.
        /home/larry# bg %3
  job 번호 3을 백그라운드로 전환 시킨다.
  프로세스 ID를 'fg'나 'bg' 명령에서는 사용할 수 없다. 
  'fg', 'bg' 명령 없이 job 번호만을 사용할 수 있다. 따라서 아래의 두 명령은 동일하
다.
        /home/larry# %2
        /home/larry# fg %2
  job제어를 사용하는 것은 shell의  기능을 이용한다는 것을  기억해야 한다. 명령어 
'fg', 'bg', 'jobs'는 shell의 명령어들이다. 만일 어떤 이유에서 shell이 job 제어를  
제공하지 않는다면, 이러한 명령어들이 유용한지 알아낼 수 없다.
  덧붙이면, job 제어의 형태는 Bash나 Tcsh에서 약간 다르다. 사실, 모든 shell이 job 
제어를 제공하지 않으나, 리눅스의 대부분의 shell에서는 job 제어를 제공한다.

728x90

'*nix' 카테고리의 다른 글

nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴  (0) 2010.07.07
man에서 한글 깨짐  (0) 2010.06.14
sed 사용법  (0) 2010.06.01
vi 특정문자열 삭제  (0) 2010.06.01
로그파일 가공하기  (0) 2010.05.17
728x90

64비트 윈도우에서 ODBC 관리자를 실행하면 일반적으로 C:\Windows\System32\odbcad32.exe 파일이 실행됩니다.

해당 프로그램은 32비트 ODBC드라이버는 호환이 되지 않으므로 볼 수 없습니다.


따라서 32비트 ODBC드라이버를 관리하려면 아래 경로의 파일을 실행해야 합니다.

C:\WINDOWS\SysWOW64\odbcad32.exe 

728x90
728x90

ISV (independent software vendor)

ISV는 하나 이상의 컴퓨터 하드웨어나 운영체계 플랫폼에서 실행되는 소프트웨어 제품을 만들고 판매하는 회사를 말한다. 마이크로소프트, IBM, 휴렛패커드, 애플 등과 같이 플랫폼을 만드는 회사들은, "비즈니스 파트너"라고 불리는 특별한 계획에 의거하여 ISV를 격려하고, 지원을 제공한다. 일반적으로, 하나의 플랫폼에서 더 많은 응용프로그램들이 실행되면, 고객들에게 더 많은 가치를 제공하게 된다. 물론, 마이크로소프트, IBM 등과 같은 플랫폼 제작회사들도 역시 응용프로그램들을 만들지만, 모든 것을 자체적으로 만들기에는, 요구되는 자원이나 특별한 지식들을 가지고 있지 못한 경우가 대부분이다. 윈도우95나 매킨토시 플랫폼에서 실행되는 모든 프로그램들을 생각해보면, 거기에 얼마나 많은 ISV들이 있는지를 알게 될 것이다. 일부 ISV들은 IBM의 소규모 비즈니스용 AS/400 등과 같이 특정 운영체계에 초점을 맞추며, 거기에는 수천 개 이상의 ISV 응용프로그램들이 있다. 다른 ISV들은 공학 등과 같은 특정 응용분야에 특화되어 있으며, 주로 최상위 유닉스 기반의 워크스테이션 플랫폼에 사용되는 소프트웨어를 개발한다.

ISV는 플랫폼에 추가되는 소프트웨어를 만들고 판매한다. OEM 회사들은 대형 제품을 만들기 위하여 하드웨어 플랫폼 구성요소들을 사용한다. VAR들은 자신들의 소프트웨어 제품 패키지에 플랫폼 소프트웨어를 통합시킨다.

  • 웍그룹 서버를 만드는 회사인 Galacticomm에서 자사의 Showcased ISV Software를 위한 웹페이지를 제공합니다.
  • IBM에서는 자신들의 제품을 위한 ISV들에 관한 정보를 고객들에게 제공합니다. 예를 들어, CICS 트랜잭션 서버를 지원하는 ISV에 관한 정보가 들어 있는 페이지가 여기에 있습니다.
  • 마이크로소프트는 써드파티 소프트웨어라고 부르는 것에 관한 비슷한 정보를 제공합니다.

www.terms.co.kr

728x90

'용어' 카테고리의 다른 글

웹 서버와 WAS(Web Application Server)의 정의  (0) 2010.08.19
JEUS의 DB 연결  (0) 2010.07.28
2단계 커밋  (0) 2010.03.02
ERP (enterprise resource planning)  (0) 2010.01.21
클래스패스와 환경 변수, 그것이 알고 싶다.   (0) 2010.01.05
728x90

상주 분할 영역에는 버퍼, 로크, 로그 파일과 DB영역 청크, 테이블영역의 위치 등을 포함하여 데이터베이스 서버의 상태를 기록하는 공유 메모리 영역이 들어 있습니다.

LOCKS, LOGBUFF 및 PHYSBUFF 구성 매개변수에 사용하는 설정은 상주 분할 영역 크기를 결정하는 데 도움이 됩니다.

BUFFERPOOL 구성 매개변수는 데이터베이스 서버가 시작될 때 상주 세그먼트에 할당되는 버퍼 크기를 결정합니다. 데이터베이스 서버를 실행하는 동안 추가되는 후속 버퍼 풀은 데이터베이스 서버를 재시작할 때까지 가상 메모리가 됩니다.

상주 분할 영역의 크기에 영향을 주는 이들 구성 매개변수와 더불어 RESIDENT 구성 매개변수는 메모리 이용에 영향을 줄 수 있습니다. RESIDENT를 강제 상주를 지원하는 컴퓨터의 ONCONFIG 파일에 1로 설정하면 상주 분할 영역이 페이지 아웃으로 처리되는 일이 결코 없습니다.

데이터베이스 서버의 시스템 정보 파일은 운영 체제가 강제 상주를 지원하는지 아닌지를 표시합니다. 시스템 정보 파일의 위치에 대한 정보는 소개에서 이 안내서를 참조하십시오.

운영 체제 공유 메모리를 할당할 때 상주 분할 영역의 크기를 추정하려면(KB 단위) 다음 단계를 따르십시오. 결과로 상주 분할 영역에 사용되는 실제 메모리를 약간 초과하는 추정치가 제공됩니다.

상주 분할 영역의 크기를 추정하는 방법
  1. 다음 공식을 사용하여 데이터 버퍼의 크기를 추정합니다.
    buffer_value = (BUFFERS * pagesize) + (BUFFERS * 254)
    pagesize
    공유 메모리 페이지 크기입니다. onstat -b가 buffer size 필드로 마지막 라인에 이를 표시합니다.
  2. 다음 공식으로 값을 계산합니다.
    locks_value = LOCKS * 44
    logbuff_value = LOGBUFF * 1024 * 3
    physbuff_value = PHYSBUFF * 1024 * 2
  3. 다음 공식을 사용하여 추정된 상주 분할 영역의 크기(KB 단위)를 계산합니다.
    rsegsize = (buffer_value + locks_value + logbuff_value 
               + physbuff_value + 51,200) / 1024
팁:
LOCKS 구성 매개변수는 로크 테이블의 초기 크기를 지정합니다. 만일 세션이 할당하는 로크의 수가 LOCKS 값을 초과하면 데이터베이스 서버는 로크 테이블의 크기를 동적으로 증가시킵니다. 로크 테이블을 동적으로 커지도록 하려면 SHMTOTAL을 0으로 설정하십시오. SHMTOTAL이 0이면, 전체 메모리(공유 메모리의 상주, 가상, 통신, 가상 확장 분할 영역)에 한계가 없고 할당을 보장합니다.

BUFFERPOOLLOCKSLOGBUFF 및 PHYSBUFF 구성 매개변수에 대한 자세한 정보는 메모리 이용에 영향을 주는 구성 매개변수를 참조하십시오.

728x90

'Informix > informix reference' 카테고리의 다른 글

Set the SHMVIRTSIZE Configuration Parameter  (0) 2010.07.15
SHMVIRTSIZE  (0) 2010.07.15
informix version 확인  (0) 2010.06.01
ONBAR  (0) 2010.05.26
테이블을 특정 시점으로 복구하는 기능  (0) 2010.05.24
728x90

sed 스트림 편집기
  ed명령어와 grep명령어 기능의 일부를 합친 것이 sed(stream editor)명령어이다.
  sed명령어도 grep명령어와 같은 필터이지만 이 명령어는 화일을 수정할 수 있게 하는 반면 ed처럼 대화식처리는 불가능하다. sed 명령어는 1개 라인씩 입력 라인을 읽어들여 표준 출력에 출력한다.
  sed는 각 라인을 읽을 때마다 ed에서 사용하던 형식의 대치작업을 실행한다.
  일치하는 문자열이 있으면 그 문자열을 대치한 후 출력하고 일치하는 문자열이 없으면 그 라인은 수정되지 않고 그대로 출력된다.
  이 sed 명령어가 ed보다 좋은 점은 라인들을 하나씩 읽고 , 수정하고, 출력하기 때문에 기억장치 안의 버퍼를 사용하지 않는다는 것이다. 버퍼를 사용하지 않으면 화일의 크기에 제한 없이 작업을 할 수 있다.
  ed와 같이 버퍼를 사용하는 경우는 버퍼의 크기보다 큰 화일은 처리할 수 없으며 대개 버퍼의 크기는 1MB정도이다. 따라서 sed는 아주 큰 화일을 처리할 때 주로 사용된다.
  sed 명령어를 호출하는 형식은 grep명령어와 같지만 완전한 형식의 대치 연산자를 사용한다는 점만이 다르다.
     # sed "s/hello/goodbye" in.file
  위의 명령어는 in.file이라는 화일에 있는 각 라인에서 첫번째 등장하는 hello라는 문자열을 goodbye로 교체한 후 그 라인을 표준 출력에 출력한다.
     # echo "1234hello5678" | sed "s/hello/goodbye/"
  대치 명령어를 따옴표로 둘러싸야 올바로 사용할 수 있다. 여기서 문자열은 정규식으로 표현될수 도 있다. 그외에도 sed명령어에는 여러 가지 연산자를 사용할 수 있다. 다음의 명령어를 사용하면 hello라는 문자열을 포함하고 있는 모든 문자열을 삭제할 수 있다.
     # sed "/hello/d" in.file
  위 명령어의 의미는 "hello라는 문자열을 포함하고 있는 라인을 찾아 그 라인을 삭제하라"는 것이다.

 sed 명령어는 다음 명령어와 같은 의미이다.
     # grep -v hello in.file


  라인을 전부 삭제하지 않고 hello라는 문자열만을 삭제하려면 다음 명령어를 사용하다.
     # sed "s/hello//" in.file
  ed와 같이 sed에서도 화일의 일부만을 대상으로 작업하는 경우는 라인의 범위를 지정할 수 있다.
     # sed "3,7s/hello//" in.file
  위의 명령어는 in.file이라는 화일의 라인3에서 7까지만을 대상으로 첫번째 hello를 삭제하고 화일의 그 외의 부분은 변경시키지 않는다. 또한 다음과 같이 사용하면 라인 번호 대신 문맥을 범위로 지정할 수 있다.
     # sed "/hello/,/goodbye/s/bad/good/g" in.file
  위의 명령어는 hello라는 단어를 포함하고 있는 첫번째 라인부터 goodbye라는 단어를 포함하고 있는 라인까지 검색하면서 bad라는 문자열을 모두 good으로 변경한다.
  또한 문자열 goodbye를 만난 이후에도 다시 다른 hello가 등장하면 다음 goodbye가 나올 때까지 대치 작업은 반복된다.
  sed명령어의 기능은 지금까지 우리가 살펴본 것보다 더 강력하다.
  sed명령어의 -f(file)선택자를 사용하면 명령어를 일일이 키보드에서 입력하지 않고 하나의 파일에 기억시켜 놓고 사용할 수도 있다.
     # sed -f command.file in.file
  여러 개의 명령어를 연속적으로 자주 사용할 때 이 명령어 화일이 유용하게 사용된다.
  예를 들어 다음과 같은복수 개의 명령어가 화일에 기억되어 있는 경우는
     # vi command.file
       s/hello/goodbye/
       s/good/bad/
  다음과 같은 명령어를 입력하면
     # echo "1234hello5678" | sed -f command.file 
  다음과 같이 출력된다.
     # echo "1234hello5678" | sed -f command.file
       1234badbye5678
   
o sed 기본
     # sed '' ljs --> cat ljs 와 동일

o sed 편집 명령어
      일상적인 sed 명령
    ---------------------------------------------------------------------------------------
     a      다음 라인(들)을 적용될 라인들에 부가한다  (라인뒤)
     c      적용될 라인들을 다음 라인(들)로 변경한다  (라인 대체)
     d      적용될 라인들을 삭제한다
     g      단지 첫번째의 것만이 아니라 라인의 모든 부합 패턴 대체가 적용 되게 한다  
     i       다음 라인(들)을 적용될 라인들 위에 삽입한다  (라인앞)
     p      - n 옵션하에 있을지라도, 라인을 프린트한다
     q       명시된 라인에 도달할 때 중지한다
     r filename  filename을 판독한다. 내용을 출력에 부가한다
     s/old/new/  "old"를 "new"로 대체한다
     =           라인 번호를 프린트한다
     !command    라인이 선택되지 않는 경우 command를 적용한다.
    --------------------------------------------------------------------------------------

o 라인 명시
  sed명령은 두가지 방법을 사용한다. 첫 번째는 번지를 번호로 명시하는것이다.
  여러분은 특정한 라인을 가리키기 위해 단일 번호를 사용할 수 있다. 
 # sed '3d' ljs  --> 세번째 라인을 삭제
  또는, 라인들의 범위를 가리키기 위해 콤마(,)로 분리된 두 번호들을 사용할 수 있다.
 # sed '2,4 s/e/#/' ljs  --> 대체 명령은 단지 2-4 라인들에만 적용된다. (단순 대체 명령은 라인에서 첫번째 어커런스에만 적용된다는 점을 기억하라. 따라서 각 적용 라인의 첫 번째 e만이 #로 대체된다)
 # sed -n '/kingdom/p' ljs  --> kingdom이 들어있는 line만 프린트
 # sed '/kingdom/p' ljs  --> 모든 line이 나타나고 그와 동시에 kingdom line이 중복해서 나타남
 # sed '[Pp]rincess/d' ljs  --> princess 또는 Princess를 포함하고 있는 라인들을 삭제함
 # sed '1,/fragrant/d' ljs  --> 라인 1로부터 fragrant를 포함하고 있는 첫번째 라인까지의 모든 라인들을 삭제함
o sed 명령 하이라이트 
     # more ljs
       I am a boy
       You are a girk
       He is a doctor
     # sed 'a\
       Hey !' ljs  --> 각 라인뒤에다 Hey la la!를 입력
        I am a boy
        Hey !
        You are a girk
        Hey !
        He is a doctor
        Hey ! 

     # sed 'a\
       
Oh! good\  --> 을 사용함으로써 하나 이상의 라인들을 부가할 수 있다
       yeh' ljs 
     # sed '3a\
       Good Morning' ljs  --> 3 line뒤에다 내용 삽입
     # sed 'c\
       Oh marvelous delight! sing to me! ' ljs  --> 기존의 라인들을 이것으로 대체시킴
       Oh marvelous delight! sing to me!
       Oh marvelous delight! sing to me!
       Oh marvelous delight! sing to me!
     # sed '2q' ljs  = sed 2q ljs --> q명령은 편집기로 하여금 그것이 명시된 라인에 도착한 뒤
                                      중지하게 한다. 즉 2라인만 보여줌
     # sed -n '1s/a/#/gp' ljs  --> 전체적으로 바꿔줌

o sed의 패턴-부합
      패턴-부합에 대한 sed메타 문자
     -------------------------------------------------------------------
       메타 문자            작    용
     -------------------------------------------------------------------
       \             다음 문자의 특수한 의미를 부정한다
       ^              라인의 시작과 부합한다
       $              라인의 끝과 부합한다
       .              어떠한 단일 문자와도 부합한다
       [ ]            둘러싸인 문자들 중의 어느 하나와 부합한다
       [^...]         ...리스트에 없는 어떠한 문자와도 부합한다
       pat*           0 또는 그 이상의 pat 어커런스들과 부합한다
                      여기에서 pat는 단일문자 또는 [ ]패턴이다
       &              s 명령의 newpattern부분에서 사용되어 oldpattern
                      부분의 재 산출을 나타낸다
     -------------------------------------------------------------------

o 간략한 예--------------------------------------------
    명 령         결  과 
  -----------------------------------------------------
   /Second/       Second를 포함하고 있는 어떠한 라인과도 부합한다.
   /^Second/      Second로 시작하는 어떠한 라인과도 부합한다.
   /^$/          공백라인, 즉 라인의 시작과 끝 사이에 아무것도 없는 라인과 부합한다.
                  이것은 공백 스페이스들로 된 라인과는 부합하지 않는바, 스페이스 자체가
                  문자이기 때문이다.
   /c.t/          cat, cot, 기타 등을 포함하고 있는 라인들과 부합한다. 이 패턴은 단어의
                  일부일 수 있음에 유의하라. 예를 들어, apricot와 acute도 부합된다.
   /./            적어도 한 문자를 포함하고 있는 라인들과 부합한다.
   /\./           피리어드를 포함하고 있는 라인들과 부합한다. 는 .의 특수한 의미를 부정
   /s[oa]p/       sop또는 sap와는 부합하지만 sip 또는 sup와는 부합하지 않는다.
   /s[ ^oa]p/     sip또는 sup와는 부합하지만 sop또는 sap와는 부합하지 않는다.
   s/cow/s&s/     cow를 scows로 대체한다.
   /co*t/         * --> 어떠한 수
  ----------------------------------------------------------------------------------------

o 간단한 sed 해법
     # sed '/^$/d' ljs  --> 모든 공백 라인 제거
     # sed '/^ *$/d' --> space로 만들어진 공백까지 제거 (조심! ^와 *사이에 공백이 있어야 한다)
     # sed 'a\
       ' ljs   --> 각 line마다 공백라인 추가
     # sed '/^#/d' ljs  --> 첫번째 열에 #을 가진 라인 제거
     # sed 's/^/     /' ljs  --> 각 line의 시작을 5 space로 대체

o 다중 명령
     # sed 's/Bob/Robert/g
            s/Pat/Patricia/g' ljs  --> sh을 사용하는 경우에는 을 생략하라
     # sed 's/cat/dog/g
            s/dog/pigs/g' ljs  --> 먼저 모든 cats를 dogs로 변환한 다음에 모든 dogs를 pigs로 변환한다.
     # sed 's/Bob/Robert/g
            s/Pat[^a-z]/Patricia/g' ljs  --> ^a-z은 a에서 z까지의 문자들이 아닌 모든 문자를 
                                             의미한다는 점을 상기하라

o 태그
  위에서 Pat!와 같은 것이 발견될때 !를 포함한 전체 문자열이 Patricia로 대체되므로 !가 소실된다.
  우리는 !를 유지하면서 Pat를 대체하는 방법을 필요로 한다. 우리는 이것을 태그(tag)를 사용하여
  수행할 수 있다. 패턴의 일부를 "태그"하려면, 그것을 좌측에는 (로 우측에는 )로 둘러싸라.
  그 다음에, 명령의 newpattern부분에서, 여러분은 그렇게 둘러싸인 패턴의 첫 번째 것은 1로,
  두번째 것은 2 등으로 인용할 수 있다. 이 방법을 사용하면 다음의 명령이 부여된다.
      # sed 's/(Pat)([^a-z])/1ricia2/g' ljs
o 쉘 스크립트와 sed
      # vi twospace
        sed 'a\
        ' $*   --> $*은 모든 인자들을 나타냄
      # twospace ljs | pr | lpr
   위 예는 sed가 어떻게 하여 UNIX 프로그래밍과 쉘 스크립트에 적합한가를 나타낸다.

출처 : Tong - 굿보이군님의 Linux통

옵션
d - 라인을 지우기 
p - 라인을 출력
r - 파일을 읽음
s - 다른 문자를 읽음

sed -n '/west/p' data.file - grep과 같은 라인 출력
sed -n '3,5p' /opt/data.file - 3에서 5번줄까지 출력
sed -n '/Chris/,$p' data.file - data.file 안에 Chris부터 끝까지 출력
sed 's/3/X/' data.file - data.file 안에 3을 X로 변환(라인당 하나만 변환)
sed 's/3/X/g' data.file - data.file 안에 3을 모두 X로 변환
sed -n '/(tab)[0-9]$/p' data.file - 파일안에 tab이후에 0-9가 들어가고 줄끝문자가 이어지는 라인만 출력
sed -n '/(tab)[0-9]$/& HITE/p' data.file - 파일안에 조건에 맞는 라인에 끝에 HITE라는 문자 추가(여기서의 $는 ~부터 끝까지가 아닌 줄끝 문자의 의미를 가진다)
sed '/west/d' data.file - 파일안에 west를 빼고 출력
sed '/May/,/TJ/d' data.file - 파일안에 May부터 TJ까지 빼고 출력
sed '/west/r /opt/mess' data.file - 파일안에 west가 들어가는 라인에 mess란 파일 데이터를 읽어드려 추가

cat > 1.sed
1,4d - 1,4를 지움
s/north/North/ - north를 찾아 North로 변경
s/^east/East/ - east로 시작하는 라인을 찾아 East로 변경
sed -f 1.sed data.file - 파일안에 라인을 1.sed에 따라 연속처리
-n 옵션에 대해 - -n 옵션이 들어가면 라인출력인 p가 붙어야 화면에 출력한다. 반대로 -n이 없을 경우 p가 붙지 않아도 출력하며 p가 있을 경우 두번 출력해 주는 형식이 된다.


http://blog.naver.com/siyang6/30021355074

728x90

'*nix' 카테고리의 다른 글

man에서 한글 깨짐  (0) 2010.06.14
Unix 프로세스 Job Control  (0) 2010.06.14
vi 특정문자열 삭제  (0) 2010.06.01
로그파일 가공하기  (0) 2010.05.17
awk 사용법  (0) 2010.05.17
728x90

빈줄 삭제

:g/^$/d


명령모드에서 v 를 누른 후

1행을 제외하고 블럭을 씌웁니다.

그리고 ex모드에서

g/^Getting/d 

를 하면 1행을 제외한 나머지 중에서 Getting 으로 시작하는 모든 행이 삭제됩니다.


------ 부가설명

vi에는 명령 모드 , ex모드, 삽입(insert) 모드 이렇게 3가지 모드가 있습니다.

질문하신 내용으로 보아, 아실 듯 ^^

1행을 제외한 나머지 행을 블럭을 씌우려면

gg 명령으로 가장 첫 줄로 이동한 후에

j로 한줄을 내려와

v로 블럭을 씌울 수 있게 한 후

G로 가장 아래 줄로 이동.

요약하면 ggjvG 다섯번만 손가락을 누르면 됩니다.

이동시 직접 줄 번호를 지정하거나

블럭을 씌우지 않고 ex명령만으로도 할 수 있으나

이렇게 하는 것이 직관적이고 손가락도 덜 움직이는 것 같습니다.


:g/특정문자열/d

위와 같은 ex명령은 특정문자열이 있는 라인을 삭제합니다.

조심해야 할 점이 있다면

의도하지 않은 라인까지 삭제할 가능성이 있다는 것 입니다.

예를 들면,

:% g/ting/d

ting 이라는 단어가 있는 줄을 지우려고 했는데

getting, meeting , hunting 등등의 단어가 있는 줄도 지우는 경우가 생길 수 있습니다.

이런 것을 막으려면 특정 문자열 또는 단어의 앞 뒤로 \< 와 \> 를 감싸주면

해당 단어만을 의미할 수 있습니다.

:% g/\<ting\>/d 라고 하면 ting 앞 뒤로 알파벳이 붙지 않은 오직 ting 이라는 단어만 들어 있는 줄을 삭제합니다.

% 기호는 전체라인을 의미합니다.

^ 기호는 라인의 시작을 의미합니다.

728x90

'*nix' 카테고리의 다른 글

Unix 프로세스 Job Control  (0) 2010.06.14
sed 사용법  (0) 2010.06.01
로그파일 가공하기  (0) 2010.05.17
awk 사용법  (0) 2010.05.17
[AIX] 한글 로케일  (0) 2010.01.20
728x90


현재 사용하시는 버전이 어떤 버전인지 알아야 할 것입니다. 
위 그림을 보시면 하시겠지만,  onstat –V 를 치시면  현재 사용하시는 버전이 나옵니다

다음은 각각에 대한 설명입니다. 참고하세요~


1) Major_Release :                             ( = 9 ) 
Major New Product Features + Fixes
;7 = IDS(Informix Dynamic Server), RDBMS
;8 = XPS(Informix eXtended Parallel Server)
;9 = IDS ,   ORDBMS


Major Release에 해당하는 정수 부분은 DB Server의 종류를 구분할 수 있도록 합니다. 즉,
7 = IDS(Informix Dynamic Server), RDBMS
8 = XPS(Informix eXtended Parallel Server)
9 = IDS.2000 또는 IIF.2000(Informix Internet Foundation.2000), ORDBMS
임을 의미합니다.



2) Enhancement_Release :                  = ( 4 )
; Feature or Performance Additions + Fixes

3) Maintenance_Release :                 = ( 0 ) 
;Fixes onLY, No New Features or Performance Additions

4) Operating_System                                  = ( U )
; U = 32 bit Unix Informix product
; F = 64 bit Unix 64 bit Informix product
; H = 64 bit Unix 32 bit Informix product
; T = Windows NT / Windows

5) Port_Master                        = ( C )  
; Sequential Commercial Port Release Letter

6) Interim_Release                                 = ( 4 )
;Sequential Interim Release number for this Port_Master

7) Patch_Release                        = (X1)





>현재 informix 7.3.1.(UC2A) 를  solaris 8에서 사용하고 있는데 이제품이 32bit 모드로 운영되는 버전인지 아니면 32bit와 64bit 모두 지원하는 버전인지 알고 싶습니다. 그리고 인포믹스에서 이러한 
>정보를 확인하는 방법이 있으면 이것두...*^^*

==> 4) 에서 보시는것 처럼,

         U : 32bit 용
         F : 64bit 용
         H : 64bit에 지원되는 32bit용 제품 ( HP-UX 에서만 볼수있는 버전임 )
         T : Windows 용

728x90

'Informix > informix reference' 카테고리의 다른 글

SHMVIRTSIZE  (0) 2010.07.15
Resident Portion size  (0) 2010.06.01
ONBAR  (0) 2010.05.26
테이블을 특정 시점으로 복구하는 기능  (0) 2010.05.24
Porting from Oracle to Informix  (0) 2009.12.29
728x90

Problem(Abstract)

This article describes three common causes for listener-thread: err = -27001: Read error occurred during connection attempt errors.

Symptom

This error appears in the IBM® Informix® Dynamic Server (IDS) message log file (ONCONFIG configuration file parameter MSGPATH) and users are not able to connect to the database server.:

listener-thread: err = -27001: Read error occurred during connection attempt.


Resolving the problem

Common causes and solutions for the error are:

1. The connectivity files in the /INFORMIXTMP directory are not removed.

    The files are in the form of : VP.server_name.0100a

      server_name
        Database server name as was set in INFORMIXSERVER environment variable and associated with the tcp connections.
    Solution:

    Stop the database server, remove the files from the /INFORMIXTMP directory, and start the database server.

2. The onCONFIG file settings for the NETTYPE parameter are not correct. This error is widely seen involving tcp network connections when the VP class in the NETTYPE setting is set for CPU vp.

    Solution:

    As a work around Change the vp class setting for the NETTYPE configuration parameter from CPU to NET.

Factors outside of Informix that can cause 27001

3. An operating system resource limit was reached. Kernel parameters settings require changes.

    Solution:

    Check and possibly increase settings for the following kernel parameters or parameters equivalent to them depending on Unix platform:


4. Network problem. Perhaps the network is busy or packets are being lost. Monitor network and alleviate the problem.

5. Hardware involved in the system ( network card, cables, router, and so on ) is intermittently failing and causing the error.


728x90

'Informix > informix troubleshooting' 카테고리의 다른 글

CKPT REQ 상태 해결 방법  (0) 2011.03.12
KAIO: out of OS resources, errno = 11, pid = xxxxxxx  (0) 2011.03.02
err = -27001  (0) 2010.06.01
IDS Down DBSpace / Chunk  (0) 2010.05.19
Chunk Down 확인  (0) 2010.05.17

+ Recent posts