完全ガイド:データをWindows Azure SQLデータベースに移行するためのツールと方法

画像

このドキュメントでは、データ定義(スキーマ)とデータをWindows Azure SQLデータベースに移行するためのガイドラインを提供します。 これらの推奨事項は、主にSQL ServerからSQLデータベースへの1回限りの転送を目的としています。 データ共有とSQLデータベースのバックアップの詳細については、 SQLデータ同期の概要を参照してください。

移行時に考慮する要素


Microsoft Windows Azureには、いくつかのストレージオプションがあります。 プロジェクトで使用する1つ以上のオプションを選択できます。

Windows Azure SQLデータベースは、Windows Azureプラットフォームでサービスとして提供されるSQL Serverテクノロジーです。 SQLクラウドデータベースには、高速プロビジョニング、効率的なスケーラビリティ、高可用性、管理コストの削減など、多くの利点があります。 SQLデータベースは、ローカルのSQL Serverアプリケーションに使用されるものと同じ開発ツールと手法をサポートしています。 したがって、ほとんどの開発者はクラウドソリューションを簡単に作成できます。

SQL ServerとSQL Databaseを使用する長期的な目標は、コンポーネントと機能の対称性と同等性を実現することです。 ただし、現時点では、データベースをSQLデータベースに移行し、SQLデータベースのソリューションを開発する場合、アーキテクチャの機能と実装方法を考慮する必要があります。

最初に、SQLデータベースとSQL Serverの違いを調べ、移行スケジュールを確立する必要があります。

移行スケジュール


Windows Azureプラットフォームは、データを保存する3つの主要な方法をサポートしています。 Windows Azureストレージには、テーブル、BLOB、およびキューが含まれています。 Windows Azureソリューションを開発するときは、データを保存する最適な方法を選択して、最大のパフォーマンスを確保する必要があります。
保管方法
予定
最大サイズ
Windows Azure SQLデータベース
リレーショナルデータベース管理システム
150 GB
Windows Azureストレージ

ビデオやオーディオなどのブロブ用の信頼できるストレージ
200 GBまたは1 TB
テーブル
構造化データ用の信頼できるストレージ
100 TB
キュー
プロセス間で送信されるメッセージ用の信頼できるストレージ
100 TB
ローカルストレージ
各インスタンスの一時ストレージ
250 GBから2 TB

ローカルストレージは、ローカルで実行されているアプリケーションのインスタンスを一時的に保存するように設計されています。 ローカルストレージへのアクセスには、ローカルインスタンスのみがあります。 インスタンスが他の機器で再起動された場合、たとえば、機器の誤動作やメンテナンスに関連する停止中に、ローカルストレージのデータはインスタンスに転送されません。 データの整合性を維持し、インスタンス間でデータを交換し、Windows Azureの外部のデータにアクセスするには、Windows AzureストレージアカウントまたはWindows Azure SQLデータベースを使用することをお勧めします。

SQLデータベースを使用すると、サーバー側で実行されるクエリ、トランザクション、ストアドプロシージャを使用してデータを処理し、結果のみをアプリケーションに返すことができます。 アプリケーションで大量のデータセットを処理する必要がある場合は、SQLデータベースを使用することをお勧めします。 大規模なデータセットを保存および取得するが、処理を必要としないアプリケーションの場合、Windows Azureテーブルストレージを選択するのが最適です。

SQLデータベースは現在150 GBに制限されています。 SQLデータベースは、Windows Azureストレージよりもはるかに高価です。 したがって、ブロブをWindows Azureストレージに移動することをお勧めします。 これにより、データベースのサイズに課せられる制限が回避され、運用コストが削減されます。

詳細については、Windows Azureプラットフォームでのデータストレージ製品を参照してください。

Windows Azure SQLデータベースとSQL Serverの比較


SQL ServerとSQLデータベースのインターフェイスは同じで、Tabular Data Stream(TDS)を処理してTransact-SQLベースのデータベースにアクセスできます。 これにより、アプリケーションはSQL Serverと同じ方法でSQLデータベースを使用できます。

