4

以前の仕事で、データ移行を行う必要があったことを覚えています。その場合、新しいシステムに移行する必要があり、開発する必要があったため、テーブル スキーマが異なります。私は最初に知っておくべきだと思います:

  • 一般に、データは (同じスキーマで) 別の DB エンジンにどのように移行されますか。例えば。MySQL -> MSSQL. 私の場合、宛先DBはMySQLで、MySQL Migration Toolkitを使用しました

  • エンタープライズアプリでは、インポートする必要があるストアドプロシージャ、トリガーが存在する可能性があると考えています。

  • テーブルスキーマが異なる場合、どうすればこれを行うことができますか? 私の前の仕事では、データを (私の場合は Access から) インポート先 (MySQL) にインポートし、テーブル構造を残しました。次に、SQL を使用してデータを選択し、必要に応じて操作して最終的な宛先テーブルを作成します。

  • 私の場合、古いデータベースのドキュメントがなく、列の名前が正しくありませんでした。「field1」、「field2」などを使用します。列の意味をアプリケーションコードからトレースする必要がありました。より良い方法はありますか?または、列に区切られたデータに複数の値が含まれている場合、コードを読み取ることが唯一の方法ですか?

4

4 に答える 4

4

私は本当に依存しますが、あなたの質問から、他の人が何をしているのか聞きたいと思うと思います. これが私の現在のプロジェクトで私がしていることです。

Oracle から Oracle に移行する必要がありますが、完全に異なるスキーマに移行する必要があります。古いシステムは 2 層 (古いクライアント、古いデータベース) でしたが、新しいシステムは 3 層 (新しいクライアント、ビジネス ロジック、新しいデータベース) です。新しいスキーマには 600 を超えるテーブルがあります。

よく考えた後、SQL で古いデータベースから新しいデータベースに移行するというアイデアをかき集めました。私たちの場合、私ははるかに簡単に行くことができると判断しました:

old database -> old client -> business logic -> new database

古いデータベースでは、多くのデータが奇妙な方法で保存されており、古いクライアントはそれを複雑な方法で破壊しています。古いクライアントのソース コードにアクセスできますが、これは非常に大規模なシステムです。

古いクライアントとビジネス ロジックの上にある移行ツールを作成しました。前にいくつかの SQL とその後にいくつかの SQL がありますが、大量のデータは古いクライアントとビジネス ロジックを介して移行されます。

欠点は、時間がかかることです。私たちの場合、完全な移行には 190 時間以上かかりますが、それ以外はうまく機能します。

アップデート

ストアド プロシージャとトリガーに関する限り: 古いシステムと新しいシステム (どちらも Oracle) で同じ DBMS を使用している場合でも、プロシージャとトリガーは新しいシステム用にゼロから作成されます。

于 2009-09-27T04:03:53.800 に答える
3

データベースの移行を実行したとき、データベースを移行するための一般的なツールではなくアプリケーションを使用しました。アプリケーションは 2 つのデータベースに接続し、オブジェクトを一方から他方にコピーします。最初にアプリケーションをセットアップするときと同じように、すべてがアプリケーションで処理されるため、スキーマやアクセス許可などについて心配する必要はありません。

もちろん、アプリケーションがこれをサポートしていない場合、これは役に立たないかもしれません。ただし、アプリケーションを作成する場合は、この方法を強くお勧めします。

于 2009-09-27T04:00:47.480 に答える
1

主な商用ツール (および一部の非商用ツール) の概要とリンクについては、ウィキペディアの記事をお勧めします。ストアド プロシージャ (およびユーザー定義関数など) が豊富にある場合、移行の「ホット スポット」になり、まれにコストのかかる人間のスキルが必要になります。主流の SQL や手続き型のコードでは、自動化されたツールがまともな仕事をすることを期待することはできません (チューリングの定理は、十分に一般的なケースでは、実際にはできないと言っています;-)。したがって、両方のエンジン (移行元のエンジンと移行先のエンジン) の手続き上のトラップをよく理解しているエンジニアが必要です。あなたはそれを買うことができます-それはコンサルタントが本当に良いお金を稼ぐニッチの1つです!-)

于 2009-09-27T03:53:55.460 に答える
0

MS SQL Server を使用している場合は、SSMS を使用してスキーマすべてのデータを一度にスクリプト化できます: SQL Server 2008: Script Data as Inserts

非標準の SQL コンストラクトをまったく使用していない場合は、あまり労力をかけずにこのスクリプトを手動で編集できる可能性があります。

于 2009-09-27T03:46:55.417 に答える