最近、ベンダーがプロセスをアップグレードすると発表しました。ベンダーから取得する自動化された毎日のデータダンプは、MySQLデータダンプ形式で提供されるようになります。残念ながら、私たちはマイクロソフトのみのショップであるため、これらのファイルを直接インポートすることはできません。
だから私の質問は:データベースを作成するためにデータダンプファイルを取得してSQL Server 2005インスタンスにインポートするにはどうすればよいですか?
注意事項:
mysqldump
コマンドを再度実行することを制御することはできません。サードパーティとは違うことをします。 SSISを使用してMySQLからSQLServerに直接プルし、SQLサーバー内でタスクをスケジュールします。 MySQLダンプをSQLServerにインポートすると、データベースエンジン間でDDLが大幅に異なるため、問題が発生します。
サードパーティに直接アクセスできない場合は、実行中のMySQLインスタンスをローカルで取得してから、mysqlダンプをインポートできます(バッチファイルでmysqlimportを使用)。
SQL Server2005のタスクスケジューラとSSIS + Jobsを使用すると、これを簡単に自動化できるはずです。
http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_xml
ダンプには通常、テーブルを作成する、テーブルにデータを入力する、またはその両方を行うためのSQLステートメントが含まれています。ただし、mysqldumpを使用して、CSV、その他の区切りテキスト、またはXML形式でファイルを生成することもできます。
次に、XML形式を使用し、必要に応じてXSLTを使用して変換します。
stackoverflow で彼らはこの解決策を指摘しました: mysqlからmssqlへ 。 mysqlインスタンスをロードする必要があります。
要件が明確に設定されている場合(ここでは、「手動による介入は不要」についてのコメントを参照しています)、組織にとって最善の解決策は、このロジックをプログラムするために誰かにお金を払うことです。データベース間での移行には介入が必要です。寝ている間に小さな庭のノームによって行われることはありません。誰かがそのロジックをプログラムする必要があります。
これらすべてを記述したので、Windowsサーバーでmysqlを実行することはまったく問題なく、コミュニティエディションを実行する場合は費用はかかりません。ちなみに、それが管理要件である場合は、Oracleから購入していつでもお金を燃やすことができます。
MySQLインスタンスを実行し、インポートと再エクスポートのスクリプトを(MSSQLに適した形式で)スクリプト化したくない場合は、MySQLダンプ形式をCSVまたは便利でシンプルなものに変換するパーサーを作成する必要があります。
MySQLインスタンスを実行し、データをスワップイン/スワップアウトする方が良いと思います。データがMySQLにあると、VBAを使用して DSNを介してこれを自動化する にすることもできます。
あなたはおそらくあなたの時間が何かの価値があるビジネスを運営しているので、 symmetricds のような商用ソリューションを検討してください