안녕하세요. MSDTC 에러 관련하여 조언 구하고자 합니다.
우선 환경을 말씀드리자면,
서버A (Windows Server 2012 Standard, SQL Server 2012 Standard) , 중국 Unicom IDC 에 수용
서버B (Windows Server 2008 Enterprise - 32bit , SQL Server 2012 Standard - 32bit) , 한국 KT IDC 에 수용
위 서버 A,B 사이에 분산트랜잭션이 이루어지지 않습니다.
링크드 서버를 구성 후 SQL Client 에서 양방향으로 Select, Insert, Update 등을 수행해보면 문제가 없으나
트리거 혹은 프로시져를 구동하는 경우 분산트랜잭션 에러가 발생합니다.
국내 서버들 간의 분산트랜잭션은 문제가 없으나, 네트워크 국제망을 통한 통신에서만 문제가 됩니다.
SQL Server 기본 포트인 TCP 1433 을 다른 특정 포트(TCP 1444) 로 변경 후 A,B서버 간에 접속은 잘 되지만
RPC 사용포트인 TCP 135번 포트는 A,B서버 양측에서 윈도우방화벽 및 서버가 속한 네트워크 방화벽에서 모두
개방했지만 양방향으로 접속이 안됩니다.
TCP 135번 포트 접속이 안된다면 분산트랜잭션 사용이 불가한 것인가요?
이 문제에 대한 해결책이 있는지 궁금합니다.
아울러, 국제망 사이 SQL서버들 간에 Linked Server를 통해 원활하게 통신하는 사례는 있는지 궁금합니다.
전문가분들의 속시원한 조언 좀 부탁드립니다!
Comment 2
-
이스트럭(강동운)
2014.04.16 10:17
-
y2j2
2014.04.16 20:59
답변 감사드립니다!
그런데 이미 동적포트 할당 (10001-10010)은 설정된 상태이고,
양 서버의 윈도우방화벽 네트워크 방화벽에서 필요한 포트(DB 서비스포트, RPC동적포트 등)는 모두 개방한 상태입니다.
그리고 호스트 파일에 두 서버 호스트네임 등록한 상태라, 호스트네임으로 ping 및 양 서버간 DB 서비스 포트
접속은 잘 됩니다.
문제는 RPC 사용포트인 TCP 135번 포트가 양방향 모두에서 접속이 안된다는 것입니다.
RCP 포트는 보안 취약점이 많아 방화벽 뿐만 아니고 라우터 및 스위치단에서도 필터링이 걸려 있는 경우가 많은데
이런 경우에 속하는 것 같습니다.
양 서버 구간이 전용선으로 연결된 전용망 이라면 문제가 없겠지만 인터넷망 통해서 통신을 하려다 보니 안되네요.
그래서 현재는 국제전용망 임대서비스를 고려하고 있는 상태입니다.
여튼, 자세한 조언 감사드립니다.
많은 도움이 되었습니다!!
안녕하세요. 이 글이 도움이 되실지는 모르겠습니다만~~
http://blog.naver.com/PostView.nhn?blogId=giragi&logNo=123602743
저도 여기 보고.. 해결한 적이 있습니다.
감사합니다 ^^