DB2의 버전이 올라가면서 여러가지 기능들이 추가되고 더 복잡한 메커니즘으로 구성된듯 하다.
그에따라 비교적 설치된 DB엔진을 걷어내거나 할때 약간의 시간이 소요되는건 사실이다.

뭐~ 다양한 기능들을 사용하는 장점이 있기는 하지만, 여하튼 오늘은 DB2 모듈을 강제로 deintall
하는 내용들을 다루어 보고자 한다.

간혹 DB2 엔진을 지우려 할때 인스턴스가 존재해서 삭제가 안되거나 심지어 인스턴스를 삭제하려해도 그마저 안되는 경우가 있다.
그래서 물리적으로 엔진 파일이 있는 곳을 물리적으로 rm 해 버리는 경우가 있는데(성질 급한 사람들은) 별로 권장하고 싶지는 않다.

그경우 아래와 같은 해결책을 제시하고자 한다.
======================================================================================
1. 보통 instance를 생성하거나 모듈이 설치가 되면(root)
    /var/db2/global.reg 파일이 생기며 그안에 위의 정보들이 기록된다.
   내부 메커니즘상 DB2가 모듈을 삭제를 할때 global.reg을 참조하는 것으로 보인다.
   이파일을 mv 하거나 rm 하게 되면 db2ilist상의 인스턴스 정보도 사라지게 되며
   deinstall시 묻지도 따지지도 않고 실행이 된다.
   주의점이 하나 있는데 위의 경우 일부 모듈이 잘 삭제가 안되는 경우도 있다
   그럴경우 찾아서 삭제해 주어야 한다.

2. db2greg 의 사용
    V8부터 지원되기 시작한 이녀석은 global.reg 파일을 display 하거나 편집 할 수 있다.
    또한 한서버내에 어떤 인스턴스가 존재하며 home이 어디고 그 인스턴스들이 사용하고 있는
    DB2의 모듈 경로는 어디인지를 보여 준다.
  1) db2greg -dump(모듈의 설치 경로와 인스턴스들을 보여준다.global.reg 의 display)
       $ db2greg -dump
           S,DB2,9.1.3.88,/opt/IBM/db2/V9.1,-,,9
           S,DAS,9.1.3.88,/opt/IBM/db2/V9.1/das,lib/libdb2dasgcf.so,,9
           I,DAS,9.1.3.88,dasusr1,/home/dasusr1/das,,1,,/opt/IBM/db2/V9.1/das,,
           I,DB2,9.1.3.88,db2inst1,/home/db2inst1/sqllib,,1,0,/opt/IBM/db2/V9.1,,

  2) global.reg 의 내용들을 편집하거나 삭제 할 수 있다
       $ db2greg -delinstec instancename=db2inst1
  

+ Recent posts