MS SQL
MS-SQL#
MS-SQL 연결정보를 등록할 때, "Test" 버튼을 누르면 접속에 실패하는 오류 메시지가 출력될 수 있다.#
원인#
연결정보 등록 중 Test 버튼을 눌렀을 때, 오류 메시지와 함께 접속에 실패한다.
MS-SQL 연결정보를 등록할 때, Test 버튼을 누르면 아래와 같은 오류 메시지가 출력될 수 있다.
Migration Center can support MS-SQL user who has a single schema only.
User doesn't have appropriate schema in target database.
연결정보의 사용자가 가진 스키마 관계가 Altibase와 호환 불가능한 상태이기 때문에, 등록이 허용되지 않는다.
MS-SQL은 Altibase와 사용자와 스키마 간의 관계가 다르다. Altibase는 각 사용자에게 하나의 스키마가 할당되며, 데이터베이스 객체가 해당 스키마에 종속되는 구조이다. 이에 반해 MS-SQL은 한 사용자가 복수의 스키마를 소유할 수 있으며, 각 스키마에 데이터베이스 객체가 종속된다. 이러한 차이로 인해 마이그레이션 센터는 MS-SQL 사용자가 하나의 스키마만을 소유한 경우에만 연결정보 등록을 허용한다.
따라서, MS-SQL 사용자가 스키마를 소유하지 않거나 복수의 스키마를 소유한 경우에는 연결정보를 등록할 수 없다.
해결 방법#
연결정보의 사용자가 하나의 스키마만 갖도록 수정한다.
연결정보 등록 중 "Test" 버튼을 눌렀을 때, 프로그램이 멈춘다.#
원인#
장비에 설치된 JVM과 마이그레이션 센터에 내장된 JVM 간의 충돌이 원인으로 추정된다. 실행파일 migcenter.bat로 마이그레이션 센터를 시작하면 제품에 내장된 JRE를 통해 실행되는데, 실행 장비의 운영체제가 Windows 이고 이미 JRE이 설치되어 있을 때 이러한 문제가 발생할 수 있다.
해결 방법#
실행 파일 migcenter.bat를 편집기로 열어, 환경변수 JAVA_HOME의 값을 장비에 기존에 설치된 JRE 위치로 변경해야 한다. 변경할 JRE는 반드시 8 이상이어야 한다.
오류 메시지 'Unable to insert (or update) NULL into NOT NULL column.'와 함께 데이터 이관에 실패한다.#
원인#
MS-SQL에서 NOT NULL 제약 조건이 걸린 테이블 칼럼에 빈 문자열이 삽입되어 있기 때문이다.
Altibase에서는 빈 문자열은 NULL을 의미하기 때문에, NOT NULL 제약 조건이 걸린 테이블의 칼럼에 빈 문자열을 삽입하는 것을 허용하지 않는다.
해결 방법#
빈 문자열 처리 옵션을 참고하여 Data Options의 빈 문자열 처리 옵션을 조정하고 다시 마이그레이션을 시도한다.
중복된 외래키의 이관이 실패한다.#
원인#
MS-SQL에서 외래키가 중복 생성되어 있는 경우, Altibase에서는 이를 허용하지 않기 때문에 중복된 외래키 중 하나만 이관된다.
해결 방법#
Run 단계 수행 후 생성된 리포트의 Missing 탭에서 이관에 실패한 외래키를 확인할 수 있다.
오류 메세지 'The server selected protocol version TLS10 is not accepted by client preferences'와 함께 서버 접속이 실패한다.#
원인#
Migration Center를 구동하는데 사용한 Java Runtime Environment (JRE) 의 기본 TLS 버전이 1.2 이상으로 변경되었는데, MS-SQL 서버에서 해당 TLS 버전을 지원하지 않아서 발생한 오류이다.
해결 방법#
java.security 파일의 jdk.tls.disabledAlgorithms 항목에서 TLSv1, TLSv1.1을 제거하면 이전 버전의 TLS를 사용 가능하다.
java.security 파일의 경로는 자바 버전에 따라 다르다:
- 자바 11 미만:
$JAVA_HOME/jre/lib/security
- 자바 11 이상:
$JAVA_HOME/conf/security
//jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA,
TLS 1.2 이상 버전을 의무적으로 사용해야 한다면, KB3135244 - TLS 1.2 support for Microsoft SQL Server를 참조하여 Windows, MS-SQL 서버, MS-SQL JDBC 드라이버 파일을 업데이트 해야 한다.
마이그레이션 센터를 실행하는 자바 버전과 맞지 않은 JDBC 드라이버를 사용하면 Unable to connect to DB. javax/xml/bind/DatatypeConverter 에러가 발생할 수 있다.#
자바 11 이상에서 마이그레이션 센터를 실행하고 JRE 10 이하 버전의 JDBC 드라이버를 사용하면 Unable to connect to DB. javax/xml/bind/DatatypeConverter 에러가 발생한다.
원인#
JRE 10 이하 버전의 JDBC 드라이버에서 javax.xml.bind 모듈을 참조하여 발생하는 에러이다. javax.xml.bind 모듈은 자바 11 이상에서 제거되었다.
해결 방법#
마이그레이션 센터를 실행하는 자바 버전에 해당하는 JDBC 드라이버 파일을 사용한다.
예: mssql-jdbc-7.2.2.jre11.jar