ホームページ >php教程 >php手册 >MySQL を Microsoft SQL Server 2000 に移行する (2)

MySQL を Microsoft SQL Server 2000 に移行する (2)

WBOY
WBOYオリジナル
2016-06-21 09:09:211065ブラウズ

mysql|サーバー

データ移行用の MySQL ツール


MySQL はいくつかのクライアント ツールとユーティリティを提供しており、最も一般的に使用されるのは次のとおりです:
  • mysql - データベースに対してクエリを発行し、結果を表示できる対話型クライアント プログラム
  • mysqldump - このツール スキーマを抽出できますMySQL データベースからスキーマとデータを取得し、ファイルに配置します
  • mysqlimport - このツールは、ファイルからスキーマとデータを読み取り、MySQL データベースに配置できます
  • mysqladmin - このツールは、データベースの作成やデータベースの削除などの管理タスクを実行できます
  • myODBC - ODBC 対応アプリケーションを MySQL に接続するための ODBC レベル 0 (レベル 1 およびレベル 2 の機能を備えた) ドライバーを提供する 32 ビットのオープン データベース接続ソフトウェア

サーバー用 SQL 移行ツール


SQL Server には豊富なセットがありますMySQL からの移行を簡素化するためのツールとユーティリティ。 SQL Server 2000 データ変換サービス (DTS) は、さまざまなソースから 1 つ以上のターゲットにデータを抽出、変換、および結合するためのグラフィカル ツールとプログラム可能なオブジェクトのセットです。

データ変換サービスの機能


Microsoft SQL Server 2000 のデータ変換サービスは、さまざまなデータ ソースからデータを移行する方法を提供します。 DTS は、ウィザードで実行することも、DTS パッケージ デザイナーを使用して作成することもできます。 DTS ウィザードを使用すると、データの直接コピーを迅速に完了できます。パッケージ デザイナーを使用すると、開発者はさまざまなプログラミング言語でカスタム変換スクリプトを作成できます。 DTS ツールを使用すると、次のことが可能になります。
  • MySQL から SQL Server 2000 へのデータの移行
  • 移行前のデータの表示
  • データ テーブル、テキストや日付などのデータ型の移行
  • MySQL データ テーブルを使用した MySQL データベースの移行
  • 移行レポートの生成と表示
  • 自動定義データ テーブルと既定のデータ型マッピング ルール
  • SQL Server の予約語の競合などの競合を解決する
  • SQL Server スキーマ モデル内のオブジェクトを削除および名前変更する
  • 単一のデータ テーブル データを移行する

データ変換サービスの用語


以下の用語が使用されますDTS の説明:
DTS パッケージ は、DTS デザイナーでグラフィカルまたはプログラムで組み立てることができる、接続、DTS タスク、DTS 変換、およびワークフロー制約の組織化されたコレクションです。
DTS タスク は、パッケージ内の 1 つのステップで実行される関数の個別のコレクションです。各タスクは、データ移動およびデータ変換中に実行される作業項目、または実行されるジョブを定義します。
DTS 変換 は、データが宛先に到達する前にデータに適用される 1 つ以上の関数または操作です。
DTS パッケージ ワークフロー を使用すると、データ変換サービス (DTS) を段階的に実行し、DTS パッケージ内の作業項目を優先順位の制約に従って順序付けできます。 DTS パケット ワークフローは、DTS デザイナーでグラフィカルに、またはプログラム的に設計できます。
メタデータ パッケージのメタデータとデータ系統情報をメタデータ サービスに保存し、それらの情報の種類をリンクするための DTS の機能を提供します。パッケージ内で参照されるデータベースのカテゴリ メタデータだけでなく、データ マートまたはデータ ウェアハウス内の特定のデータ行に関連する統計履歴情報も保存できます。

直接移行


