web-dev-qa-db-ja.com

mysqldumpファイルからSQLServerデータベースを毎日自動的に作成するにはどうすればよいですか?

最近、ベンダーがプロセスをアップグレードすると発表しました。ベンダーから取得する自動化された毎日のデータダンプは、MySQLデータダンプ形式で提供されるようになります。残念ながら、私たちはマイクロソフトのみのショップであるため、これらのファイルを直接インポートすることはできません。

だから私の質問は:データベースを作成するためにデータダンプファイルを取得してSQL Server 2005インスタンスにインポートするにはどうすればよいですか?

注意事項:

  • ソリューションは自動化する必要があり、no手動による介入が必要です。それは私たちが毎日スケジュールできるものでなければならず、それが機能した/失敗したという通知を受け取るだけです。
  • 無料のツール(誰が購入していないのですか?)/すでに購入済みのツール(たとえば、すでにSQL Serverの一部)が欲しいのですが、必要に応じて何かを購入しても問題ありません。
  • データや元のデータベースを制御することはできないため、「互換性のある」オプションを別の方法で設定してmysqldumpコマンドを再度実行することを制御することはできません。
  • MySQLのローカルインスタンスをロードしてダンプをインポートし、データをMSSQLにポンプするようなことは、本当にしたくありません。私が述べたように、私たちはMSのみのショップであり、このような自動化されたプロセスであっても、MySQLインスタンスをサポートするように設定されていません。
3
Sean

サードパーティとは違うことをします。 SSISを使用してMySQLからSQLServerに直接プルし、SQLサーバー内でタスクをスケジュールします。 MySQLダンプをSQLServerにインポートすると、データベースエンジン間でDDLが大幅に異なるため、問題が発生します。

サードパーティに直接アクセスできない場合は、実行中のMySQLインスタンスをローカルで取得してから、mysqlダンプをインポートできます(バッチファイルでmysqlimportを使用)。

SQL Server2005のタスクスケジューラとSSIS + Jobsを使用すると、これを簡単に自動化できるはずです。

1
Deleted

http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_xml

ダンプには通常、テーブルを作成する、テーブルにデータを入力する、またはその両方を行うためのSQLステートメントが含まれています。ただし、mysqldumpを使用して、CSV、その他の区切りテキスト、またはXML形式でファイルを生成することもできます。

次に、XML形式を使用し、必要に応じてXSLTを使用して変換します。

0
asdmin

stackoverflow で彼らはこの解決策を指摘しました: mysqlからmssqlへ 。 mysqlインスタンスをロードする必要があります。

要件が明確に設定されている場合(ここでは、「手動による介入は不要」についてのコメントを参照しています)、組織にとって最善の解決策は、このロジックをプログラムするために誰かにお金を払うことです。データベース間での移行には介入が必要です。寝ている間に小さな庭のノームによって行われることはありません。誰かがそのロジックをプログラムする必要があります。

これらすべてを記述したので、Windowsサーバーでmysqlを実行することはまったく問題なく、コミュニティエディションを実行する場合は費用はかかりません。ちなみに、それが管理要件である場合は、Oracleから購入していつでもお金を燃やすことができます。

0
natxo asenjo

MySQLインスタンスを実行し、インポートと再エクスポートのスクリプトを(MSSQLに適した形式で)スクリプト化したくない場合は、MySQLダンプ形式をCSVまたは便利でシンプルなものに変換するパーサーを作成する必要があります。

MySQLインスタンスを実行し、データをスワップイン/スワップアウトする方が良いと思います。データがMySQLにあると、VBAを使用して DSNを介してこれを自動化する にすることもできます。

あなたはおそらくあなたの時間が何かの価値があるビジネスを運営しているので、 symmetricds のような商用ソリューションを検討してください

0
New Alexandria