データベースのエクスポート

サンドボックス ユーザー受け入れテスト (UAT) 環境からアセット ライブラリへのデータベースのエクスポートに Microsoft Dynamics Lifecycle Services を使用できます。

紙幣

カスタマー マネージド キー (CMK) を環境に適用すると、エクスポートされたファイルは、Lifecycle Services のアセット ライブラリに CMK なしで格納されます。 Lifecycle Services アセット ライブラリに対する CMK サポートは、エクスポートされたファイルが Lifecycle Services アセット ライブラリに適用された CMK ポリシーと一緒に格納されると、間もなく使用できるようになります。

セルフ サービスエクスポート データベース

サンドボックス 環境詳細 ページで、 管理 メニューをクリックし、 データベースの移動を選択します。

データベース メニューを移動します。

エクスポート データベース アクションが使用できるページでスライダー ウィンドウが開きます。

データベース メニューをエクスポートします。

サンドボックスの更新やパッケージの展開などの他のサービス操作は、この間実行できません。 ソース環境は Dynamics ユーザーの観点から使用可能になります。

エクスポートが正常に完了した後に、環境の詳細ページのサービス操作からサインアウトします。 データベースのバックアップ セクションの 資産ライブラリ で資産を確認できます。

資産ライブラリのバックアップ ファイル。

.bacpac ファイルはここに格納され、インポート用 Tier 1 開発者環境に手動でダウンロードすることができます。 今後、Microsoft は、エクスポート アクションをトリガーし、資産ライブラリで使用可能なバックアップ ファイルを一覧表示するための API を提供します。 これには、バックアップ資産ファイルを自動でダウンロードするための、または Microsoft Azure Storage SDK を使用して、セキュリティで保護された BLOB ストレージに直接コピーするための、セキュリティで保護された URL が含まれます。

長時間実行される操作

エクスポート操作が完了するまでに数時間、極端な場合には数日かかる場合があります。 この時間は、財務と運用アプリのスキーマの複雑さ、およびクラウドデータベースを従来の SQL Server で使用するためのフラットファイルに変換する Azure SQL 提供ツールの制限によるものです。 エクスポート操作に時間がかかりすぎて処理を中断したい場合は、環境の詳細ページから キャンセル ボタンをクリックします。

エクスポートされた bacpacs で最大 50 GB

Lifecycle Services からデータベースのエクスポートを実行するシステムを維持するために、最大 BACPAC サイズの制限が設定されています。 この制限は、エクスポートする bacpac ごとに、50 GB に設定されます。 この制限の理由は次のとおりです。

  • 一元化されたシステムでは、同じ地域の複数の顧客に対してエクスポートを実行しています。このシステムは、ディスク領域に制限があります。

データベースのサイズを小きくする必要がある場合は、クリーンアップ ルーチン に従います。

上記のクリーンアップ ルーチンによって BACPAC ファイルのサイズが 50 GB 以下にならなかった場合、次の SQL スクリプトをサンドボックス データベースに対して実行して、上位 15 テーブルをメガバイト単位で特定してください。 データ エンティティのステージングに使用するすべてのテーブル (テーブル名の最後に "staging" が付く) は、切り捨てることができます。 バイナリまたは BLOB データを格納しているテーブル (JSON/XML/binary) はすべて切り捨てるか、フィールドのコンテンツを削除して領域を解放する必要があります。 バイナリ データは圧縮できないので、データベース自体に大量のデータを格納すると、すぐに 50 GB の制限に達します。