MySQL から Microsoft SQL Server にデータを移行する最も簡単なオプションは、myODBC サポートをインストールし、DTS パッケージを作成し、それらを使用して MySQL から Microsoft SQL Server にデータベースをインポートして作成することです。
ここでは、MySQL データベースを移行するために Microsoft SQL Server をセットアップするための詳細な手順を説明します。
  1. MyODBC サポートをインストールします。http://www.mysql.com/ からダウンロードできます。
  2. インストール プロセス中に、システムは次のダイアログ ボックスを表示します:

    ブラウザがインライン ボックスをサポートしていない場合は、ここをクリックすると別ページでご覧いただけます。
    次の情報を使用して、ODBC インストール設定を入力します:
    Windows DSN 名:

    test

    説明:

    これはテスト データベースです

    MySQL データベース:

    test

    サーバー:

    seawolf.microsoft。 com

    ユーザー:

    cgunn

    パスワード:

    my_password

    ポート:

    3306

    上記の設定では、Windows DSN 名は接続を行っているコンピューター上で一意である必要があり、サーバー設定ではドメインが完全に検証されます。名前 (DNS または指定した名前に名前解決があることを確認してください) または IP アドレスが有効であることを確認してください。
  3. 次に、DTS ウィザードを実行します。 Microsoft SQL Serverプログラムグループから「データのインポートとエクスポート」を選択すると、次のダイアログボックスが表示されます。

    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    [次へ]をクリックして次のステップに進みます。 ここで、必要なデータ ソース選択情報を入力します。この情報は、ODBC データ ソースが MySQL、テストがシステム DSN である必要があります。その後、セキュリティ証明書、ユーザー名、パスワード (次のダイアログ ボックスを参照) を入力して、
  4. 次へ をクリックします。
    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    下のダイアログボックスに示されているようにターゲット接続の詳細を入力し、
  5. 次へをクリックします。
    お使いのブラウザがインライン ボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
  6. テーブル コピーまたはクエリの指定 ダイアログ ボックスでは、データ ソースのデータベース オブジェクト オプションを選択できます。ここでのデータ ソースは MySQL です。 [ソース データベースのテーブルとビューをコピー] を選択します。もう 1 つ注意すべき重要な点は、MySQL はビューをサポートしていないため、このオプションを選択するとデータ テーブル オブジェクトのみがコピーされ、次へ をクリックして続行します。

    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
  7. 次は、ソース テーブルとビューの選択 ダイアログ ボックスで、ソース データ テーブルとターゲット データ テーブルを選択できます。

    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
  8. 以下の列マッピングと変換ダイアログボックスに示すように、楕円ボタンをクリックしてデータ変換を実行します。

    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    このダイアログ ボックスでは、ソース データ タイプがターゲット データ タイプと一致し、空のデータ フィールドが選択されています。完了したら、OKをクリックします。
    その後、[パッケージの保存、スケジュール、複製] ダイアログ ボックスが表示され、使用量のピーク期間を避けるために移行をスケジュールしたり、DTS パッケージをさまざまな形式でさまざまな場所に保存したりすることができます。 お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    [DTS パッケージの保存] ダイアログ ボックスには、DTS パッケージ用の 2 種類のパスワードが提供されます。最初のパスワードは所有者パスワードであり、パッケージ内のすべてのユーザー/パスワード情報を保護できます。ユーザー パスワードはパッケージを実行し、以下に示すように DTS パッケージの不正な実行を防ぐために使用されます。[
    次へ]
  9. [続行] をクリックします。 お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    最後に、[DTS インポート/エクスポート ウィザードの完了] ダイアログ ボックスに、DTS ウィザードで選択したオプションの概要が表示されます。
  10. お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。 [完了]をクリックしてデータ移行プロセスを開始します。

    パッケージの実行
    ダイアログ ボックスには、各タスクの実行時のステータスが表示されます。緑色のチェック マークは、タスクが正常に完了したことを示します。タスクを完了できず、エラーによりプロセスが終了した場合は、このエラーを示すエラー ダイアログ ボックスが表示されます。 お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
  11. これで、MySQL から SQL Server 2000 にデータを正常に移行できるようになりました。
    データロードの使用
  12. MySQL Server に付属のクライアント プログラム mysqldump を使用して、MySQL データベースのスキーマとデータをさまざまな形式で .sql/.txt ファイルに出力できます。 DTS は、mysqldump 出力ファイルを使用して、大規模なデータ テーブルに対するオフライン データ ロード機能を提供できます。次のトピックでは、データ読み込みプロセスについて説明します:

mysqldump データ抽出スクリプトの生成

スクリプトトランスポートの設定

