728x90

벨기엔님 | 2013-05-28 10:33:48


바로 아래글에 질의한 DB2 입문 유저입니다.
운영시스템에 쿼리에 ROWNUM, DUAL등이 속해 있는 경우 에러가 발생하는데 문제는 실 운영DB에선 별도 생성한 스키마에서
ROWNUM, DUAL등이 사용가능한 반면 제 로컬DB에선 접근이 불가능하다는겁니다 (SYSIBM에 속한것 같은데..)
이 문제를 해결할 방법을 모르겠네요.. 답변 좀 부탁드리겠습니다.




^ㅇ^ 2013-05-28 11:53:41
운영시스템과 로컬의 차이는 제가 볼때는 db2_compatibility_vector가 설정되어 있느냐 안되어 있느냐 차이 같습니다. 한번 확인해 보세요.

pajama 2013-05-28 12:56:27
db2set db2_compatibility_vector=ora 하시고 db2 엔진 재시작한 후 테스트해보십시오

벨기엔 2013-05-28 14:17:45
아 db별 호환설정같은게 있었군요..
^O^님 pajama님 덕분에 해결되었습니다. 정말 감사합니다.



728x90
728x90

벨기엔님 | 개발 | 2013-05-27 19:09:09


안녕하세요 인사 먼저 올립니다.
상황은 이렇습니다.

현재 로컬pc에 IBM DB2 Express-C 버전을 설치하였고 운영서버 테이블과 데이터를 이관하여
DB를 구축한 상태입니다.

제가 DB2의 지식이 전혀 없다보니.. 구글에서 검색하여 유저나 카탈로그 디비 노드등을 추가하고 여차저차 db2move를 이용하여 import까지는 완료한 상태인데요.
기존에 개발된 환경에 로컬디비를 연결하여 웹화면을 띄었는데 에러가 나더군요.

이유는 ROWNUM컬럼이나 DUAL테이블을 사용할수 없다는 것이었는데..
쿼리를 카피하여 로컬환경에서 실행해보니 역시 없다고 나오고 해서 운영서버로 접속하여 디비에 실행해보니 있는것으로 나오더군요.
한참 해매다가 SET SCHEMA = 'SYSIBM' 명령어를 입력하고 다시 쿼리를 실행하니 있는것으로 나오더라구요.

문제는 웹어플을 실행시에 이런식으로 스키마를 SYSIBM으로 변경하지않고 디폴트스키마(?)로 SYSIBM을 지정하고자 합니다.
뭔가 방법이 있을듯한데 제 능력으론 이 부분이 해결이 안되네요.
고수님들에게 답변을 구하고자 합니다. 부탁드리겠습니다.




pajama 2013-05-27 20:58:41
dual 테이블만 필요하시다면 synonym을 만드시는건 어떨지요
create synonym dual for sysibm.dual

jdbc라면 다음과 같이 스키마를 지정할수있습니다.
jdbc:db2://localhost:50000/sample:currentSchema=SYSIBM;

벨기엔 2013-05-28 09:51:53
pajama님 답변 감사드립니다.
제가 착각했던 문제가 ROWNUM이나 DUAL테이블등을 사용하는 쿼리에서 에러가 발생하길래 스키마를 SYSIBM으로 바꾸면 해결될것이라 생각했더니
그럼 아예 실제 운영테이블들을 읽지 못하네요 -_-; A테이블을 쿼리시 SYSIBM.A 는 정의되지 않은 이름이라면서..

벨기엔 2013-05-28 09:56:33
실운영DB서버에서도 SYSIBM이 아닌 별도로 생성한 스키마를 사용하면서 DUAL, ROWNUM등을 사용할수있는데
왜 제 로컬에 설치한 DB에서는 별도로 생성한 스키마로 DUAL, ROWNUM접근이 안되는지 궁금하네요..

벨기엔 2013-05-28 10:15:02
차이를 살펴보다가 TABLESPACES테이블정보에 실운영DB에는 Owner가 SYSIBM으로 되어있는데 반해 제 로컬DB에는 Owner역시 별도 생성한 스키마명으로 들어가있던데 이게 이유일까요?

