본문 바로가기

Note

[SQL] 변경된 데이터 추적 및 V10의 신기능 시간 테이블 (Temporal Table) DBMS의 기능 요건을 살피면 “사용자 실수에 의한 트랜잭션 복구” 요건을 보게 되곤 한다. 해당 요건은 ORACLE의 Flashback 기능을 이용한 “행 레벨”, “테이블 레벨” 혹은 “DB 레벨”의 시점 복구를 의미한다. SQL 수행을 잘못해서 취소를 하고자 할 경우 oracle은 flashback을 통해서 SQL 수행 전 시점으로 되돌 릴 수 있다. 현재에도 DB2 에서는 해당되는 기능이 없는 것으로 알고 있기에 “어떤 대안이 있을까” 하는 고민을 하게 된다. 테이블공간 생성 시 (현재는 기본 옵션이지만) “삭제된 테이블 복구” 옵션을 주는 경우 삭제된 테이블의 DDL 추출과 백업 이미지를 통하여 데이터를 추출해 내어 복구 작업을 할 수 있다. 이외 Optim HPU(High Performance.. 더보기
[이중화] ECF=0x9000053E (pureScale:db2instance -list) pureScale에 구성된 인스턴스 상태를 보기 위해서 db2instance –list 를 수행하면 진단로그에 다음과 같은 메시지가 기록된다. 2012-10-02-08.34.14.156718+540 E14601321A556 LEVEL: Error PID : 26148990 TID : 65120 PROC : db2sysc 0 … FUNCTION: DB2 UDB, high avail services, sqlhaGetInfoForClusterObject, probe:4596 RETCODE : ECF=0x9000053E=1879046850=ECF_SQLHA_RESOURCE_NOT_FOUND Resource not found 2012-10-02-08.34.14.158708+540 I14601878A671 LEVE.. 더보기
[이중화] DB2 HADR with TSA 구축 시 설정해 줘야 할 사항들 1. Primary 서버나 Standby 서버 둘중 아무데서나 TSA를 수정하기 위해서 다음의 환경변수를 설정함 export CT_MANAGEMENT_SCOPE=2 2. Public Network가 죽었을 때, Private Network가 살아있어서 Takeover가 안되는 경우를 방지하기 위해서 다음과 같이 TSA 옵션을 설정함 lsrsrc -Ab IBM.NetworkInterface CommGroup 목록을 확인 chrsrc -s "CommGroup=='???'" IBM.NetworkInterface HeartbeatActivate=0 ??? : Public CommGroup을 제외한 나머지 모든 CommGroup 더보기
[쿼리] Cache를 사용한 Sequence의 현재 값을 알아보기 db2 "VALUES(NEXT VALUE FOR 시퀀스_스키마.시퀀스_명)" NEXT VALUE 을 이용하여 값을 발행하여 조회함! db2 "ALTER SEQUENCE 시퀀스_스키마.시퀀스_명 RESTART WITH [위 명령의 결과로 나온 값]" 위에서 값을 조회하기 위해서 새로 발행하였으므로 다시 원상복귀 시킴! WITH n → 앞으로 발행될 값을 n으로 설정함! ※ Cache를 사용하지 않은 Sequence의 현재 값은 다음과 같이 알 수 있음 db2 "SELECT NEXTCACHEFIRSTVALUE, CACHE FROM SYSCAT.SEQUENCES WHERE SEQSCHEMA='시퀀스_스키마' AND SEQNAME='시퀀스_명'" CACHE값이 1이면 NO CACHE! CACHE값이 1일 때, .. 더보기
[이중화] DB2 HADR 모니터링 스크립트에 관한 팁 DB2 HADR을 TSA 없이 설정할 경우, 프라이머리서버 상태를 모니터링하기 위해 필요한 스크립트 #!/bin/ksh while true do rsh 프라이머리서버명 /home/db2inst1/sqllib/bin/db2gcf -i db2inst1 -s | grep DB2 | awk '{ print $4 }' | read STATUS if [[ $STATUS != "Available" ]] then hadr_start.ksh exit 0 fi sleep 60 Done ※ 위 스크립트는 스탠바이서버에서 nohup등을 사용하여 백그라운드로 실행시킴! ※ 위 스크립트를 그냥 실행시키면 잘 수행되지만, 만약 nohup으로 실행시킬 때 정지되는 경우가 발생하면 다음과 같이 스크립트의 수정이 필요! 예) [1] +.. 더보기
[이중화] DB2 엔지니어를 위한 AIX HACMP 핵심 요약 HACMP 기본 Cluster Process ( "/etc/inittab" 에 등록되어 있는 프로세스 ) 확인 [root@unix1:/]# ps -ef |grep cluster root 168102 196748 0 10:57:39 - 0:00 /usr/es/sbin/cluster/clstrmgr root 250032 196748 0 10:57:36 - 0:00 /usr/es/sbin/cluster/clcomd -d [root@unix2:/]# ps -ef |grep cluster root 168102 196748 0 10:57:39 - 0:00 /usr/es/sbin/cluster/clstrmgr root 250032 196748 0 10:57:36 - 0:00 /usr/es/sbin/cluster/cl.. 더보기
[아키텍처] DB2 Virtual Memory 란? 요즘처럼 가상화 시대, 클라우드 환경이 언급되는 상황에서는 “Virtual Memory”라는 용어는 색다르게 느껴질 수도 있을 듯 싶다. 고객사쪽에서 db2pd –osinfo를 통해서 보면 나오는 “Virtual Memory가 무엇이냐?”고 문의가 들어 왔었다. host DB2를 접하시는 분들에게는 특별한 기능처럼 여겨지는 듯 하다. (virtual memroy라고 별도로 설정하는게 있는?) Linux, Unix & Windows 기반의 DB2에서는 물리적인 메모리와 디스크의 SWAP 공간을 통털어서 “Virtual Memory”라고 칭한다. 이렇게 표현된 데에는 DB2의 메모리 아키텍처에 따른 메모리 주소 관리 방식 때문이라고 할 수 있겠다. DB2가 사용하는 메모리 주소 관리 방식은 VAS (Virt.. 더보기
[성능] 오라클 IFS 환경에서 varchar 문자열의 검색 키 업무적으로 IFS 를 구성해서 사용하는 경우는 Data Migration 인 경우다. 데이터 이관 작업으로 일회성으로 사용을 하기에 IFS 관련 문제가 될 경우는 없었다. 그러나 오라클 IFS 환경에서 개발을 지원하다 보니 성능 문제가 된 적이 있었다. db2top 에서 세션 정보를 모니터링 하거나, 스냅샷 뷰인 sysibmadm.applications 의 appl_status 상태가 “Wait for Remote” 인 경우가 발생을 한다. nickname 데이터 조회 시, data source에서 sql 처리가 진행 중으로 결과를 기다리는 상태라고 해석해 볼 수 있겠다. 데이터가 많은 테이블이면 별 문제가 되지 않겠지만, 데이터 건수가 얼마 되지 않는데도 이런 식으로 “대기 상태”에 놓여 있다면 SQL.. 더보기
[관리] 데이터베이스 옮기는 방법 고객사에 지원을 하다 보면, 현재의 Database를 다른 곳으로 옮기거나 특정 tablespace의 위치를 바꿔야 하는 경우가 발생한다. 이유는 디스크 공간이 부족해서 여유있는 곳으로 옮겨야 하는 상황이 되었거나, 외장 스토리지의 IO 성능 개선 작업을 하면서 Container로 사용 중인 Raw device의 경로가 변경되거나, 사용자 실수로 데이터가 삭제되서 데이터 복구를 하고자 하는 경우 등이라 할 수 있겠다. DB 백업 이미지로 위와 같은 작업을 하기에는 시간이 걸린다. 최종 백업을 받고 새로운 곳으로 restore를 해야 되므로 어느 정도 소요시간이 발생한다. 이런 경우 db2relocatedb 유틸리티를 사용하면 백업/복구 방법보다는 작업 시간을 단축할 수 있다. 작업은 db2 중지 후 진행.. 더보기
[이중화] db2havend (pureScale:db2instance) 에러라고 봐야할 지, 경고 성 메시지로 메시지를 봐야할 지 개인적으로도 아리송하지만, pureScale 환경에서 진단로그(db2diag.log)에 다음과 같음 메시지를 볼 수 있다. 2012-10-08-15.18.39.607132+540 I35440458A354 LEVEL: Error PID : 13107340 TID : 1 PROC : db2havend INSTANCE: db2inst1 NODE : 000 HOSTNAME: dbcni2 EDUID : 1 FUNCTION: DB2 UDB, high avail services, GPFSCluster::refreshVersionInfo, probe:5127 DATA #1 : String, 37 bytes detected DB2_CFS_GPFS_NO_REFRE.. 더보기