抽出されたスクリプトの使用
  • mysqldump データ抽出スクリプトの生成
  • MySQL には、データベースとデータベース コレクションをダンプできるユーティリティがありますバックアップ用、または SQL Server にデータを転送します。
  • mysqldump ユーティリティは、データベース SQL スクリプトを作成する機能を提供します。
mysqldump の最も短い構文は次のとおりです:

Shell>mysqldump [OPTIONS] database [tables]

mysqldump の使用可能なオプションに関する情報は、このホワイト ペーパーの最後にあります。この情報については、MySql リファレンス マニュアルを確認することもできます。
mysqldump を使用すると、データベースの SQL スクリプトが取得されます。
スクリプト転送を設定する

mysqldump でスクリプトを生成した後、スクリプトを SQL Server に転送できます。ファイル転送プロトコル (FTP) などのアプリケーションを使用して、スクリプトを MySQL ホストから SQL Server 2000 コンピュータに転送します。
抽出されたスクリプトを SQL クエリ アナライザー経由で使用する

生成されたスクリプトを使用してデータベース オブジェクトを作成し、データを挿入できるようになりました。 MySQL スクリプトからデータベース スキーマを構築するより良い方法は、SQL Server 2000 の SQL クエリ アナライザを使用することです。

SQL クエリ アナライザーは、
スタート

メニューから直接実行することも、SQL Server Enterprise Manager から実行することもできます。 SQL クエリ アナライザーは、

isqlw
ユーティリティを実行することでコマンド ラインから実行することもできます。
スクリプトを正しく実行するには追加の作業が必要で、SQL 言語にいくつかの変更が必要です。繰り返しますが、SQL スクリプトをステップ実行して、データ型を SQL Server と互換性のある型に変更することを忘れないでください。以下の画像は、mysqldump からインポートされたスクリプトを示しています。重要な点は、ダンプが ASCII スクリプト ファイルであることです。 お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。 Microsoft SQL Server 2000 SQL Query Analyzer を使用すると、次のことが可能になります。
  • クエリやその他の SQL スクリプトを作成し、SQL Server データベースに対して実行する
  • 事前定義されたスクリプトを使用して共通のデータベース オブジェクトを迅速に作成する
  • 既存のデータベース オブジェクトを迅速にコピーする
  • パラメータを知る必要がないストアド プロシージャを実行する
  • ストアド プロシージャをデバッグする
  • クエリのパフォーマンスの問題をデバッグする
  • データベース内のオブジェクトを検索する、またはオブジェクトを表示して操作する
  • データ テーブル内の行をすばやく挿入、更新、または削除する
  • よく使用されるクエリのキーボード ショートカットを作成する
  • 頻繁に使用するコマンドを追加するツールメニュー

拡張アプリケーション


MySQL アプリケーションのデータ管理部分を Microsoft SQL Server に移動した後、SQL Server でデータを保護し、Transact-SQL で記述されたすべての参照整合性とビジネス ルールを維持できるようになります。 。
ADO、OLE DB、ODBC などのデータベース アプリケーション プログラミング インターフェイス (API) は、さまざまなプログラミング言語を通じてデータベース データを表示します。これらの API には、Microsoft Visual C++、Microsoft Visual Basic、Microsoft Visual J++ などの開発システムを使用してアクセスできます。さらに、アプリケーションが拡張し続ける場合は、アプリケーションを変更せずに Microsoft SQL Server をより大きなコンピューターに移動できます。SQL Server はハードウェア構成を自動的に認識し、それに応じて最適なメモリ、I/O、およびプロセッサーの使用率を得るように調整します。 。
インターネットからのデータへのアクセス

SQL Server は、アプリケーションを Web ベースのインターフェイスに拡張する機能を提供します。この機能により、いつでもどこでもアプリケーションにアクセスできるようになります。 SQL Server は、IIS Web サーバーと Active Server Pages (ASP) の ActiveX データ オブジェクト (ADO) を使用して Microsoft インターネット インフォメーション サービス (IIS) と統合でき、SQL Server に格納されているデータに効率的にアクセスする方法を提供します。インターフェース。
詳細については、
http://www.msdn.microsoft.com を参照してください。 セキュリティ