^ㅇ^ 2013-05-28 11:51:57
오라클 스타일을 쓰실려구 하시나 보네요. 그럼 생성전 부터 db2set db2_compatibility_vector=ora를 주고 db2stop;db2start후 db를 생성하시는게 좋겠습니다. 그러면 DB를 생성하면서 위의 것을 다 만들어 줍니다.



728x90
728x90

귀여운쫑이님 | 설치/관리 | 2013-05-27 16:09:33


안녕하세요. db2를 이제 시작한 사람입니다.

hadr 환경구성 중 질문사항이 있어서 이렇게 첫글을 쓰게 되네요.

현재는 AIX 5.3 6.1 두개의 서버에 DB2 9.7.3 (Fixpack 설치)  완료한 상태입니다.

db2inst1 user가 좀 이상해서, 5.3(A서버라 지칭) 은 user및 instance가 db2inst2 인 상태이며, B서버에는 db2inst2입니다.

문제는, sample db 를 full backup 후 , B서버에 restore를 시켰는데 /home/db2install/db2backup/db2inst1 경로를 찾습니다.

그래서,  B서버 스탠바이 서버쪽에서 newlogpath 옵션을 줘서 특정 디렉토리로 지정한 후 정상적인 restore를 시켜서 문제가 해결 된 줄 알았습니다.


하지만, 더 큰 문제는 두 서버 모두 환경설정도 마치고, monitoring 해본 결과, 모두 정상적으로 결합되었습니다.
takeover 실험으로 프라이머리 서버a에 xxx라는 간단한 테이블을 생성한 후, 스탠바이 서버에서 takove hadr on db sample 이란 명령어로 승계받았습니다.

그 후, sample DB에 connect을 맺은 후, 생성한 테이블을 select해본 결과, SQL0204N  "DB2INST1.EMPLOYEE" is an undefined name.  SQLSTATE=42704 에러가 발생합니다.

제 생각으로, db path자체를 db2inst1로 잡아주고 있는것 같습니다.
.profile 상에서도 inst2로 잡아주었는데 제 생각과 다르게 자꾸 db2inst1 을 잡고 있는 듯 합니다..

혹시 이런 경우 문제를 어떻게 해결해야하는지 궁금합니다.

답변 부탁드립니다.
先, 감사드립니다.




pajama 2013-05-27 17:38:54
primary에서 어느 유저로 테이블을 생성하셨는지? db2inst2 유저로 생성하셨다면 db2inst2.employee 로 생성되었을텐데요

만약에 db2inst2 유저에서 "select * from employee"로 실행할때 저런 오류가 발생한 것이라면 set current schema db2inst1 명령등으로 스키마가 고정되었을 수 있습니다.

db2inst1 유저로 "select * from employee (또는 select * from db2inst1.employee)"로 실행했을때 저런 오류가 발생했다면 primary에서 db2inst2 유저로 테이블을 생성했을 가능성이 있습니다.


귀여운쫑이 2013-05-27 22:42:39
현재상황 : Primary Server (user: db2inst2 table : db2inst2유저로 XX라는 테이블 생성) Standby Server에서 Take over 명령어 후, Standby Server에서(user : db2inst1) select * from XX 실행 시 저런 오류가 발생합니다.

답변자님 말씀과 비슷한 제 짧은 생각이지만 Primary의 db2ins2 유저로 생성했지만, db2inst1.XX로 생성된거 같은데, 스키마 고정 저 명렁어의 상반되는 명령어로 고정을 풀어주면 될까요?

^ㅇ^ 2013-05-28 11:48:19
많이 꼬여있는것 같습니다. db2inst1에서 생성하셨다가 잘 안지워 지구 해서 db2inst2로 강제로 바꾸셨나 보네요. 테스트에서나 발생될 수 있는 문제로, 완전히 깨끗하게 다시 설치하실 것을 권장드립니다. HADR은 특별한 이유가 없는 이상 user나 환경을 거의 동일하게 가져가는것이 좋습니다.