SQL Serverとは異なり、SQLデータベースは論理管理を物理管理から分離します。 ユーザーは引き続きデータベース、アカウント、ユーザー、およびロールを管理できます。 ただし、ハードドライブ、サーバー、ストレージなどの物理機器の管理と構成は、マイクロソフトによって提供されます。 SQLデータベースの物理的な管理は、マイクロソフトの専門家によって行われます。 したがって、SQLデータベースとSQL Serverには、管理、準備、Transact-SQLのサポート、使用されるプログラミングモデル、機能に違いがあります。

以下は主な違いの概要です。

データベースサイズ


現在、SQLデータベースの2つのバージョンが可能です。


既存のデータベースのサイズを決定し、SQLデータベースに採用された制限への準拠を確認する必要があります。 データベースのサイズがSQLデータベースの最大許容サイズを超える場合は、データベースを小さなセグメントに分割するか、ほとんどのデータをWindows Azure BLOBストレージに移動する必要があります。 データベースセグメンテーションの詳細については、「 フェデレーション:Windows Azure SQLデータベースを使用したスケーラブルで柔軟なマルチテナントデータベースソリューションの構築(フェデレーション:Windows Azure SQLデータベースを使用したスケーラブルで柔軟なマルチテナントデータベースソリューションの作成)」を参照してください

認証


SQLデータベースは、SQL認証のみをサポートします。 アプリケーションが使用する認証スキームの変更が必要かどうかを判断する必要があります。 セキュリティ制限の詳細については、 セキュリティガイドラインと制限を参照してください。

SQL Serverデータベースのバージョン


SQLデータベースは、SQL Server 2008(レベル100)に基づいています。 SQL Server 2000またはSQL Server 2005データベースをSQLデータベースに転送するには、それらがSQL Server 2008と互換性があることを確認する必要があります。最良のオプションは、SQL Server 2008からSQLデータベースに移行することです。 SQLデータベースへの移行を開始する前に、SQL Server 2008へのローカルアップグレードを実行できます。SQLServerの以前のバージョンから移行する場合は、SQL Server 2008 R2(SQL Server 2008 R2へのアップグレード)およびMicrosoft SQL Server 2008 Upgrade Advisorを検討することをお勧めします(Microsoft SQL Server 2008 Upgrade Advisor)

スキーム


SQLデータベースはヒープテーブルをサポートしていません。 すべてのテーブルにはクラスター化インデックスが必要です。 この場合にのみ、それらにデータを追加できます。 クラスター化インデックスの要件の詳細については、「 Windows Azure SQLデータベースの内部 」を参照してください。

Transact-SQLサポート


Windows Azure SQLデータベースは、Transact-SQL言語のサブセットをサポートしています。 データベースをSQLデータベースに展開する前に、サポートされているTransact-SQLステートメントのみが実行されるようにスクリプトを変更する必要があります。 詳細については、 サポートされているTransact-SQLステートメント部分的にサポートされているTransact-SQLステートメント、およびサポートされていないTransact-SQLステートメントを参照してください

ステートメントを使用


SQLデータベースでは、USEステートメントはデータベースを切り替えません。 データベースを変更するには、データベースに直接接続する必要があります。

費用


SQLデータベースをサブスクライブするコストは、データベースの数とそのリリースによって異なります。 データセンター(DPC)との間で転送されるデータの量には追加料金が適用されます。 ローカルサーバーでアプリケーションコードを実行してデータセンターのSQLデータベースに接続するか、SQLデータベースと同じデータセンターにあるWindows Azure環境でアプリケーションコードを実行するかを選択できます。 Windows Azureでアプリケーションコードを実行すると、データ転送の支払いに関連する追加コストを回避できます。 いずれにせよ、インターネット経由でデータを送信する際の遅延に注意する必要がありますが、これらのモデルでは遅延を排除できません。 詳細については、 価格の概要を参照してください。

機能の制限