SQL Server 2000 のデータベース セキュリティは安定しており、保守も簡単です。 SQL Server であっても MySQL であっても、両方のレベルでセキュリティを考慮することが重要です。 1) サーバーにアクセスする能力、2) 単一のデータベースにアクセスする能力。
MySQL には、サーバー アクセスのセキュリティを強化する独自の方法、つまりデータ ソースへのアクセスを制限する方法があります。クライアントの場合は、IP アドレスまたは完全修飾ドメイン名、ワイルドカード (「%」など) を使用します。 SQL Server では、オペレーティング システムによって管理されているか、SQL Server のマスター データベースに保存されているかにかかわらず、ユーザー アカウントが必要です。
SQL Server は、ロールを使用したグループ アクセスを提供します。これにより、ユーザー グループにユニバーサル アクセスが確立され、データベース管理が容易になります。
次の手順は、Microsoft SQL Server が Enterprise Manager ツールを通じてサーバーおよびデータベースへのアクセスを提供する方法の概要を示しています。
    Enterprise Manager を開き、「セキュリティ フォルダー」を見つけ、
  1. ログイン アイコンを選択し、右クリックして 新しいログイン を選択します。
    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    SQL Server ログイン プロパティ
    ダイアログ ボックスが表示されたら、MySQL のユーザー名に似たログイン名を入力します。この SQL Server に有効なセキュリティ レベルを提供するには、[SQL Server 認証] を選択します。 デフォルトのデータベースと言語を指定します。
  2. ダイアログ ボックスの上部にある
    サーバー ロール
  3. タブを選択して、サーバー権限へのアクセス情報を提供します。ここで強調表示されているロールは sysadmins (システム管理者) で、これは MySQL の root アクセスに相当します。 次のタブは、
    データベースアクセス
  4. です。このプロパティ ページでは、単一のデータベースだけでなく、実際に SQL Server 上にあるインデックス データベースにもアクセスできます。データベースを選択したら、データベースの役割を設定します。デフォルトでは、パブリック ロールにはすべてのユーザーがアクセスできます。この役割には、割り当てられた権限が引き続き必要です。この図では、別のロール db_owner も選択されています。これにより、ユーザーはデータベースへの無制限のアクセスのみが許可されますが、他のデータベースが個別に選択されて db_owner 権限が割り当てられない限り、SQL Server 全体や他のデータベースへの無制限のアクセスは許可されません。 [OK] をクリックすると、パスワードの入力を求めるプロンプトが表示されます。
  5. Enterprise Manager に新しいログインが表示されます。この画像には、「
    sa
  6. 」という名前のログイン アカウントがあることもわかります。この sysadmin アカウントにはパスワードが必要です。このログインのパスワードを空白のままにするオプションもあります。このパスワード。
お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
Microsoft SQL Server ログインの作成の詳細については、SQL Server Books Online のトピック「セキュリティの管理」を参照してください。 データベース アクセス許可
SQL Sever 2000 は、データベース定義言語 (DDL) およびデータ操作言語 (DML) ステートメントのアクセス許可を制限することにより、データベース セキュリティ保護機能も提供します。セットアップ手順はログインの作成と似ています。 SQL Server データベースの権限は、Enterprise Manager ツールを使用して簡単に設定できます。
データ操作言語のアクセス許可


Enterprise Manager を開き、データベース フォルダーを見つけて、アクセス許可を設定するデータベースを選択します。

ユーザー

アイコンを選択し、データベース ユーザーを選択して右クリックし、
    プロパティ
  1. を選択します。
    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
  2. 許可ボタンをクリックします。
    権限ウィンドウでは、テーブル、ビュー、ストアド プロシージャなどのすべてのデータベース オブジェクトに DML 宣言を設定する機能が提供されます。権限を選択したら、
  3. OKをクリックします。
    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
データ定義言語のアクセス許可

    DDL ステートメントによるデータベースへのアクセスを提供するには、データベースのプロパティを選択する必要があります。データベースアイコンを選択して右クリックします。
  1. プロパティを選択します。
    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    次に、データベースのプロパティウィンドウで
  2. 権限タブを選択します。
    お使いのブラウザがインラインボックスをサポートしていない場合は、ここをクリックして別のページで表示してください。
    対応する権限を選択した後、
  3. OKをクリックします。
トラブルシューティング