귀여운쫑이 2013-05-28 14:42:37
제가봐도... 이상하게 꼬인것 같습니다. 새롭게 동일한 환경으로 설치해보아야 겠습니다. 답변 감사드립니다.^^



728x90
728x90

권햏님 | 관리/기타 | 2013-05-20 18:11:59


db2 이관 및 암호화 후 db2fmp가 760개 가량 떠있습니다.
약간 줄어들기도하고 늘어나기도 하면서요..

암호화복호화 펑션이 C기반 UDF로 돌아가는데요.

KEEPFENCED = YES일 경우 빠른케싱을 위해 프로세스를 사용하고난 뒤에도 keep해두고

db2fmp가 udf나 procedure 호출시에 멀티스레드로 생성되는건 알겠는데

이렇게 많이 뜨는게 정상인가요?




pajama 2013-05-20 19:12:34
해당 function 생성 옵션이 fenced not threadsafe인지요? 그런 경우에는 각 db2fmp에서 실행된다고 합니다.

GURI 2013-05-31 16:24:41
저도 유사한 문제로 PMR을 진행 한바 있습니다 db2fmp idle 상태에서 재사용 하지 않고 신규 fmp를 생성하는거 같아 요청 자료를 보내 진행 했지만 재사용 한다는 답변을 받았습니다 더이상 진전이 없을 듯 해 close 했지만 아직도 의문이 남네요 암호화 적용사례가 있으시면 공유 부탁드립니다



728x90
728x90

DB는내운명님 | 백업 | 2013-04-19 18:01:23


db2를 배우고 있습니다.  

만약 백업본이 없는 경우 컨테이너를 복구 할려면 어떤 방법이 있나요??

저는 컨테이너를 copy를 해서 복원해볼려고 했는데.. 잘 안되네요...

db2 고수님들의 조언부탁드립니다.

감사합니다.




pajama 2013-04-19 22:19:21
컨테이너를 copy한다는 말씀이 이해가 안되는데요 dd같은 명령을 말씀하시는 건가요?

컨테이너를 복구하신다고 하셨는데 어떤 오류로 인해 복구하시는 것인지요?

백업본을 말씀하시니 해당 컨테이너에 데이터가 있다면 복구확률이 극히 낮지 않나 생각합니다.

냉정과열정사이. 2013-04-22 14:48:03
안될걸요?

^ㅇ^ 2013-04-23 09:53:56
오라클 스타일로 복구 하려고 하셨군요. ㅎㅎ.
오라클의 경우 데이터파일 각각에 특정 시간 마다 checkpoint 번호를 기록하기 때문에 이 DB를 open 할 때 특정 데이터 파일이 이 번호가 다르면 recovery를 해야 됩니다. 즉 이 특성을 이용해 파일 단위로 복구를 할 수 있는 거죠.
DB2는 이렇게 복구 할 수 없습니다. Tablespace 단위로 복구 해야죠. DB2는 대신에 좀 이상한 특성이 있는데 DB를 내린 상태에서 물리적으로 파일을 복사해 두었다가 많은 트랜잭션을 수행후 파일을 예전 것으로 overwrite 해버리면 복구 없이 예전 data를 읽어 들일 수가 있습니다. 물론 meta 정보는 그대로 있는 상황에 한해서죠....



728x90
728x90

DB는내운명님 | 관리 | 2013-04-08 10:36:39


안녕하세요. DB2를 배우고 있습니다.

제가 DB configration 파일 중 SQLDBCON이라는 파라미터를 삭제 해봤습니다.

SQLDBCONF를 삭제해 보니까 system error 나오는 에러 메시지를 확인 할수 있었는데.

SQLDBCON를 삭제해 보니까 아무런 에러 메세지가 나오지 않았습니다.

SQLDBCON를  삭제해도 이상없이 DB가 운영이 되는게 맞는건지 만약 안된다면 어떠한 ERROR 메시지가 나오는지 궁금합니다.

DB2 고수님들의 조언 부탁드립니다. 




