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


22

Windowsサーバー上のSQL Server 2008にデータベースがあり、Ubuntuサーバー上のMySQLデータベースにすべてのデータを移動したい。MySQL ODBCドライバーでSQL Serverのインポートおよびエクスポートウィザードを使用してみましたが、両方のデータベースに正しくアクセスしましたが、型変換の仕様を含むxmlファイルは存在せず、仕様を作成するには正しく制限されていました。型変換ファイルを作成する方法、またはこのデータを転送するためのより良いツールを入手する場所のいずれかを知っていますか?


1
この質問を見ましたか?MySqlからMSSQLにデータを複製することです。多分あなたはそこにいくつかのヒントを見つけるでしょう。
マリアン

@Marianリンクをありがとう。MySQLサーバーをSQL Serverのリンクサーバーとして使用することは、私の問題の解決策のようです。
murgatroid99

1
どれくらいのデータについて話しているのですか?5MB?3TB?
アーロンJアンダーソン

GBまたは10のGBだったと思いますが、この質問は1年半前のものなので、本当に覚えていません。
murgatroid99

回答:


13

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

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

2)さらに提案があれば、MySQLのMSSQL移行フォーラムを試してください。

更新2011-06-03 18:03 EDT

MySQL Migration Toolkitと呼ばれる、2010年1月にEOLに戻った古い製品があります。あなたがそれを手に入れることができるなら、あなたはそれを使うことができます。

更新2011-06-03 18:06 EDT

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

更新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からMySQLへの移行ガイド(まだ商用)でOracleからWhitePaper(PDF)を入手してください

更新2012-08-21 01:24 EDT

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


1
私はそれらを避けることができれば商業製品を使用しないことを好む。Migration Toolkitを使用しようとしましたが、MySQLの最新バージョンと互換性がないと思います。生成されたSQL挿入ステートメントには膨大な数の構文エラーがあり、ウィザードの実行後、生成されたテーブルには行がありませんでした。シェアウェアツールは、MySQLの古いバージョンでも動作するようになっているようです。お試しいただきありがとうございます。
murgatroid99

4

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


3

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


実際に使用して説明したインポート/エクスポートウィザードは、SSISパッケージを作成します。私が抱えていた問題は、SSISがXMLファイルを使用して、異なるデータベース管理システムのタイプ間の変換方法に関するデータを保存し、MySQLにはそれらのファイルが存在しなかったことでした。
murgatroid99


2

移行ツールキットを試して、SQLサーバーからMySQLにインポートしました。しかし、SQLyog Import外部データは良好であることがわかりました。インポートプロセスをスケジュールし、既存のテーブルにインポートするために必要なマッピングを行うこともできます。こちらからダウンロードしてください

ここに画像の説明を入力してください


SQLyogは優れたツールですが、「外部データのインポート」機能は非常に低速です。MySQL Workbenchよりも数桁遅い。インターフェースはワークベンチよりもはるかに直感的であるため、SQLyog開発者がこの問題を解決してくれることを望んでいます。ただし、数百行のみをインポートする場合を除き、インポートが完了するまで数時間または場合によっては数日待機する準備をしてください。
nextgentech

2

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

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

インストールする:

$ 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リポジトリで問題を開き、1週間以内にパッチを適用します!


0

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

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

2)前提条件を確認して、タスクを続行できるかどうかを確認する必要があります。すべてが正常に見える場合は、[移行の開始]をクリックします。

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

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

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

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

ドライバー:SQL Server

サーバー:localhost

ユーザー名:sa

4)これで、Test Connectionボタンを使用して接続を確認できます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.