現在、SQLデータベースは、SQL Agent、フルテキスト検索、Service Broker、バックアップと復元、CLR、SQL Server Integration Servicesなどの特定のSQL Server機能をサポートしていません。 より詳細なリストについては、 SQL Server機能の制限に関する記事を参照してください。

接続処理


SQLデータベースなどのクラウドデータベースを使用する場合、インターネットまたはその他の複雑なネットワークに接続する必要があります。 したがって、予期しない切断を処理する準備をする必要があります。

SQL Databaseは、共有リソースでホストされる大規模なマルチテナントDBMSサービスです。 すべてのSQLデータベースクライアントの利便性を確保するために、いくつかの条件が発生した場合、サービスへの接続が閉じられる場合があります。

以下は、接続切断の考えられる原因のリストです。

ネットワーク遅延


遅延により、データをSQLデータベースに転送する時間が長くなります。 遅延の影響を減らす最良の方法は、複数の並列ストリームを使用してデータを送信することです。 ただし、同時実行効率はネットワーク帯域幅によって制限されます。

SQL Databaseを使用すると、さまざまなデータセンターにデータベースを作成できます。 ユーザーの場所とネットワーク接続の可能性に応じて、ユーザーの場所と各データセンターの間のネットワーク内の遅延インジケーターは異なります。 遅延を減らすには、顧客の近くにあるデータセンターを選択する必要があります。 ネットワーク遅延の測定の詳細については、「 Windows Azure SQLデータベースに対するクライアント遅延のテスト 」を参照してください。

Windows Azure環境にアプリケーションコードを配置すると、SQLデータベースへのアプリケーションリクエストに関連するネットワーク遅延が減少するため、アプリケーションのパフォーマンスが向上します。
ラウンドトリップを短縮すると、ネットワークの問題が軽減されます。

データベースのフェイルオーバー


SQLデータベースは、複数のデータバックアップを複数の物理サーバーに複製し、情報の可用性とビジネスの継続性を確保します。 ハードウェア障害またはアップグレードのために切断された場合、SQLデータベースは自動的に別のリソースに切り替えて、最大限のアプリケーション可用性をサポートします。 現在、一部のフェールオーバーアクションにより、セッションが突然終了します。

負荷分散


SQLデータベースロードバランサーは、データセンターの物理サーバーとサービスの最適な利用を提供します。 CPU使用率、I / Oレイテンシ、またはコンピューターの作業ロールの数がしきい値を超えると、SQLデータベースが操作を中断してセッションを切断する場合があります。

調整をリクエストする


特定の条件下で、すべてのサブスクライバーが共有リソースの適切な共有を受け取り、一部のサブスクライバーが他のサブスクライバーを犠牲にしてリソースを独占する可能性を排除するために、SQLデータベースはサブスクライバー接続を閉じたり拒否したりする場合があります。 SQLデータベースエンジンの負荷調整サービスは、パフォーマンスのしきい値を常に監視します。 これにより、システムの状態を評価し、ユーザーのリクエストの数を調整できます。ユーザーのリクエストのアクションは、システムのパフォーマンスに影響します。 サービスは、次のパフォーマンスしきい値を監視します。


詳細については、 Windows Azure SQLデータベース接続管理およびWindows Azure SQLデータベースパフォーマンスと弾力性ガイドを参照してください

切断を処理する最良の方法は、接続を再確立し、失敗したコマンドまたはリクエストを実行することです。 詳細については、 一時的な障害処理フレームワークを参照してください。

データインポートのためのデータベース最適化


移行のパフォーマンスを向上させるために、データベースで次のことを実行できます。


大量の情報をSQLデータベースに移動する


SQL Server Integration Services(SSIS)とBCPユーティリティは、大量のデータの移行に適しています。

SQLデータベースにロードする場合、データを複数の並列スレッドに分割することをお勧めします。 これにより、ダウンロードのパフォーマンスが向上します。