pajama 2013-04-08 21:50:17
안녕하세요. SQLDBCONF 파일은 데이터베이스 구성 매개변수가 저장되어 있는 파일입니다. DB2 8.2 버전 이상부터 SQLDBCONF 파일을 사용합니다. SQLDBCON 파일도 DB가 생성될 때 만들어지지만 사용되지는 않습니다. 8.1 버전으로 마이그레이션 하는 경우 사용한다고 합니다만 또다른 경우가 있는지는 모르겠습니다. 공식문서상으로는 파일에 대한 변경작업을 보장하지는 않으므로 해당 파일을 삭제해서 운영하는 건 맞지 않다고 봅니다.

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0005219.html

^ㅇ^ 2013-04-17 10:46:50
SQLDBCONF가 손상되는 경우 SQLDBCON를 참고한다고 하네요. 결론은 지우면 안되는 파일... 아래 문서를 참고하세요.
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0005420.html



728x90
728x90

DB2는내운명님 | 관리 | 2013-03-29 14:13:48


db2를 배우고 있습니다.

test server에서 crash recovery를 하고 싶은데, 우선 비정상적으로 db를 종료시켜야 하는데.. 어떤 방법으로 해야할지 모르겠습니다.

버전은 DB V9.7.6 입니다. 

고수님들의 조언 부탁드립니다.

감사합니다.





pajama 2013-03-29 14:19:26
db2sysc 프로세스를 강제로 종료(kill)하는 방법이 있습니다.

DB는내운명 2013-03-29 14:24:31
감사합니다



728x90
728x90

캐교님 | 백업 | 2013-03-25 19:21:27


안녕하세요, 

버전 설치가 잘못되어 db2 버전을 내리려고 합니다.
9.5에서 저장중인 데이터를 backup/restore 명령어를 사용하여 옮기려고 했는데

SQL2514N The RESTORE was not successful. The backup used to restore the database contained a database with a release number that is not compatible with the installed version of the database manager.

에러를 내면서 안되네요..
디비투는 많이 사용하여 보지 않아서 빨리 해결을 해야하는데 막막합니다.
고수 여러분들의 도움을 받고 싶습니다.


감사합니다. ㅠㅠ




pajama 2013-03-25 20:32:20
안녕하세요. DB2 9.5와 9.1의 메타테이블 방식이 다르기 때문에 backup/restore 방식으로는 데이터이동이 안됩니다. 데이터를 옮기시려면 테이블별로 export/import 작업을 해주셔야 합니다.


캐교 2013-03-25 22:21:51
db2look -d IFM -e -x -l -z db2inst1 -cor -nofed -noview -o db2look.ddl 으로 ddl을 생성하여 
9.1에서 db2 -tvf db2look.ddl 명령어로 실행해봤는데, 테이블의 절반만 생성되네요.. 문법오류가 나는것 같습니다.

CREATE TABLE "DB2INST4"."IM_USER_INFO" ( "USER_ID" VARCHAR(30) NOT NULL , "ACL_ID" DECFLOAT(16) NOT NULL , "USER_NAME" VARCHAR(32) , "REG_DATE" TIMESTAMP(0) , "STATUS" VARCHAR(3) WITH DEFAULT 'O' , "USER_PASSWD" VARCHAR(16) , "USER_HAND_PHONE" VARCHAR(512) , "USER_TEL" VARCHAR(16) , "USER_EMAIL" VARCHAR(30) , "USER_DEPT" VARCHAR(30) , "USER_POSITION" VARCHAR(30) , "USER_MONITOR" VARCHAR(256) ) IN "USERSPACE1" 

DB21034E The command was processed as an SQL statement because it was not a 
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "DECFLOAT" was found following "NOT NULL , 
"ACL_ID"". Expected tokens may include: "DEC". SQLSTATE=42601

데이터는 db2move를 통해서 export 받으려고 합니다.
뭔가 데이터 유지가 잘 안되는것같은데 export/import 방법이 또 있을까요??


