SQLyog를 이용한 MSSQL에서 MySQL 마이그레이션(Migration) 하기





    이번 포스팅에서는 SQLyog를 이용하여 MSSQL의 데이터베이스를 MySQL 데이터베이스로 마이그레이션을 알아보도록 하겠습니다





     Migration(마이그레이션) 은 무엇인가?


    비용뿐만 아니라 다른 지원할당, 성능, 인력전환 등등 여러가지 부분이 있긴하겠지만 특히 높은 유지보수비용을 내야되는 Windows 에 비해 저렴한 비용인 Linux로 전환하는 경우가 많습니다.




    즉, 현재 운영하는 환경(OS, 미들웨어, 하드웨어)를 전혀 다른 환경(OS, 미들웨어, 하드웨어)으로 변경하는것을 Migration(마이그레이션)이라고 합니다.








     SQLyog를 이용한 MSSQL에서 MySQL Migration(마이그레이션) 관련 툴 설치



    Migration 관련 툴 설치 :


    SQLyog Trial 다운받기 - https://www.webyog.com/product/sqlyog

     - Community 버전이 아닌 Trial 버전으로 다운로드 하셔야 됩니다.








     MySQL Migration(마이그레이션) 준비작업 및 작업 진행과정



    * 마이그레이션은 고급기술에 속하며, 작은 부분도 그냥 지나칠 경우 많은 데이터 손실 및 큰 장애를 초래하게 될수 있으니 사전에 마이그레이션을 어떻게 진행할지 꼭 구성하고 진행하시기를 권장드립니다



    MSSQL 에서 MySQL 마이그레이션 작업구상


    1. 데이터베이스 백업 (컨버전 진행시 데이터 손실에 대한 우려에 대해 미리 백업)


    2. 데이터베이스 테이블 구조 확인


    3. 데이터베이스 테이블 데이터 확인


    4. 데이터베이스 ODBC 설정하기


    5. 마이그레이션 진행


    6. 마이그레이션 데이터 확인


    7. 마이그레이션 테이블 구조 확인


    8. 마이그레이션 잘못 변경된 테이블 구조 수정



    위와 같이 테이블 구조를 확인하여, 어떠한 구조로 되어 있는지 확인하는 과정을 거칩니다




    위 내용은 MSSQL 에서 MySQL로 마이그레이션을 진행하기 위한 테이블의 데이터 입니다



    위의 내용의 확인이 완료 되신후에 ODBC DSN을 설정하시면 되며, ODBC 설정은 아래의 URL을 참조하시면 됩니다



    Migration ODBC 설정 :


    Windows Server ODBC 설정하기 - https://server-talk.tistory.com/285








     SQLyog를 이용한 MSSQL에서 MySQL Migration(마이그레이션) 하기



    [MSSQL 접속정보 Origin Server]


    IP or DNS : 192.168.85.143


    DB_Name : ms_server_talk


    ID : ms_server_talk


    PW : Server_talk!23



    [MySQL 접속정보 Target Server]


    IP or DNS : 192.168.85.128


    DB_Name : my_server_talk


    ID : my_server_talk


    PW : Server_talk!23



    진행하기 앞서 포스팅 과정중에 혼동이 올수 있기때문에 데이터를 마이그레이션하게될 서버의 명칭을 Origin Server로 하고 마이그레이션이 완료된 서버의 이름을 Target Server로 명칭을 사용하여 진행하도록 하겠습니다





    SQLyog Trial 을 실행하신 후 상단탭에서 파워툴 - 외부 데이터를 가져오기를 선택 합니다





    1. SQLyog 외부 데이터 가져오기 마법사



    파월툴 외부 데이터를 가져오기 선택하시면 SQLyog 외부 데이터 가져오기 마법사창이 나타나며 새 작업 시작 을 체크하고 다음으로 진행합니다




    2. SQLyog 외부 데이터 가져오기 마법사



    MSSQL서버(Origin Server)를 접근하기 위해 ODBC 등록한 DSN 정보와 DBMS 계정정보를 입력정보를 입력하고 다음을 선택 합니다



    SQLyog 외부 데이터 가져오기 마법사 2 - 상세정보


    1) 데이터 소스 유형

    1-1) Access : 

    1-2) Excel : 

    1-3) CSV :

    1-4) ODBC 소스 :


    2) ODBC 데이터 소스 이름(DSN)을 선택 또는 생성

    2-1) 시스템/사용자 DSN :

    2-2) DSN 파일 정리


    3) 데이터 소스의 인증서 입력

    사용자이름 : 

    비밀번호 : 



    3. SQLyog 외부 데이터 가져오기 마법사



    MySQL서버(Target Server)의 접속정보를 입력합니다 또한, 저장된 세션정보가 있다면 저장된 세션정보로 간편하게 지정할수 있습니다



    3. SQLyog 외부 데이터 가져오기 마법사


    MySQL 접속사항 지정하기

    1) 연결복사 : 

    * SQLYog에서 저장한 접속정보가 있을경우 연결복사에 선택하여 MySQL 접속을 진행하실 수 있습니다


    2) MySQL

    1-1) MySQL 호스트 주소 :

    1-2) 사용자이름 :

    1-3) 사용자이름 :

    1-4) 비밀번호 :

    1-5) 포트 :

    3) 압축프로토콜 사용 : 체크해제 (압축 프로토콜을 사용하면 압축을 통해 전송과정중에 데이터크기가 줄어들어서 전송이 빠르지만 로컬 컴퓨터 일경우에는 빠르게 전송이 가능하여 옵션을 체크하시지 않는것이 좋습니다


    4) 데이터베이스 : 해당계정에 데이터베이스 선택합니다




    4. SQLyog 외부 데이터 가져오기 마법사




    데이터 소스로부터 테이블 복사하기를 선택하고 다음으로 진행합니다



    SQLyog 외부 데이터 가져오기 마법사 4 - 상세정보


    1) 데이터 소스로부터 테이블 복사하기 : [DBMS의 테이블을 가져올때 지정입니다.]


    2) 전송할 데이터를 지정하기 위한 쿼리 사용하기 : [DBMS의 테이블에서 조회한 데이터를 가져올때 지정입니다]





    5. SQLyog 외부 데이터 가져오기 마법사



    MSSQL서버(Origin Server)의 테이블 지정과 MySQL서버(Target Server)의 테이블 지정및 스키마 지정입니다



    SQLyog 외부 데이터 가져오기 마법사 5 - 상세정보


    MSSQL서버(Origin Server)의 테이블 지정과 MySQL서버(Target Server)의 테이블 지정및 스키마 지정입니다


    1) Source : MSSQL서버의 테이블명 (Origin Server 서버의 테이블명)


    2) Destination : MySQL서버의 테이블명 (Target Server의 테이블명)


    3) Map : MySQL서버의 테이블 구조 확인및 구조변경 (Target Server 테이블 구조 확인 및 구조 변경


    4) Advanced : MySQL서버의 테이블 데이터 설정 (Target Server 서버의 테이블 데이터 설정)


    5) WHERE : MySQL서버의 복원될 테이블에 데이터가 만족하는 조건에 데이터만 가져올떄 설정 (Target Server 복원될 테이블에 데이터가 만족하는 조건에 데이터만 가져올때 설정)





    5-1 SQLyog 외부 데이터 가져오기 마법사 - [Map] - 1



    Map 아래의 ... 을 선택하면 컬럼 매핑 및 변환 창이 열리게 되며, 열리게되며 MySQL서버(Target Server)의 테이블 스키마 구조를 쉽게 확인및 변경하실수 있습니다



    5-2 SQLyog 외부 데이터 가져오기 마법사 - [Map] - 2



    그리고 컬럼 매핑 및 변환 창에서 SQL 편집을 선택하시면 SQL문을 확인하실 수 있습니다






    5-3 SQLyog 외부 데이터 가져오기 마법사 - [Advanced]



    Advanced 아래의 ... 을 선택하면 Advanced Options 창이 열리게 되며, MSSQL서버(Origin Server) 에서 데이터를 불어와서 MySQL서버(Target Server)의 테이블의 엔진 및 데이터 복원을 원하는 설정부분입니다




    5-4 SQLyog 외부 데이터 가져오기 마법사 - [WHERE]



    WHERE 아래의 ... 을 선택하면 SQL WHERE 창이 열리게 되며, SQL WHERE절 처럼 MySQL서버(Target Server)의 테이블의 조건에 만족하는 데이터만 지정하실 수 있습니다



    5-5 SQLyog 외부 데이터 가져오기 마법사



    테이블 설정이 완료되셨다면 다음을 선택합니다





    6. SQLyog 외부 데이터 가져오기 마법사



    오류나면 중지하기, 이메일 알림 체크해제 후 다음을 선택합니다




    7. SQLyog 외부 데이터 가져오기 마법사



    즉시 실행을 체크하시고 에러발생시 로그를 확인하기 위해 로그파일을 지정하신 후 다음을 선택합니다




    8. SQLyog 외부 데이터 가져오기 마법사



    위 내용은 마이그레이션이 완료된 부분이며, 에러메세지가 나오면 마이그레이션이 실패가 된것이며 에러메세지를 따라가 앞서 설정한 부분을 변경하시면 됩니다 

    또한, 테이블에 데이터양이 많으면 소요시간이 짧게는 1~2분 길게는 수십분이 소요가됩니다


    ※ 필독

    SQLyog에서 여러개의 테이블을 마이그레이션할 경우에 에러메세지가 나오게 된다면 에러메시지가 나온 테이블에만 마이그레이션이 실패하게 되며 다른 테이블은 정상로 진행되게 됩니다




    9. SQLyog 외부 데이터 가져오기 마법사



    SQLyog 외부 데이터 가져오기 마법사로 통해 마이그레이션이 완료되었습니다










     데이터베이스 테이블 데이터 확인






    마이그레이션후 테이블을 조회하여 데이터가 잘 입력되었는지 확인합니다







     마이그레이션 테이블 구조 확인




    마이그레이션후 테이블 구조를 조회하여 변경사항이 있는지 확인합니다






     마이그레이션 잘못 변경된 테이블 구조 수정



    위 내용에서 MSSQL서버(Origin Server)와 MySQL서버(Target Server)를 비교하셨을경우 mb_pw 컬럼 type이 varchar(300)에서 text로 변경된것을 확인하수 있으며, 이러한 경우 type을 변경을 진행하시면 됩니다







    테이블 수정 관련글 : 

     

    MySQL - 테이블 수정 알아보기 - ALTER - https://server-talk.tistory.com/281




    Posted by Server-talk 서버이야기