안녕하세요.
1번 서버와 2번 서버가 있는 상태에서
1번 서버에서 쿼리를 실행을 하면 결과값이 나오는데
2번 서버에서 1번 서버로 접속 후 같은 쿼리를 실행할 경우 결과값이 나오지 않습니다.
해당 쿼리에는 where in 조건에 서브쿼리를 이용하여 udr도 사용하고 있습니다.
이렇게 사용시에 제약조건이 있는 건가요?
구글과 ibm 사이트에서 찾아 봐도 비슷한 관련 내용이 없어 질문 드립니다.
쿼리에서 사용하는 테이블과 udr이 1번서버에 모두 존재한다면 어느원격지에서 접속하더라도 결과는 같습니다.
1번, 2번 모두 인포믹스 서버이신가요?
2번에서 1번 데이터베이스에 접속하신다고 하셨는데
쿼리에서 1번,2번 서버 양쪽의 테이블을 다 사용하는지요?
2번에서 1번으로 접속하실때 dbaccess 또는 c나 java 어떤것으로 접속하시는지요?
결과값이 나오지 않는다고 하셨는데 건수가 다르신건지 아니면 오류로 결과가 나오지 않는다는 말씀이신가요?
그리고 재현할만한 시나리오를 공유해주실수있나요?
우선 답변 감사합니다.
1. 1번 2번 둘다 인포믹스 서버입니다.
2. 서버 양쪽의 테이블은 아니고 1번 서버의 테이블만 사용합니다.
3. dbaccess로 접속
4. 오류는 발생하지 않고 no rows로 결과 값이 없다고 나옵니다.
5. 해당 쿼리
select * from ocusdb@db01:cr_mcy
wherer enc in (select ocusdb@db01:spc_enc('1234561111111')
from ppcommon@db01:dual);
위의 쿼리로 조회를 합니다.
테스트로 2번 서버에서 dbaccess로 1번 서버 접속후 해당 쿼리로 동일한 결과값이 나와서
다시 확인해 보니 2번 서버에서 dbaccess로 2번 서버 접속후 쿼리만 위의 쿼리로 실행하면
no rows가 나온다고 합니다.
저도 재현해 볼려고 2번 서버에서 dbaccess로 2번 서버 접속후 해당 쿼리 실행하면
2번 서버 online.log에 -956에러 떠서 접속이 안되네요 ㅜ
직접 테스까지 해주시고 감사합니다.
2번 서버에서는 dbaccess로 접속하려고 하면 951 : incorrect password or user informix@dbname is not known on the database server. 이라고 에러메세지 발생하고 접속이 안되네요, 특이한거는 2번 서버에는 온라인 로그에는 아무 로그가 남지 않고
1번 서버 온라인 로그에 listener-thread: err = -956: orserr = 0: errstr = infromix@dbname : client host or user informix@dbname is not trusted by the server 로 기록 되어 있습니다.
2번 서버에서 dbaceess 접속후 1번 서버 conncetion 선택 할때 유저랑 패스워드 직접 입력해서 접속할 경우는 정상적으로 접속이 됩니다.
sqlhosts 쪽에 따로 접속 할 서버의 유저명과 패스워드를 입력하는 곳이 있나요?
sqlhosts 파일에서 ID/패스워드를 관리하지 않습니다.
인포믹스는 OS계정을 사용해서 접속합니다. 따라서 원격지에서 접속하려면 서버에서 패스워드 없이 로그인을 허용하도록 설정하는데요.
일반적으로는
1. DB서버의 /etc/hosts에 클라이언트 호스트명과 IP를 등록하고,
2. 사용자 계정 홈디렉토리의 .rhosts 파일에 허용할 클라이언트 호스트명과 계정이름을 기록해두면
원격지에서 패스워드 입력없이 접속할 수 있습니다.
계정이 informix라면 2번 db서버 informix 계정의 ~/.rhosts 파일을 확인해보세요.
답변 감사합니다.
.rhosts 라는 파일이 없어서 설정을 못 했는데
rsh를 받아서 따로 설정을 해줘야 하는 거였네요.
설정 완료하고는 에러 없이 정상적으로 접근 가능합니다.
위에 테스트 해주신 쿼리로 저도 테스트 해봤을때는
정상적으로 둘다 1234 결과 값이 나옵니다.
그런데 제가 사용해야될 udr 사용했을 경우에는
2번 서버에서는 같은 쿼리인데 no rows 가 뜨네요.
1번 서버에서는 같은 쿼리에 결과값이 출력이 됩니다.
informix 제약사항인가 싶었는데 아무래도 udr 문제인거 같네요.