pajama 2013-03-26 00:20:18
ACL_ID 컬럼의 DECFLOAT 데이터 타입이 9.1버전에서는 지원되지 않습니다. DECIMAL, FLOAT등 다른 데이터타입으로 변경해야 합니다.
그리고 REG_DATE 컬럼또한 TIMESTAMP(0)으로 쓰였는데 역시 9.1버전에서 지원하지 않습니다. TIMESTAMP로 바꿔야합니다.

다른 테이블도 이러한 버전차이로 인한 문법차이로 생성되지 않았을 가능성이 커보입니다.

냉정과열정사이. 2013-03-27 16:52:05
다른 데이터무브 방법
1.Cursor load
2.federation
3.파일로 떨군 후의 익스포트 load

DDL이 잘 안떠진 이유는 db2look문장이 조금 이상하지 않나 생각됩니다.

냉정과열정사이. 2013-03-27 16:53:23
-z: Schema name: If -z and -a are both specified then -z will be ignored
Schema name is ignored for the Federated Section

헬프에 이렇게 되어 있고, db2look -d IFM -e -x -l -z db2inst1 -cor -nofed -noview -o db2look.ddl게 명령어를 쳤는데

"DB2INST4"."IM_USER_INFO" 이 테이블의 DDL이 떠졌나요?



728x90
728x90

db2 rsc님 | 쿼리 | 2013-03-19 15:43:48


안녕하세요 DB2 를 배우고 있는데요...

HADR 구성 단계를 공부 하는 중에 db2set DB2_HADR_ROS=Y 라는 레지스트리 파리미터를 보게 됬습니다..

처음 보는 거라서 여러 DB 고수님께 질문 하고자 합니다.~~

그리고 하나더 물어보고 싶은게 있습니다^^ 
 
HADR 구성 파라미터 중에 
lOGINDEXBUILD  와  HADR_LOCAL_SVC 와 HADR_REMOTE_SVC의 개념과 뭐가 들어 오는지 궁금합니다.

DB2 고수님들의 조언 부탁드립니다 

감사합니다^^




pajama 2013-03-19 18:05:51
DB2_HADR_ROS 레지스트리 변수를 on으로 설정했을때는 스탠바이 노드에서 읽기 작업이 가능합니다. HADR_LOCAL_SVC와 HADR_REMOTE_SVC는 HADR 에이전트 간 통신포트를 의미합니다. DB2의 SVCENAME에서 지정한 포트를 사용할 수 없습니다.
LOGINDEXBUILD 파라미터는 인덱스 작성시의 로깅 여부를 설정합니다. OFF로 설정했을 때 스탠바이 노드의 인덱스가 invalid 상태로 빠질 수 있습니다.

참조:
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/c0011691.htm


728x90
728x90

db2 rsc님 | 설치 | 2013-03-18 18:42:31


현재 db2을 배우고 있습니다.

windows에서 db2 v9.1 fixpack 10 -> 11으로 올리는 방법에 대해 궁금해서 글을 쓰게 됬습니다.

고수님들의 조언 부탁드립니다.~~




pajama 2013-03-18 20:52:43
1. 시스템 요구사항 확인
http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.uprun.doc/doc/r0006867.htm

2. DB2 Fix Pack 다운로드
http://www-01.ibm.com/support/docview.wss?uid=swg27007053

3. DB2 인스턴스 종료
db2stop force
http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.uprun.doc/doc/t0024968.htm

4. setup 명령으로 Fix Pack 설치
엔터프라이즈 버전은 ESE, 워크그룹은 WSE 폴더가 있습니다.
http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.uprun.doc/doc/t0024958.htm

5. 설치 완료 후 인스턴스 리스트 확인 및 시스템 카탈로그 업데이트
① db2ilist
② db2updv9 -d dbname
http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.uprun.doc/doc/t0024993.htm

6. DB2 유틸리티 및 패키지 바인딩
DB2의 데이터베이스 별로 바인딩을 수행합니다.
http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.uprun.doc/doc/t0024970.htm

7. DB2 인스턴스 시작
db2start


728x90

+ Recent posts