デフォルトでは、データファイルのすべての行が1つのパッケージとしてインポートされます。 複数のパッケージに文字列を配布するには、既知の場合、パッケージのサイズを指定することをお勧めします。 パッケージトランザクションが失敗すると、現在のパッケージのみがロールバックされます。 失敗は、確認済みのトランザクションを使用して以前にインポートされたパッケージのステータスには影響しません。 最適なパケットサイズを決定するには、特定のシナリオおよび環境に合わせてさまざまなパケットサイズ設定を使用して予備テストを実施することをお勧めします。

移行ツールの選択


SQLデータベースへのデータベース移行は、さまざまなツールを使用して実行できます。 通常、データベース移行プロセスは、スキーマの移行とデータの移行で構成されます。 以下では、これらのプロセスのいずれか、または両方をサポートするツールについて説明します。 一括コピーAPIを使用して、独自のカスタムデータ送信アプリケーションを作成できます。

SQL Serverからの移行


手段
スキーム
SQLデータベースの互換性の確認
データ
データ転送効率
ご注意
DACパッケージ
はい
はい
いや
利用できません
すべてのデータベースオブジェクトを含むが、データを含まないエンティティ。

・SQLデータベースの完全サポート。
DAC BACPACデータレベルアプリケーションのインポートとエクスポート
はい
はい
はい
いいね
・DACプラットフォームを使用して、データレベルのアプリケーションデータをエクスポートおよびインポートします。

・クラウドのみをサポートするサービスが利用可能です。

・SQL DACプロジェクトはCodePlex Webサイトで入手できます。
SSMSスクリプトウィザード
はい
部分的
はい
悪い
・SQLデータベースのスクリプトオプションは明示的に設定されます。

・小規模なデータベースに適しています。
Bcp
いや
利用できません
はい
いいね
・既存のテーブルへの効果的なデータ転送。

・各bcpコマンドは、1つのデータベースを送信します。
SQLデータベース移行ウィザード
はい
はい
はい
いいね
・トレースファイルの評価などの広範な機能。

・CodePlex Webサイトのオープンソース。

・Microsoftはサポートしていません。
SQL Server統合サービス
いや
利用できません
はい
いいね
・高レベルの柔軟性。
SQL Serverインポートおよびエクスポートウィザード
いや
利用できません
はい
いいね
・SSISのシンプルなユーザーインターフェイス。 SSMSでも利用できます。

他のRDMSからの移行


SQL Database Migration Assistantを使用して、Access、MySQL、Oracle、SybaseデータベースをSQLデータベースに移行できます。

Microsoftのコード名付きデータ転送では、CSVまたはExcel形式のデータをSQLデータベースに転送できます。

SQLデータベース間の移行


SQLデータの コピー同期を使用して、1つのSQLデータベースから別のSQLデータベースにデータを移行できます。

SQLデータベースは、データベースのコピー機能をサポートしています。 この場合、データベースはSQLデータベースに作成されます。これは、既存のデータベースのトランザクション的に整合性のあるコピーです。 データベースをコピーするには、新しいデータベースが作成されるSQL Serverデータベースのメインデータベースに接続し、CREATE DATABASEコマンドを実行する必要があります。

CREATE DATABASE destination_database_name AS COPY OF

[source_server_name。] source_database_name

新しいデータベースは、同じサーバーまたは別のサーバーに配置できます。 この命令を実行するユーザーは、(データベースを作成するために)ターゲットサーバーでdbmanagerロールを持ち 、ソースデータベースでdbownerロールを持っている必要があります。 詳細については、「 Windows Azure SQLデータベースでのデータベースのコピー 」を参照してください。

SQL Database Synchronizationサービスを使用すると、異なるSQLデータベース間だけでなく、SQLデータベースとSQL Serverの間を計画し、定期的に同期することができます。 詳細については、 SQL Data Syncの概要を参照してください。

移行ツールを使用する


データ層アプリケーションDACパッケージ


データ層アプリケーション(DAC)は、SQL Server 2008 R2で初めて導入され、Visual Studio 2010の開発ツールで使用されました。データベーススキーマ、コード、および構成を別のサーバーに展開するように設計されています。 DACアプリケーションを展開用に準備した後、それらはDACパッケージ(BACPAC)に埋め込まれます。これは、XML形式のDAC定義を含む圧縮ファイルです。 データベーススキーマをSQL Server Management StudioからDACパッケージにエクスポートしてから、パッケージをSQLデータベースに展開できます。

