본문 바로가기

DB2 for LUW

[보안] authentication 과 srvcon_auth DBM 구성변수에서 지원하는 보안 관련 변수에는 authentication과 srvcon_auth 가 있다. 정보센터를 통해서 보면 동일한 기능을 하는 것처럼 보이는데, 변수를 2개나 제공을 하고 있다. 내용을 면밀히 읽어보면, authentication 설정 값보다 srvcon_auth 값이 우선한다고 하는 정도의 차이점이 있겠다. 1. server 쪽 DBM CFG 설정 $ db2 update dbm cfg using authentication data_encrypt $ db2 update dbm cfg using srvcon_auth server $ db2 get dbm cfg | grep AUTH Server Connection Authentication (SRVCON_AUTH) = SERVER .. 더보기
[보안] SSL 설정 V9.5 까지는 OS 환경변수 설정하여 SSL을 구성하였으나, V9.7부터 DBM 구성변수로 SSL 설정 변수들이 포함되었다. 최근에 보안 사고로 인해 각종 보안 조치사항들이 취해지다 보니 DB 쪽의 SSL 구성 요건도 생기는 듯 하다. 오래된 버전에서는 SSL 관련 라이브러리를 별도 설치를 했었어야 되는 것 같은데, V9.7부터 DB2 설치 시 SSL 관련 라이브러리(IBM GSKit)들이 설치된다. 1. 설치 경로 - DB2_엔진경로/gskit - 인스턴스_홈/sqllib/gskit 2. DB2 서버 쪽의 설정 인스턴스 경로를 /db2user/inst97로 가정한다. (1) 환경변수 설정 (.profile) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/db2user/ins.. 더보기
[일반] SQL0902C (Restore:ENOSPC (28)) Linux 나 AIX 환경이 아닌 unix 환경에서는 kernel parameter 값을 설정해 주어야 한다. ( Linux 및 AIX 경우는 DB2 실행 시 동적으로 kernel parameter 값이 설정되는 것으로 알고 있다) Solaris 나 HP-UX 환경에서 kernel parameter 값을 설정하지 않아도 설치 및 인스턴스 구성, 인스턴스 실행 시 오류가 발생하지 않아 설정하지 않는 경우가 종종 있다. 이런 경우 특정 작업을 하다가 오류가 발생해서 원인이 못찾고 헤매게 되는 경우가 있다. 보안 상 고객사의 진단로그 메시지들을 메모하지 못하고 나와서 그 오류 메시지를 글에 넣을 수는 없지만, 기억나는 오류 코드는 SQL0902C, 디바이스 부족 정도였던 것 같다. db2diag.log를 보면.. 더보기
[관리] db2gcf db2gcf 명령어는 이중화하는 경우에 주로 사용된다. V9.5부터 TSA (Tivoli System Automation) 클러스터가 도입이 된 후 이중화 관련 tsa의 script를 보면 db2 제어를 위해 db2gcf가 사용됨을 확인할 수 있다. 인스턴스 시작(u), 중지(d), 상태(s) 를 확인할 수 있고, 강제로 자원을 정리하는 k 옵션도 제공한다. Unix 환경이나 Linux 환경에서 DB2 인스턴스가 패닉 상태에 놓인 경우 db2stop 명령어로 인스턴스가 중지되지 않아, db2_kill 이라는 명령어를 사용한다. 그러나 윈도우 환경에서는 db2_kill 이라는 명령어는 제공되지 않는다. 윈도우 작업관리자에서 정리를 할 수 밖에 없기 때문에 db2_kill 같은 명령어의 필요성이 느껴질 수 .. 더보기
[접속] DB 접속 지연 일반적으로 DB 카탈로그 작업 시 DB2 서버 IP 주소, 포트, DB 명 정도만 설정을 하고 사용한다. 이런 CLI 연결 환경에서 DB 접속이 느려지는 경우가 발생할 수 있다. 사내 여러 Desktop PC 에서 특정 PC에서만 접속이 느린 현상이 발생하는 경우 (접속이 분 단위 혹은 10초 단위 소요) 다른 네트워크 환경에서 접속을 해도 해당 PC만 접속 느린 현상이 발생하는 경우, 접속이 이뤄진 후 접속을 끊고(terminate) 재접속을 해도 느리게 접속이 되는 경우 마치 특정 PC의 Disk 등 성능이 느려져서 or PC의 성능이 낮아 발생되는 것처럼 느껴진다. 이런 경우 Catalog 설정을 확인해 볼 필요가 있다. DB 카탈로그 시, DB2 서버와의 인증 방식을 설정하는 옵션이 있다. (DB.. 더보기
[복구] 경로재지정 복구 데이터가 삭제되었거나, 동일한 H/W환경에 백업 이미지로 테스트 DB 환경을 만들어야 되는 경우 db의 경로를 다르게 하여 restore를 해야 할 필요가 생긴다. 이럴 경우 테이블 공간 혹은 스토리지 그룹의 경로를 일일이 적어주는 것은 불편할 것이다. 경로재지정 복구 작업을 위해 db2는 해당 필요한 script를 만들어 준다. (V9.1 부터 지원된다) -- script 추출 db2 “restore db 디비명 from 백업_경로 taken at 백업_시간소 redirect generate script 경로재지정_복구.clp” -- 추출 script 예 RESTORE DATABASE SAMPLE -- USER '' -- USING '' FROM '/home/jseifert/backups' TAKEN .. 더보기
[관리] Backup Pending 풀기 DB2는 기본적으로 순환로그(circular logging) 방식으로 DB 생성이 된다. 따라서 사용된 트랜잭션 로그를 보관(Archive logging)하기 위해서는 LogArchMeth1 이라는 DB 구성변수에 “트랜잭션 로그를 보관할 장소"를 설정해 주어야 한다. 그리고 변경 후에는 Offline DB 백업을 수행해야 DB가 정상 상태에 놓인다. DB 구성 초기에 Archive logging 모드로 변경하는 것은 어려운 일이 아니나, 백업 정책 및 기타 운영 관련 정책이 한참 운영 중인 상태에 서 변경을 하게 되는 경우 난감한 일이 발생한다. DB의 데이터 사이즈가 작다면 큰 문제가 없지만 백업 수행이 오래 걸릴 정도의 사이즈가 되는 경우 백업으로 인해 장시간 운영을 중단해야 되는 상태가 놓이기 때.. 더보기
[구성] Federation MS-SQL Server 보통은 이관 작업을 위한 Oracle Federation 구성 정도가 전부인데, 일이 생겨서 MS-SQL Server의 Federation 구성을 하게 되었다. MS-SQL 서버 Federation을 위해서는 InfoSphere Federation Server를 설치하던가, DB2 서버 설치 후 DB2 FixPack 사이트에서 관계형 wrapper와 비관계형 wrapper 설치 파일을 내려받아 설치를 해야 한다. (Advanced E/W Server Edition로는 구성 불가능) 또한 MS-SQL 서버에 원격 접속을 할 수 있도록 환경 구성을 위해 ODBC 클라이언트가 필요하다. 1. ODBC Driver 내려받기 - 경로: ftp://ftp.software.ibm.com/software/db2ii/d.. 더보기
[성능] Actual Section & db2caem 두 개념 모두 V9.7에서 나온 것으로 알고 있다. 옵티마이저가 SQL을 어떻게 계획을 수립하여 실행할 지를 알고자 access plan을 보지만, 이것은 예상 계획일 뿐 “실제로 실행한 plan”을 보여주지는 않는다. 실제 수행한 plan에 대한 정보는 db2에서 actual section 이라는 개념으로 제공되고 actual section을 얻기 위해서는 “워크로드"와 “이벤트 모니터"를 사용해야 된다. 1. actual section을 수집하기 위한 절차 (1) DB CFG 구성변수 설정 - section_actuals (값: base) (2) Workload 생성 - 수집하고자 하는 SQL을 수행하는 application name 을 알아야 함 (3) Event Monitor 생성 (4) Expl.. 더보기
[성능] SQL Optimizer Profile 요즘에도 오라클의 Hint가 SQL 튜닝의 방법으로 선호되는지 모르겠다. JAVA 기반의 개발 환경에서 iBatis 등을 이용하여 XML 파일에 SQL을 중앙집중화(?) 방식으로 사용하는 추세이고, 오라클 아닌 다른 DBMS를 사용하더라도 개발된 SQL 수정없이 사용하는 요건이 중요해 지면서 “특정 DBMS의 기능”에 편중되는 방식은 지양되고 있는 것 같다. 사용 중인 오라클이 버전 업그레이드를 한다던가 하는 경우에 Hint가 사용된 SQL은 성능 저하를 일으키는 경우을 들어 본 적도 있다. SQL의 성능 개선으로 Hint 사용이 중요한 튜닝 방법으로 인식되어 왔지만, 개인적으로 이런 방법은 “호환되지 않는" 구속성이 있어 튜닝 방법으로서는 부정적인 시각으로 보게 되었다. DB2에서 실행 계획 변경은 O.. 더보기