USE [YourDBName] -- replace your dbname
GO
SELECT top 15
s.Name AS SchemaName,
t.Name AS TableName,
p.rows AS RowCounts,
CAST(ROUND((SUM(a.used_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Used_MB,
CAST(ROUND((SUM(a.total_pages) - SUM(a.used_pages)) / 128.00, 2) AS NUMERIC(36, 2)) AS Unused_MB,
CAST(ROUND((SUM(a.total_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Total_MB
FROM sys.tables t
INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
GROUP BY t.Name, s.Name, p.Rows
ORDER BY Total_MB DESC
GO

エクスポート操作失敗

多くの場合、Lifecycle Services のプロセスは、Microsoft Azure SQL データベースからの応答を待っている間にタイムアウトして、エクスポート処理を失敗してしまいます。 操作がタイムアウトになると、操作は自動的に ロールバック され、サンドボックス環境はエクスポートが開始される前の状態に復元されます。

エクスポート操作が失敗すると、自動的にロールバックします。

エクスポートされないデータ要素

環境からデータベース バックアップをエクスポートするときは、バックアップ ファイルにエクスポートされないデータベース要素があります。 次にいくつか例を挙げます。

  • LogisticsElectronicAddress テーブル内の電子メール アドレス。
  • BatchJobHistoryBatchHistory、および BatchConstraintsHistory テーブルのバッチ ジョブ履歴。
  • SysEmailParameters テーブルの SMTP 中継サーバー。
  • PrintMgmtSettingsPrintMgmtDocInstance テーブルの印刷管理設定。
  • SysServerConfigSysServerSessionsSysCorpNetPrintersSysClientSessionsBatchServerConfig、および BatchServerGroup テーブル内の環境固有のレコード。
  • DocuValue テーブル内のドキュメント添付ファイル。 これらの添付ファイルには、ソース環境で上書きされたすべての Microsoft Office テンプレートが含まれます。
  • DatabaseLog テーブルのデータベース ログ履歴。
  • 管理者以外のすべてのユーザーは 無効 のステータスに設定されます。
  • すべてのバッチ ジョブは、 保留 状態に設定されます。
  • すべてのユーザーのパーティション値は 「初期」 パーティション レコード ID にリセットされます。
  • 別のデータベース サーバーでは解読できないため、すべての Microsoft 暗号化フィールドはクリアされます。 次の例は、SysEmailSMTPPassword テーブルのパスワード フィールドです。
  • メンテナンス モード 設定は、ソースで有効になっていた場合でも無効になります。
  • 二重書き込みの構成。 この操作に成功した後にターゲット環境に新しいリンクを設定するには、二重書き込み環境のリンクを参照してください。
  • エクスポートされていないテーブルは次のとおりです。
    • RetailCDXDownloadSession
    • RetailCDXDownloadSessionDataStore
    • RetailCDXDownloadSummaryCache
    • RetailCDXUploadSession
    • RetailCDXUploadPathHistory
    • RetailCDXUploadSummaryCache
    • RetailCDXDataSyncRowVersion
  • Commerce Scale Unit へのすべての参照は、RetailConnDatabaseProfile テーブルから削除されます。
  • Commerce Scale Unit へのすべての参照は、RetailScaleUnit テーブルから削除されます。
  • Commerce Scale Unit へのすべての参照は、RetailChannelProfile テーブルおよびテーブルのすべての子から削除されます。
  • すべての環境固有値は、RetailSharedParamaters テーブルから削除されます。
  • すべての環境固有値は、RetailHardwareProfile テーブルから削除されます。
  • すべての環境固有値は、CreditCardAccountSetup テーブルから削除されます。
  • すべての環境固有値は、RetailSelfServicePackageInfo テーブルおよびテーブルのすべての子から削除されます。

既知の問題

エクスポートはしばらく実行され、「準備に失敗しました」の状態になります。

エクスポート プロセスは、大規模なデータベースが関係する Azure SQL データベースではタイムアウトすることがあります。 場合によっては、Lifecycle Services から 再開 アクションを使用してエクスポート プロセスを復元することができます、 Lifecycle Services チームは既知のエラー コードを認識するよう努めており、データベースのエクスポート操作のログにエラーを追加することで、ユーザーが問題を解決できるようにします。 Lifecycle Services の将来のリリースでは、これらの既知のエラー コードが追加されます。

Lifecycle Services でエクスポートの進捗状況が表示されない

エクスポートのプロセスは、他のデータベース移動の操作および、ランブックを使用しない一般的なパッケージ展開とは異なります。 したがって、たとえ他のシナリオに通常は出力が表示されても、Lifecycle Services の進行状況インジケーターには表示されません。 Lifecycle Services チームは、ユーザーが解決策を見つけるため、データベースのエクスポート操作のログに追加できるように、既知のエラー コードを識別するよう努めています。 Lifecycle Services の将来のリリースでは、これらの既知のエラー コードが追加されます。