完党ガむドデヌタを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.







All Articles