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

+ Recent posts