SQL Server를 MySQL로 마이그레이션해야 함


22

Windows 서버의 SQL Server 2008에 데이터베이스가 있고 모든 데이터를 Ubuntu 서버의 MySQL 데이터베이스로 옮기고 싶습니다. MySQL ODBC 드라이버와 함께 SQL Server 가져 오기 및 내보내기 마법사를 사용해 보았는데 두 데이터베이스 모두에 올바르게 액세스하지만 형식 변환 사양이 포함 된 xml 파일이없고 사양이 너무 제한되어 제대로 만들 수 없습니다. 누구든지 형식 변환 파일을 만드는 방법이 나이 데이터를 전송하기위한 더 나은 도구를 얻는 방법을 알고 있습니까?


1
질문을 보셨습니까 ? MySql에서 MSSQL로 데이터를 복제하는 것입니다. 어쩌면 거기에 힌트가있을 것입니다.
Marian

@Marian 링크에 감사드립니다. MySQL 서버를 SQL Server에서 연결된 서버로 사용하는 것이 내 문제의 해결책 인 것 같습니다.
murgatroid99 2016

1
우리는 얼마나 많은 데이터에 대해 이야기하고 있습니까? 5mb? 3TB?
AaronJAnderson 2013

GB 또는 10GB라고 생각하지만이 질문은 1 년 반 전에 왔기 때문에 실제로 기억하지 못합니다.
murgatroid99

답변:


13

두 가지 제안이 있습니다.

1) 상용 제품을 가져 오는 것을 싫어하지만 MSSQL을 MySQL로 마이그레이션하기 위한 $ 49.00 도구가 있습니다.

2) 추가 제안 사항은 MySQL의 MSSQL 마이그레이션 포럼을 참조하십시오.

업데이트 2011-06-03 18:03 EDT

2010 년 1 월에 MySQL Migration Toolkit이라는 EOL로 돌아간 이전 제품이 있습니다. 붙잡을 수 있다면 사용할 수 있습니다.

업데이트 2011-06-03 18:06 EDT

아카이브를 찾았습니다 !!! 다음은 MySQL 마이그레이션 툴킷입니다.

업데이트 2011-06-03 18:11 EDT

다음은 MySQL Migration Toolkit 개요입니다.

업데이트 2011-06-03 19:08 EDT

다른 상용 제품 ($ 29)

업데이트 2011-06-03 19:30 EDT

다음은 MSSQL을 MySQL로 마이그레이션하는 프리웨어 도구 목록입니다.

업데이트 2011-06-15 17:47 EDT

Microsoft SQL Server를 MySQL로 마이그레이션하기 위한 안내서 (여전히 상업용) 에서 Oracle의 WhitePaper (PDF)를 다운로드하십시오.

업데이트 2012-08-21 01:24 EDT

이 MySQL WebPage 에 따르면 섹션에서는 MySQL Workbench: Database Migration WizardMySQL Workbench에 SQL Server에서 MySQL로 DB 객체를 마이그레이션 할 수있는 기능이 있다고 주장합니다.


1
상용 제품을 피할 수 있다면 사용하지 않는 것이 좋습니다. Migration Toolkit을 사용해 보았지만 최신 버전의 MySQL과 호환되지 않는다고 생각합니다. 생성 된 SQL 삽입 문에 엄청난 수의 구문 오류가 있었고 마법사를 실행 한 후 생성 된 테이블에 행이 없었습니다. 쉐어웨어 도구는 이전 버전의 MySQL에서도 작동하도록 만들어졌습니다. 노력해 주셔서 감사합니다.
murgatroid99 2016

4

Marian의 제안 에 따라 MS SQL Server에서 MySQL 서버를 연결된 서버로 설정하여 다른 방향으로 복제하는 것에 대한 대답을 찾았 습니다. MySQL을 연결된 서버로 설정하면 두 데이터베이스에서 동시에 SQL 쿼리를 실행할 수 있으며이 문제를 해결하는 데 필요한 기능을 정확하게 제공합니다.


3

이 작업에 SSIS를 사용해 보셨습니까? 이 도구는 SQL Server 용 ETL 도구이며이 작업을 수행하는 데 도움이되는 많은 변환 및 논리가 있습니다.


앞에서 언급 한 가져 오기 / 내보내기 마법사는 실제로 SSIS 패키지를 만듭니다. 내가 가진 문제는 SSIS가 XML 파일을 사용하여 다른 데이터베이스 관리 시스템에서 유형 간 변환 방법에 대한 데이터를 저장하고 해당 파일이 MySQL에 존재하지 않는다는 것입니다.
murgatroid99 2016

3

MySQL Workbench는 다음을 수행 할 수 있습니다.

http://dev.mysql.com/downloads/workbench

우분투 MySQL 서버에 액세스 할 수 있어야하는 MS SQL Server 컴퓨터에 직접 설치할 수 있습니다 (속도 이점!).


2

나는 시도 마이그레이션 툴킷을 MySQL로 SQL 서버에서 가져올 수 있습니다. 그러나 SQLyog Import 외부 데이터가 양호 하다는 것을 알았습니다 . 가져 오기 프로세스를 예약하고 기존 테이블로 가져 오기 위해 필요한 매핑을 수행 할 수도 있습니다. 여기 에서 다운로드 하십시오 .

여기에 이미지 설명을 입력하십시오