ご注意 DACPAC形式はBACPAC形式とは異なります。 BACPAC形式はDACPAC形式の拡張であり、DACPACファイルの標準コンテンツに加えて、JavaScript Object Notation(JSON)を使用してエンコードされたメタデータファイルとテーブルデータが含まれます。 BACPAC形式については、DACのインポートとエクスポートのセクションで説明します。

展開する前に、Visual Studio 2010を使用してデータ層アプリケーションパッケージを変更できます。データ層アプリケーションプロジェクトでは、展開の前後に実行するスクリプトを指定できます。 これらは、展開後に実行されるスクリプトへのデータの挿入など、あらゆるアクションを実行するように設計されたTransact-SQLスクリプトです。 ただし、データ層アプリケーションパッケージを使用して大量のデータを挿入することはお勧めしません。

インストールと使用
DACパッケージは、SQL Server 20008 R2に含まれています。 SQL ServerデータベーススキーマのSQLデータベースへの移行は、2段階のプロセスです。

SQL ServerデータベースからDACを取得します。
既存のデータベースに基づいてDACパッケージを作成するには、データレベルのアプリケーション抽出ウィザードを使用できます。 DACパッケージには、データベースから選択されたオブジェクトと、データベースユーザーの資格情報など、関連するインスタンスレベルのオブジェクトが含まれています。

スクリーンショットは、ウィザードが開いていることを示しています。

clip_image002

このウィザードでは、次の基本的な手順を実行できます。

  1. データレベルのアプリケーション名、バージョン、説明、パッケージファイルの場所など、DACプロパティを設定します。
  2. データベースオブジェクトとデータ層アプリケーションの互換性を確認します。
  3. パッケージの形成。

DACは、SQLデータベースまたはSQL Server 2005 Service Pack 4以降にあるデータベースからのみ取得できます。 DACでサポートされていない、またはユーザーを含むオブジェクトがデータベースにある場合、DACパッケージを取得できません。 DACでサポートされているオブジェクトの種類の詳細については、SQL ServerオブジェクトとバージョンのDACサポートの記事を参照してください。

DACパッケージをSQLデータベースに展開します。
データ層アプリケーション展開ウィザードを使用し 、DACを展開できます。 まず、SQL Server Management StudioからSQLデータベースサーバーに接続する必要があります。 データベースが存在しない場合、ウィザードが作成します。 ウィザードは、オブジェクトエクスプローラー階層で選択されたノードに関連付けられたDBMSカーネルインスタンスにDACパッケージを展開します。 次のスクリーンショットに示す例では、ウィザードはパッケージをmaqqarly23.database.windows.netという名前のSQL Serverにデプロイします。

clip_image003

重要! DACパッケージを運用環境に展開する前に、特にパッケージが別の組織で開発された場合は、その内容を確認することをお勧めします。 詳細については、「 DACパッケージの検証 」を参照してください。

以下は、データレベルのアプリケーション展開ウィザードが実行する基本的な手順です。

  1. DACパッケージの選択。
  2. パッケージの内容を確認します。
  3. SQLデータベースでデータベース展開プロパティを構成します。
  4. パッケージを展開します。


ウィザードの使用をオプトアウトできます。 代わりに、 dacstore .install()メソッドでPowerShellを使用して、スキーマをSQLデータベースに転送できます。

資源

BACPACデータレイヤーアプリケーションパッケージ


データ層アプリケーションは、データ層オブジェクトを開発、展開、および管理するためのスタンドアロンのユニットです。 DACを使用すると、データレベルのアプリケーション開発者とデータベース管理者は、データベースオブジェクトやインスタンスオブジェクトを含むMicrosoft SQL Serverオブジェクトを、DACパッケージ(DACPACファイル)と呼ばれる単一のエンティティにパックできます。 BACPAC形式はDACPAC形式の拡張であり、DACPACファイルの標準コンテンツに加えて、JavaScript Object Notation(JSON)を使用してエンコードされたメタデータファイルとテーブルデータが含まれます。 SQL ServerデータベースをBACPACファイルにパックし、それを使用してデータベースをSQLデータベースに移行できます。

