web-dev-qa-db-ja.com

SQL ServerをMySQLに移行する必要がある

Windowsサーバー上のSQL Server 2008にデータベースがあり、すべてのデータをUbuntuサーバー上のMySQLデータベースに移動したいと考えています。 SQL Serverのインポートとエクスポートを使用してみましたWizard MySQLと一緒にODBCドライバを使用すると、両方のデータベースに正しくアクセスできますが、タイプ変換が存在せず、仕様が制限されていて正しく作成できませんでした。タイプ変換ファイルの作成方法や、このデータを転送するためのより良いツールの入手先を知っている人はいますか?

22
murgatroid99

マリアンの提案に基づいて、MySQLサーバーをMS SQL Serverのリンクサーバーとして設定することにより、反対方向への複製について この答え を見つけました。 MySQLをリンクサーバーとして設定すると、両方のデータベースでSQLクエリを同時に実行できます。これにより、この問題を解決するために必要な機能が正確に提供されます。

4
murgatroid99

私には2つの提案があります。

1)商用製品を立ち上げるのは嫌いですが、MSSQLをMySQLに移行するための $ 49.00ツールがあります

2)MySQLのMSSQL移行フォーラムを試してみてください。

UPDATE 2011-06-03 18:03 EDT

MySQL Migration Toolkit と呼ばれる2010年1月にEOLされた古い製品があります。手に入れることができれば使えます。

UPDATE 2011-06-03 18:06 EDT

アーカイブを見つけました!!! これがMySQL Migration Toolkitです

UPDATE 2011-06-03 18:11 EDT

これが MySQL Migration Toolkitの概要です

UPDATE 2011-06-03 19:08 EDT

別の商用製品($ 29)

UPDATE 2011-06-03 19:30 EDT

これは、MSSQLをMySQLに移行するフリーウェアツールのリストです。

UPDATE 2011-06-15 17:47 EDT

Microsoft SQL ServerをMySQLに移行するためのガイドでOracleからWhitePaper(PDF)を入手(まだ商業の)

UPDATE 2012-08-21 01:24 EDT

MySQL WebPage によると、セクションMySQL Workbench: Database Migration Wizardは、MySQLワークベンチには、SQL ServerからMySQLにDBオブジェクトを移行する機能があると主張しています。

13
RolandoMySQLDBA

MySQL Workbenchはこれを行うことができます。

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

それはあなたのUbuntu MySQLサーバーにアクセスできる必要があるMS SQL Serverマシンに直接インストールすることができます(スピードアドバンテージ!)。

3
mit

このタスクにSSISを使用することを検討しましたか?これはSQL Server用のETLツールであり、このタスクの実行に役立つ可能性のある多くの変換とロジックが含まれています。

3
SQLChicken

私は最近このタスクを達成するために etlalchemy をリリースしました。 Pythonの4行を使用して、任意の2つのSQLデータベース間の移行を可能にするオープンソースのソリューションです。サポートされているRDBMSには、MySQL、PostgreSQL、Oracle、SQLite、SQL Serverが含まれます。

これにより、SQLベンダーの列タイプを別のSQLベンダータイプにマッピングするという困難な作業が処理されます。 スキーマを転送および変換するだけでなく、すべてのデータ、インデックス、および制約をデータベース間で移行します。

インストールするには:

$ pip install etlalchemy

El Capitanpip 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 で問題を開いてください。 1週間もかからずにパッチを適用してください!

2
The Aelfinn

SQL ServerからMySQLにインポートする Migration toolkit を試しました。しかし、見つかりました SQLyog 外部データをインポートします。インポートプロセスをスケジュールし、必要なマッピングを行って既存のテーブルにインポートすることもできます。 こちら からダウンロードします。

enter image description here

2
Jacob

MySQL Workbench Migrationツールは、このタスクを実行するのに役立ちます

1)移行プロセスを開始するには、MySQL Workbenchのメイン画面で、[データベース]> [移行ウィザード]に移動します。

2)前提条件を確認して、タスクを続行できるかどうかを確認する必要があります。すべて問題なければ、移行の開始を押します。

3)このステップでは、ソースデータベース(この場合はSQL Server)に関する情報を提供する必要があります。

ソースパラメータを設定します:

データベースシステム:Microsoft SQL Server

接続方法:ODBC(ネイティブ)

ドライバー:SQL Server

サーバー:localhost

ユーザー名:sa

4)これで、「接続のテスト」ボタンを使用して接続を確認できます。

5)次に、ターゲットパラメータを追加する必要があります。

接続方法:標準(TCP/IP)

ホスト名:Your_Host_name

ポート:3306

ユーザー名:移行

6)テスト接続を押して、追加した情報を確認します。

7)次のステップで、MySQL WorkbenchはSQL Serverに接続して、カタログとスキーマのリストを取得します。

8)次に、リストからYour_database_nameデータベースを選択します。

リバースエンジニアリングされたスキーマとオブジェクトのマッピング方法を選択できます。ここでは、Catalog.Schema.Table-> Catalog.Tableオプションを使用するので、MySQLでは、データベースと、SQL Serverデータベースにある現在のテーブルを選択します。

9)問題がなければ、移行するオブジェクトのリストが表示されます。

10)この場合、テーブルオブジェクト、ビューオブジェクト、ルーチンオブジェクトがあります。残りのオブジェクトについては、対応するMySQLの同等のコードを手動で確認する必要があるため、テーブルオブジェクトのみを選択します。

11)このステップでは、ソースからのオブジェクトがMySQL互換オブジェクトに変換されます。

12)すべてが順調に進んだら、移行したスキーマをターゲットに作成する方法を選択して続行できます。デフォルトの「ターゲットRDBMSにスキーマを作成する」オプションを使用します。

13)では、スキーマ作成プロセスを確認しましょう。

14)次のステップでは、各スクリプトの実行結果を確認し、MySQLサーバーに作成された新しいデータベースを確認できます。

15)この時点で、データベース構造はできていますが、まだデータはありません。次に、MySQLサーバーにデータをコピーする方法を選択します。 「テーブルデータのターゲットRDBMSへのオンラインコピー」オプションを使用します。

16)最後のステップでは、移行レポートを確認してタスクを完了できます。

MS SQL DBをMySQLに変換するもう1つの簡単な方法は、特定のデータベースのデータベースファイルを直接選択して変換可能なテーブルのプレビューを提供し、変換後に指定されたデータベースにデータを直接保存できる、Stellar Converter for Databaseという名前のStellarのDIYツールを使用することですシステムにインストールされています。この場合、MS SQLデータベースファイルを提供する必要があります。変換後、システムにインストールされているMySQLデータベースに保存されます。このソフトウェアの無料バ​​ージョンは、Stellarの 公式Webサイト から入手できます。

0
Priyanka