SQLyog는 훌륭한 도구이지만 "외부 데이터 가져 오기"기능은 매우 느립니다. MySQL Workbench보다 몇 배나 느립니다. 인터페이스가 Workbench보다 훨씬 직관적이기 때문에 SQLyog 개발자가 문제를 해결하기를 바랍니다. 그러나 수백 개의 행만 가져 오지 않는 한 가져 오기가 완료 될 때까지 몇 시간 또는 며칠 동안 기다릴 준비가되어 있지 않은 경우.
nextgentech

2

최근 에이 작업을 수행하기 위해 etlalchemy 를 발표 했습니다 . 4 줄의 Python으로 2 개의 SQL 데이터베이스간에 마이그레이션 할 수있는 오픈 소스 솔루션입니다 . 지원되는 RDBMS에는 MySQL, PostgreSQL, Oracle, SQLite 및 SQL Server가 포함됩니다.

이것은 한 SQL 벤더의 열 유형을 다른 SQL 벤더의 열 유형으로 맵핑하는 어려운 작업을 처리합니다. 스키마를 전송하고 변환 할뿐만 아니라 데이터베이스 전체에서 모든 데이터, 인덱스 및 제약 조건 을 마이그레이션 합니다.

설치하기 위해서:

$ pip install etlalchemy

엘 캐피 탄에 :pip install --ignore-installed etlalchemy

실행하려면

from etlalchemy import ETLAlchemySource, ETLAlchemyTarget

mssql_db_source = ETLAlchemySource("mssql+pyodbc://username:password@DSN")

mysql_db_target = ETLAlchemyTarget("mysql://username:password@hostname/db_name", drop_database=True)
mysql_db_target.addSource(mssql_db_source)

프로젝트의 출처에 대한 배경 지식을 얻으려면 이 게시물을 확인하십시오. 도구를 실행하는 동안 오류가 발생하면 github repo 에서 문제를 열고 일주일 이내에 패치 해 드리겠습니다!


0

이 작업을 수행하는 데 도움이되는 MySQL Workbench Migration 도구

1) 마이그레이션 프로세스를 시작하려면 MySQL Workbench 기본 화면에서 데이터베이스-> 마이그레이션 마법사로 이동하십시오.

2) 작업을 계속할 수 있는지 확인하기 위해 필수 구성 요소를 확인해야합니다. 모든 것이 괜찮다면 Start Migration을 누르십시오.

3)이 단계에서는 원본 데이터베이스 (이 경우 SQL Server)에 대한 정보를 제공해야합니다.

소스 매개 변수를 구성합니다 :

데이터베이스 시스템 : Microsoft SQL Server

연결 방법 : ODBC (기본)

드라이버 : SQL Server

서버 : localhost

사용자 이름 : sa

4) 이제 연결 테스트 버튼을 사용하여 연결을 확인할 수 있습니다.

5) 그런 다음 대상 매개 변수를 추가해야합니다.

연결 방법 : 표준 (TCP / IP)

호스트 이름 : Your_host_name

포트 : 3306

사용자 이름 : 마이그레이션

6) Test Connection을 눌러 추가 정보를 확인하십시오.

7) 다음 단계에서 MySQL Workbench는 SQL Server에 연결하여 카탈로그 및 스키마 목록을 가져옵니다.

8) 이제 목록에서 Your_database_name 데이터베이스를 선택합니다.

리버스 엔지니어링 된 스키마와 객체의 매핑 방법을 선택할 수 있습니다. 우리는 Catalog.Schema.Table-> Catalog.Table 옵션을 사용할 것이므로, MySQL에서는 데이터베이스와 SQL Server 데이터베이스에있는 현재 테이블을 선택합니다.

9) 모든 것이 잘되면 마이그레이션 할 객체 목록이 나타납니다.

10)이 경우 테이블 개체, 뷰 개체 및 루틴 개체가 있습니다. 나머지 객체의 경우 해당 MySQL 동등한 코드를 수동으로 확인해야하므로 Table Objects 만 선택합니다.

11)이 단계에서 소스의 객체는 MySQL 호환 객체로 변환됩니다.

12) 모든 것이 정상이면 대상에서 마이그레이션 된 스키마를 작성하는 방법을 선택하여 계속할 수 있습니다. 기본“대상 RDBMS에 스키마 생성”옵션을 사용합니다.

13) 이제 생성 스키마 프로세스를 확인하겠습니다.

14) 다음 단계에서는 각 스크립트 실행 결과를 확인하고 MySQL 서버에서 생성 된 새 데이터베이스를 확인할 수 있습니다.

15)이 시점에서 데이터베이스 구조를 가지지 만 아직 데이터는 없습니다. 이제 MySQL 서버에서 데이터를 복사하는 방법을 선택하겠습니다. “RDBMS를 대상으로하는 테이블 데이터의 온라인 사본”옵션을 사용합니다.

16) 마지막 단계에서 마이그레이션 보고서를 확인하고 작업을 완료 할 수 있습니다.

MS SQL DB를 MySQL로 변환하는 또 다른 쉬운 방법은 특정 데이터베이스의 데이터베이스 파일을 직접 선택하고 변환 가능한 테이블의 미리보기를 제공하고 변환 후 데이터를 지정된 데이터베이스에 직접 저장하는 Stellar Converter for Database라는 Stellar의 DIY 도구를 사용하는 것입니다. 시스템에 설치되어 있습니다. 이 경우 MS SQL 데이터베이스 파일을 제공해야하며 변환 후에는 시스템에 설치된 MySQL 데이터베이스에 저장됩니다. 이 소프트웨어의 무료 버전은 Stellar 's Official Website 에서 얻을 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.