ご注意 DACPACとBACPACにはいくつかの類似点がありますが、まったく異なるシナリオでの使用を目的としています。 DACPACは、スキーマの記録と展開に重点を置いています。 主に、開発、テスト、および実稼働環境での展開に使用されます。 BACPACは、スキーマとデータの記述に重点を置いています。 データベースのバックアップと論理的に同等であり、既存のデータベースのアップグレードには使用できません。 BACPACは、あるサーバーから別のサーバー(またはSQLデータベース)にデータベースを移動するため、および既存のデータベースをオープン形式でアーカイブするために使用されます。

SQL Database Import and Exportサービスは現在、オープンCTPバージョンとして利用可能です。 これを使用すると、SQLデータベースとWindows Azure BLOBストレージ間でBACPACファイルを直接インポートまたはエクスポートできます。 SQL Database Import and Exportサービスは、クエリを送信するためのいくつかのパブリックRESTエンドポイントを提供します。

Windows Azure Platform管理ポータルには、SQL Database Import and Exportサービスを呼び出すためのインターフェイスがあります。

clip_image005

SQL Server Management Studioは現在、データベースのBACPACファイルへのエクスポートをサポートしていません。 DAC APIを使用して、データをインポートおよびエクスポートできます。

SQL DAC Examplesプロジェクトは、データレベルのアプリケーションプラットフォームAPIを使用して、データベースをSQL ServerからSQLデータベースに移行する方法を示しています。 パッケージには、2つのコマンドラインユーティリティとそのソースコードが含まれています。

DACクライアントのインポートおよびエクスポートツールは、BACPACファイルをエクスポートおよびインポートするために使用されます。

DACインポートおよびエクスポートサービスクライアントは 、SQLデータベースインポートおよびエクスポートサービスを呼び出すように設計されており、Windows Azure BLOLBリポジトリとSQLデータベース間でBACPACファイルをインポートおよびエクスポートできます。


データ転送というコード名のMicrosoft製品を使用して、BACPACファイルをWindows Azure Blob Storageにコピーすることもできます。 詳細については、Microsoft製品のコードネームData Transferを参照してください。

ご注意 現在、データ層アプリケーションプラットフォームを使用してSQLデータベースにデータをインポートおよびエクスポートする機能は、CodePlexの例としてのみ利用できます。 これらのツールは、コミュニティでのみサポートされています。

インストールと使用
このセクションでは、SQL DAC Examplesプロジェクトクライアントツールを使用して、データベースをSQL ServerからSQLデータベースに移行する方法について説明します。

SQL DAC Examplesプロジェクトは、 CodePlex Webサイトからダウンロードできます。 コンピューターでサンプルを実行するには、データレベルのアプリケーションプラットフォームをインストールする必要があります

データベース移行ツールを使用する前に、ターゲットSQLデータベースを作成する必要があります。 これらのツールを使用する場合、移行は2段階で行われます。

SQL Serverデータベースのエクスポート
統合された安全なアクセスを備えたSQL Server 2008 R2を実行しているデータベースがあると仮定します。 次の引数を指定してEXEサンプルを呼び出すことにより、データベースをBACPACファイルにエクスポートできます。

DacCli.exe -s serverName -d databaseName -f C:\ filePath \ exportFileName.bacpac -x -e

パッケージをSQLデータベースにインポートする
エクスポートされたファイルは、次の引数を使用してSQLデータベースにインポートできます。

DacCli.exe -s serverName.database.windows.net -d databaseName -f C:\ filePath \ exportFileName.bacpac -i -u userName -p password

資源

スクリプトウィザード


スクリプトウィザードを使用すると、SQL Serverデータベースおよび選択したデータベース内の関連オブジェクト用のTransact-SQLスクリプトを作成できます。 これらのスクリプトを使用して、スキーマとデータをSQLデータベースに転送できます。