この章では、次の分野のトラブルシューティングの解決策と関連情報を提供します:
    ユーザー アカウントの定義
  • MySQL データのダンプ
  • コマンド ライン オプションの最適化
ユーザー アカウントの定義

システムに MySQL サーバーをインストールするとき、 root ユーザーはデフォルトで設定されており、これは完全な DBA 権限を持つユーザー アカウントです。 root ユーザーとして ODBC 経由で MySQL サーバーにログインする必要があります。 (注: デフォルトでは、root ユーザーはローカルホストへのアクセス権でのみログインできます。DTS ウィザードを実行しているコンピューターの IP または DNS アドレスからのログインを root ユーザーに許可することを忘れないでください。)
MySQL データをダンプする

以下の表はダンプを示しています。mysqldump テキスト ファイルを使用して MySQL データを保存し、データベースを再生成するときに使用される構文の説明です。 コマンド
説明
mysqldump

このツールは、MySQL データベースからスキーマとデータをファイルに抽出できます。

mysql

コマンドを使用できるように MySQL をロードします。

-u ユーザー名

MySQL root ユーザー名。このユーザーには完全な DBA 権限が必要です。

-ppassword

MySQL データベース サーバーの root パスワード。

--opt

データ テーブルのダンプ速度を最適化し、最速のリロード速度を保証するダンプ ファイルを書き込みます。このオプションは、-add-drop-table、--add-locks、--all、--extended-insert、--quick、および -lock-tables オプションを有効にします。 -opt で有効になるオプションのリストについては、「MySQL 最適化オプション」セクションを参照してください。

databasename

内容をテキスト出力ファイルにダンプするデータベースの名前。

<

UNIX および Windows NT/2000 で入力をリダイレクトするために使用されるシンボル。

filename.sql

にはMySQLのファイル名が含まれます。


MySQL データをダンプするには、次のコマンドを使用してください:
#> mysqldump -u user name -ppassword -opt databasename < filename.sql
mysqldump 出力テキスト ファイルを使用してデータベースを再作成する場合は、次のコマンドを使用します:
#> mysql -u ユーザー名 -ppassword データベース名 < ファイル名.sql
コマンド ライン オプションを最適化します

mysqldump コマンド ラインのオプションを自動的に有効にするには、-opt を使用します。 MySQL データのダンプの詳細については、「MySQL データのダンプ」セクションを参照してください。次の表は --opt コマンドです: コマンド
説明
--add-drop-table

各 CREATE TABLE ステートメントの前に DROP TABLE If EXISTS ステートメントを追加します。

--all

すべての MySQL 固有の作成オプションが含まれます。

--extended-insert

複数の行挿入ステートメントを作成します

--quick

クエリをキャッシュせず、標準出力に直接ダンプします。このオプションの使用中に mysqldump を一時停止すると、サーバーが待機することになり、他のクライアントに干渉する可能性があります。

--lock-tables

すべてのテーブルを読み取り専用としてロックする


MySQL エラー メッセージ

このセクションでは、MySQL データベースを SQL Server 2000 に移行するときに発生する可能性のあるエラー メッセージについて説明します。
エラー メッセージ

DTS を使用してデータを移行するときに、次のエラー メッセージが表示される場合があります: エラー メッセージ
解決策
MSQL Server に接続できません。
接続しようとしているシステム/ポート上で MySQL サーバーが実行されていますか?

このエラーは次のことが原因で発生する可能性があります:
· 送信元ポートはデフォルトで 3306 に設定されています。このポート番号は、MySQL 通信に使用されるポートを指します。このポートが MySQL で別の方法で定義されている場合は、MySQL ODBC 設定でこのポート設定を変更します。
· ユーザーが MySQL サーバーにアクセスするための適切な DBA 権限を持っていることを確認してください。
· ユーザー名が有効であることを確認してください。

データベースには「tablename」という名前のオブジェクトが既に存在します

このデータ テーブルは DTS パッケージの実行中に作成されます。パッケージの実行中にデータ テーブルが削除または再作成されていることを確認してください。


結論

このホワイト ペーパーでは、データベース スキーマとデータを MySQL から Microsoft SQL Server 2000 に正常に移行するために必要な基本情報と背景を説明します。アプリケーションに関しては、SQL Server 2000 は信頼性、拡張性が高く、より多くの機能を備えています。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。