MSSQL에서 MariaDb 로 데이터 내보내기

MSSQL에서 MariaDB로 링크드 서버를 사용해 직접 연결하여 데이터를 내보내는 방법은 다음과 같습니다. 이 방법은 데이터 양이 많지 않고 두 데이터베이스가 네트워크 상에서 연결 가능한 경우 유용합니다.

1. ODBC 드라이버 설치

MariaDB에 연결하려면 MSSQL 서버에 MariaDB ODBC 드라이버가 설치되어 있어야 합니다.

  1. MariaDB ODBC 드라이버를 다운로드하고 설치합니다.
  2. 설치가 완료되면, ODBC 관리자 도구를 사용해 MariaDB로 연결하는 **DSN(Data Source Name)**을 설정합니다:
    • System DSN 탭을 선택하고, MariaDB ODBC 드라이버를 통해 새 DSN을 만듭니다.
    • DSN 설정에는 MariaDB 서버의 호스트, 포트(기본값: 3306), 데이터베이스, 사용자, 비밀번호 등을 입력합니다.
    • 접속 테스트시 ssl 오류 무시해도 됨.

2. MSSQL에서 링크드 서버 추가

ODBC 설정이 완료되면, MSSQL에서 MariaDB를 링크드 서버로 추가할 수 있습니다.

  1. **SQL Server Management Studio(SSMS)**에서 새 쿼리 창을 엽니다.
  2. 아래 SQL을 사용해 링크드 서버를 추가합니다:
    EXEC sp_addlinkedserver
    @server = 'MariaDB_LinkedServer', -- 링크드 서버의 이름, 임의로 지정 가능
    @srvproduct = '',
    @provider = 'MSDASQL',
    @datasrc = 'MariaDB_DSN'; -- 앞서 설정한 ODBC DSN 이름
  3. 링크드 서버에 사용할 보안 설정을 추가합니다.
    EXEC sp_addlinkedsrvlogin
    @rmtsrvname = 'MariaDB_LinkedServer', -- 링크드 서버 이름
    @useself = 'false',
    @rmtuser = 'MariaDB_사용자', -- MariaDB 사용자명
    @rmtpassword = 'MariaDB_비밀번호'; -- MariaDB 비밀번호

    이 과정에서 @rmtuser@rmtpassword를 MariaDB 사용자와 비밀번호로 입력합니다.

3. 링크드 서버를 통해 데이터 전송

링크드 서버가 설정되면, MSSQL의 데이터를 MariaDB로 직접 전송할 수 있습니다. 아래는 데이터를 이전하는 방법의 예시입니다.

  1. INSERT INTO 구문을 사용한 데이터 복사
    INSERT INTO OPENQUERY(MariaDB_LinkedServer, 'SELECT * FROM MariaDB_데이터베이스명.테이블명')
    SELECT * FROM MSSQL_테이블명;
  2. 테이블 구조가 다른 경우 데이터 매핑

    테이블 구조가 서로 다를 경우, 원하는 컬럼만 선택해 이전할 수 있습니다.

    INSERT INTO OPENQUERY(MariaDB_LinkedServer,
    'SELECT 컬럼1, 컬럼2 FROM MariaDB_데이터베이스명.테이블명')
    SELECT 컬럼A, 컬럼B FROM MSSQL_테이블명;

4. 링크드 서버 테스트 및 확인

링크드 서버가 제대로 설정되었는지 확인하려면, SELECT 구문으로 데이터를 조회해볼 수 있습니다.

SELECT * FROM OPENQUERY(MariaDB_LinkedServer, 'SELECT * FROM MariaDB_데이터베이스명.테이블명');

주의사항

  • 성능: 링크드 서버를 통한 데이터 전송은 네트워크 성능과 MariaDB의 설정에 따라 성능이 제한될 수 있습니다. 대량 데이터를 전송할 때는 다른 방법을 고려하는 것이 좋습니다.
  • 접속 권한: MariaDB 서버에 MSSQL 서버가 연결될 수 있도록 방화벽 및 네트워크 설정을 확인합니다.
  • 데이터 형식 차이: MSSQL과 MariaDB는 데이터 타입에 차이가 있으므로, 전송 전 각 컬럼의 데이터 형식을 확인하는 것이 중요합니다.

이 설정을 통해 MSSQL에서 MariaDB로 데이터를 직접 전송할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다