インストールと使用
スクリプトウィザードは、SQL Server 2008 R2に含まれています。 ウィザードは、SQL Server Management Studio 2008 R2から起動できます。 次のスクリーンショットは、ウィザードの起動を示しています。

clip_image006

ウィザードが実行する基本的な手順は次のとおりです。

  1. エクスポートするオブジェクトの選択。
  2. スクリプトオプションを設定します。 スクリプトをファイル、クリップボード、新しいリクエストウィンドウに保存するか、Webサイトに公開できます。
  3. スクリプトの詳細オプションを設定します。
    既定では、SQL Serverのスタンドアロンインスタンス用のスクリプトが作成されます。 構成を変更するには、[ スクリプトオプションの設定 ]ダイアログボックスの[ 詳細 設定 ]ボタンをクリックし、データベースエンジンタイプのスクリプトを[ SQLデータベース ]に設定します

    clip_image007



    スクリプトのデータタイプ」プロパティーには、 スキーマのみデータのみスキーマとデータのいずれかの値を割り当てることができます

生成されたスクリプトは、SQLデータベースで実行する前に変更できます。

資源

Bcpユーティリティ


bcpユーティリティは、SQL ServerまたはSQLデータベースへの高レベルのバルクデータ送信用に設計されたコマンドラインツールです。 このプログラムは移行ツールではありません。 スキーマを抽出または作成しません。 まず、スキーマ移行ツールの1つを使用して、スキーマをSQLデータベースに転送する必要があります。

ご注意 bcpユーティリティを使用して、SQLデータベースのデータをバックアップおよび復元できます。

ご注意 SQL Database Migration Wizardはbcpプログラムを使用します。

インストールと使用

BcpはSQL Serverに含まれています。 SQL Server 2008 R2に含まれているバージョンは、SQLデータベースで完全にサポートされています。

bcpプログラムを使用する場合、移行は2段階で行われます。

データファイルへのデータのエクスポート

SQL Serverデータベースからデータをエクスポートするには、次のコマンドライン命令を実行します。

bcp tableName out C:\ filePath \ exportFileName.dat –S serverName –T –n -q

outパラメーターは、SQL Serverからデータをコピーすることを意味します。 -nオプションは、ネイティブデータベースデータ型を使用して一括コピー操作を実行するために使用されます。 -qパラメーターは、bcpプログラムとSQL Serverインスタンス間の対話中にSET QUOTED_IDENTIFIERS ONステートメントを実行するために使用されます。

データファイルをSQLデータベースにインポートする

データをSQLデータベースにインポートするには、まずターゲットデータベースにスキーマを作成してから、コマンドラインでbcpプログラムを実行する必要があります。

cのBcp tableName:\ filePath \ exportFileName.dat –n –U userName @ serverName –S tcp:serverName.database.windows.net –P password –b batchSize

-bオプションは、インポートされたデータの各バッチの行数を指定します。 各パッケージがインポートされ、確認前に、パッケージ全体の個別のインポート操作としてログに記録されます。 移行中のSQLデータベース接続の中断回数を減らすために、パッケージサイズを最適化することをお勧めします。

以下は、bcpを使用して大量のデータを転送するための実用的なガイドラインです。

-Nオプションを使用して、ネイティブモードでデータを転送します。 この場合、データ型を変換する必要はありません。

-bオプションを使用して、パケットサイズを指定します。 デフォルトでは、データファイルのすべての行が1つのパッケージとしてインポートされます。 トランザクションが失敗した場合、現在のバッチからの挿入のみがロールバックされます。

-hオプション「TABLOCK、ORDER(...)」を使用します。 –hパラメーター「TABLOCK」は、バルクロード操作の間、バルク更新にテーブルレベルのロックが必要であることを示します。 それ以外の場合、行レベルのロックが実行されます。 このパラメーターを使用すると、テーブル内のロックとの競合の数を減らすことができます。 -hオプション「ORDER(...)」は、ファイル内のデータのソート順を決定します。 インポートされたデータがクラスター化インデックスに従ってテーブルに並べ替えられている場合、一括インポートプロセスのパフォーマンスが向上します。

–Fおよび–Lパラメーターは、非構造化ファイルの送信時に最初と最後の行を示すために使用されます。 これにより、複数のストリームを使用して送信するためにデータファイルを物理的に分離する必要がなくなります。

資源

SQLデータベース移行ウィザード


SQL Database Migration Wizardは、SQL Server 2005/2008データベースをSQLデータベースに移行するためのオープンソースツールです。 また、互換性の問題を特定して修正し、既知のバグの通知をユーザーに送信することもできます。

SQL Database Migration Wizardの組み込みロジックは、接続切断の処理を提供します。 SQLデータベースが接続を完了するまで、小グループトランザクションが実行されます。 接続エラーが検出されると、ウィザードはSQLデータベースとの通信を再確立し、まだ実行されていないコマンドの処理を続行します。 同様に、ウィザードは、bcpユーティリティを使用してSQLデータベースに送信するために、データを小さなセクションに分割します。 再試行のロジックを使用して、ウィザードは接続を閉じる前に正常に送信された最後のレコードを判別します。 次に、bcpユーティリティを使用して、ウィザードは次の一連のレコードでデータを送信するプロセスを再開します。

ご注意 SQL — , .



SQL http://sqlazuremw.codeplex.com . SQLAzureMW.exe. .

clip_image008

, .

  1. , .
  2. , .
  3. , .
  4. . .
  5. . SQL.
  6. .



SQL Server Integration Services


SQL Server (Server Integration Services, SSIS) . , . . SSIS SQL. SQL Server 2008 R2 SQL Windows Azure.

SSIS . , SQL Server.


SQL SSIS SQL Server 2008 R2 ADO.NET. ADO.NET SQL. ADO.NET SQL. SQL Windows Azure OLEDB .

ADO.NET SQL.

clip_image009

, . , , .

ADO.NET Use Bulk Insert when possible ( ). .

— . « » SSIS. ADO .Net, Use Bulk Insert when possible.



SQL Server


SQL Server — SQL Server Integration Service . , , , . SSIS .

:


SQL Server . — DAC.

ご注意 64- 64- SQL Server (DTSWizard.exe). , Access Excel, 32- . 32- . 32- , Client Tools ( ) Business Intelligence Development Studio.


SQL Server 2008 R2 , SQL Server SQL. .

Start () All Programs ( ), Microsoft SQL Server 2008 , Import and Export Data ( ).

Business Intelligence Development Studio, Solution Explorer ( ) SSIS Packages ( SSIS), SSIS Import and Export Wizard ( SSIS).

Project () Business Intelligence Development Studio SSIS Import and Export Wizard .

SQL Server Management Studio Database Engine ( ), Databases ( ), Tasks (), Import Data ( ) Export data ( ).

DTSWizard.exe, C:\Program Files\Microsoft SQL Server\100\DTS\Binn.

.
, . , . SQL .NET Framework Data Provider for SQLServer ( .NET Framework SQLServer).

clip_image010

. . .

, SQL Server, SQL Server Business Intelligence (BI) Development Studio.

ご注意 BI Development Studio, Integration Services.



Microsoft Database Transfer


Microsoft Database Transfer — SQL BLOB- Windows Azure. BLOB- Windows Azure. , CSV Microsoft Excel (XLSX), SQL. , SQL, .


- https://web.datatransfer.azure.com/ . , , .

SQL .





SQL Server


SQL Server Migration Assistant (SSMA) — , Oracle, Sybase, MySQL Microsoft Access SQL SQL Server. SSMA , , SQL, .


SSMA . , SQL Server. :


SSMS Windows. SSMA , . .

SSMA Access .

  1. . SQL Migrate To ( ).
  2. Access.
  3. Access .
  4. SQL.
  5. . Access SQL, Access SQL. Access : Access , , SQL.
  6. .
  7. SQL.
  8. Access.


Source: https://habr.com/ru/post/J155921/


All Articles