ゴールデン コンフィギュレーション プロモーション

データベース移動操作は、データ アプリケーション ライフ サイクル管理 (DataALM) の一部として使用できる一連のセルフ サービスのアクションです。 「ゴールデン コンフィギュレーション」は、開発者環境が構成ストアとして使用されている Microsoft Dynamics エコシステムにおける顧客とパートナーの間での一般的な方法を示します。 この方法では、実装プロジェクトは、後で会議室パイロット、モック Go-Live、Go-Live の基準とできる際集荷されたグローバルおよび会社固有の設定をデータベースに保存できます。 このチュートリアルでは、ゴールデン構成データベースを準備し、ターゲット ユーザー受け入れテスト (UAT) 環境に取り込む方法を示します。

このチュートリアルでは、次の方法について説明します。

  • Microsoft Azure SQL データベースのゴールデン構成データベースを準備する。
  • ターゲット UAT 環境のインポートを実行する。
  • 運用環境に UAT 環境をコピーする。

このシナリオの例として、Go-Live していない顧客が、代わりに会議室パイロット、モック Go-Live、Go-Live を準備するということがあります。 このシナリオでは、開発者環境からのベースライン ゴールド ・ データベースを UAT 環境に昇格し、最終的を運用環境をサポートすることをします。

必要条件

このチュートリアルを完了するには、ゴールデン コンフィギュレーション データベースとして管理されるデータベースに配置されている開発者環境が必要です。 少なくとも 1 つの標準 UAT 環境が展開されていることと、必要に応じて、運用環境が 1 つ以上必要です。

開発環境は、ターゲット UAT 環境と同じアプリケーション バージョンを実行している必要があります。 加えて、開発者環境のプラットフォーム バージョンは、ターゲット UAT 環境のプラットフォーム バージョン以前でなければなりません。

準備

サポートされる SQL Server の照合順序

クラウドで唯一サポートされている照合順序データベースは、SQL_Latin1_General_CP1_CI_AS です。 開発環境の Microsoft SQL Server とデータベース照合順序がこの値に設定されていることを確認してください。 また、サンドボックスに発行されたすべてのコンフィギュレーション環境にこの照合順序があることを確認します。

暗号化されたフィールドの値を文書化

暗号化された環境固有の値を新しい環境にインポートすることはできません。 インポート処理を完了した後は、ターゲット環境内のソース環境から一部のデータを再入力する必要があります。

データ暗号化に使用される証明書に関連する技術的な制限のため、データベースの暗号化されたフィールドに格納されている値はそのデータベースが新しい環境にインポートされた後は読み取れません。 したがって、インポート後、暗号化されたフィールドに格納されている値を手動で削除して再入力する必要があります。 インポート後に暗号化されたフィールドに入力される新しい値は読み取り可能になります。 次のフィールドが影響されます。 フィールド名は Table.Field 形式で指定されます。

フィールド名 値を設定する場所
CreditCardAccountSetup.SecureMerchantProperties 売掛金勘定>支払設定>支払サービスを選択します。
ExchangeRateProviderConfigurationDetails.Value 総勘定元帳>通貨>為替レート プロバイダーを構成するを選択します。
FiscalEstablishment_BR.ConsumerEFDocCsc 組織管理>会計施設>会計施設の順に選択します。
FiscalEstablishmentStaging.CSC このフィールドは、データ インポート/エクスポート フレームワーク (DIXF) によって使用されます。
HcmPersonIdentificationNumber.PersonIdentificationNumber 人事管理>作業者>作業者の順に選択します。 ワーカータブの、個人情報グループで、ID 番号を選択します。
HcmWorkerActionHire.PersonIdentificationNumber このフィールドは、Microsoft Dynamics AX 7.0 以降 (2016 年 2 月) は廃止されました。 これは以前、すべての作業者アクション ページ (人事管理>作業者>アクション>すべての作業者アクション) に表示されていました。
SysEmailSMPTPassword.Password システム管理>電子メール>電子メール パラメーターの順に選択します。
SysOAuthUserTokens.EncryptedAccessToken このフィールドは、アプリケーション オブジェクト サーバー (AOS) により内部で使用されています。 これは無視できます。
SysOAuthUserTokens.EncryptedRefreshToken このフィールドは、AOS で内部的に使用されます。 これは無視できます。

コマース コンポーネントを実行している場合、暗号化された値および環境固有の値を文書化する

次のページの値は、環境固有またはデータベースで暗号化されています。 したがって、インポートされた値はすべて正しくありません。

  • 支払サービス (売掛金勘定>支払設定>支払サービス) に移動します
  • ハードウェア プロファイル (小売りとコマース>チャネル設定>POS 設定>POS プロファイル>ハードウェア プロファイル)

ソース データベースのコピーを作成します。

SSMS を使用してソース データベースをバックアップします。 ソース データベースを右クリックし、タスク > バックアップ オプションを選択します。 この作業が完了したら、SSMS ナビゲーション ウィンドウのデータベース フォルダーを右クリックし、データベースの復元をクリックします。 作成したバックアップを選択しますが、ターゲット データベースには AXDB_CopyForExport などの新しい名前を付けます。

データベースの準備

次のスクリプトを、前のセクションで作成した AxDB_CopyForExport データベースに対して実行します。 このスクリプトは、次の変更を行います。

  • SysGlobalConfiguration フラグを設定し、データベースが Azure ベースであることをアプリケーションに知らせます。
  • XU_DisableEnableNonClusteredIndexes 手順で tempDB への参照を削除します。 Azure SQL データベースでは、tempDB の参照が許可されていません。 データベース同期プロセスは後で照会を再作成します。
  • Microsoft Windows のユーザーは Azure SQL データベースで許可されていないため、ユーザーをドロップします。 他のユーザーは、対象のサーバーの適切なサインインに正しくリンクされるように、後で再作成する必要があります。
  • 暗号化されたハードウェア プロファイルの商社プロパティの消去。

データベースのエクスポートとインポートに成功するには、これらすべての変更が必要です。

update sysglobalconfiguration
set value = 'SQLAZURE'
where name = 'BACKENDDB'

update sysglobalconfiguration
set value = 1
where name = 'TEMPTABLEINAXDB'

drop procedure if exists XU_DisableEnableNonClusteredIndexes
drop procedure if exists SP_ConfigureTablesForChangeTracking
drop procedure if exists SP_ConfigureTablesForChangeTracking_V2
drop schema [NT AUTHORITY\NETWORK SERVICE]
drop user [NT AUTHORITY\NETWORK SERVICE]
drop user axdbadmin
drop user axdeployuser
drop user axmrruntimeuser
drop user axretaildatasyncuser
drop user axretailruntimeuser
drop user axdeployextuser

--Tidy up the batch server config from the previous environment
DELETE FROM SYSSERVERCONFIG

--Tidy up server sessions from the previous environment
DELETE FROM SYSSERVERSESSIONS

--Tidy up printers from the previous environment
DELETE FROM SYSCORPNETPRINTERS

--Tidy up client sessions from the previous environment
DELETE FROM SYSCLIENTSESSIONS

--Tidy up batch sessions from the previous environment
DELETE FROM BATCHSERVERCONFIG

--Tidy up batch server to batch group relation table
DELETE FROM BATCHSERVERGROUP

-- Clear encrypted hardware profile merchant properties
update dbo.RETAILHARDWAREPROFILE set SECUREMERCHANTPROPERTIES = null where SECUREMERCHANTPROPERTIES is not null

SQL Server からデータベースをエクスポート

sqlpackage .NET Core for Windows を Get sqlpackage .NET Core for Windows からダウンロードします。 コマンド プロンプト ウィンドウを開き、sqlpackage .NET Core フォルダーから次のコマンドを実行します。

cd C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin\
SqlPackage.exe /a:export /ssn:localhost /sdn:<database to export> /tf:D:\Exportedbacpac\<filename>.bacpac /p:CommandTimeout=1200 /p:VerifyFullTextDocumentTypesSupported=false /SourceTrustServerCertificate:True

パラメータの説明を以下に示します。

  • ssn(ソース サーバー名) – エクスポートする SQL Server の名前。 この記事では、名前は常に localhost である必要があります。
  • sdn(ソース データベース名) – エクスポートするデータベースの名前。
  • tf(ターゲット ファイル) – エクスポートするファイルのパスと名前。 フォルダーはすでに存在しているはずですが、エクスポート プロセスによってファイルが作成されます。

データベースのインポート

前の手順で作成された .bacpac ファイルを、LCS プロジェクトの資産ライブラリ内の データベースのバックアップ セクションにアップロードします。 次に、インポートを開始します。 対象となる UAT 環境のデータベースは、ゴールデン構成データベースによって上書きされます。

ノート

一部の要素は、データベースのインポート ステップの一部としてコピーされません。 ゴールデン コンフィギュレーションのシナリオでは、これはメール アドレスや印刷管理の設定などに影響を与えます。 これらの設定は、次の手順に従ってマスター データ移行の一部として実施し、ゴールデン コンフィギュレーション データベースには含めないことをお勧めします。

開発環境から標準ユーザー承認テスト (UAT) まで準備されたデータベース、または UAT 環境から前回エクスポートしたデータベースをインポートするには、次のステップに従います。

  1. ターゲット サンドボックスの 環境詳細 ページを開き、 メニュー オプションから 管理>データベースの移動 を選択します。
  2. データベースのインポートを選択し、資産ライブラリからソース データベースのバックアップ (.bacpac形式) ファイルを選択します。
  3. 警告に注意してください。 バックアップ ファイルからクリーンアップされたデータ要素の一覧を確認します。
  4. インポート操作をすぐに開始します。

メモ

管理者ユーザー、およびその他の内部サービス ユーザー アカウントを除くすべてのユーザーはインポート後に使用できなくなります。 そのため、管理者ユーザーは他のユーザーがシステムに復帰する前にデータの削除や難読化することができます。

データベース バックアップ (.bacpac) ファイルをダウンロードした後、データベースを開発環境にインポートするには、レベル 1 環境の手動インポート操作の開始が可能です。 データベースをインポートするときは、これらのガイドラインに従うことお勧めします。

  • 必要な場合は、後で戻すことができるように、既存の AxDB データベースのコピーを保持します。
  • AxDB_fromProd などの新しい名前の下に新しいデータベースをインポートします。

最良のパフォーマンスを確保するためには、 *.bacpac ファイルをインポート元のコンピューターにコピーします。 sqlpackage .NET Core for Windows を Get sqlpackage .NET Core for Windows からダウンロードします。 コマンド プロンプト ウィンドウを開き、sqlpackage .NET Core フォルダーから次のコマンドを実行します。


SqlPackage.exe /a:import /sf:D:\Exportedbacpac\my.bacpac /tsn:localhost /tdn:<target database name> /p:CommandTimeout=1200

パラメータの説明を以下に示します。

  • tsn (ターゲット サーバー名) – インポートする Microsoft SQL Server インスタンスの名前。
  • tdn(ターゲット データベース名) – インポートするデータベースの名前。 データベースが既に存在していてはいけません
  • sf(ソース ファイル) – インポートするファイルのパスと名前。

メモ

インポート中に、ユーザー名およびパスワードは必要ありません。 既定では、SQL Server は、現在サインインしているユーザーに対して Microsoft Windows 認証を使用します。

レベル 1 の環境に手動インポート処理を実行する方法については、データベースのインポート を参照してください。

マスター データを移行します。

UAT 環境にゴールデン コンフィギュレーションが適用され、マスター データの移行を開始することができます。 データ エンティティを使用して、このデータの移行を行うことができます。 UAT 環境を運用環境にコピーする前にデータ移行アクティビティを完了することをお勧めします。トラブルシューティングのために UAT 環境のデータベースにアクセスするためです。

重要

次の手順では、Azure Blob Storage に格納されたファイルは UAT から運用にコピーされません。 これには、ドキュメントの添付ファイルやカスタム Microsoft Office テンプレートが含まれます。 Go-Live に添付ファイルまたはカスタム テンプレートが必要な場合は、運用環境にあるテンプレートを直接インポートします。

サンドボックス データベースを運用環境にコピーします。

モック Go-Live または実際の Go-Live を行う準備ができたら、運用環境に UAT 環境をコピーすることができます。 このプロセスは、切替と呼ばれます。 実際の Go-Live には複数回切り替えることをお勧めします。 このようにして、プロセスの各ステップの詳細な時間見積を取得できます。

運用環境の環境タイプを決定し、それに応じて関連する手順を実行します。

セルフ サービス

  1. LCS で、運用環境の完全な詳細を開いて、環境ページを読み込みます。
  2. 管理メニューで、データベースの移動を選択します。
  3. 操作のオプションで、データベースの更新を選択します。
  4. ソース環境で、ゴールデン構成があるサンドボックスを選択します。 このタイプの操作については、データベース ページの更新 にある重要な手順に注意してください。
  5. 操作が運用データベースを上書きすることを理解していることを確認するには、このチェック ボックスをオンにします。 要求を送信すると工程がすぐに開始されます。

Microsoft 管理

  1. LCS のプロジェクト ホーム ページで、サービス要求 を選択します。

  2. サービス要求 ページで、追加 を選択し、サンドボックスから運用環境 を選択します。

  3. サンドボックスから運用環境 ダイアログ ボックスで、次の手順に従います。

    1. ソース環境名称 フィールドで、データベースのコピー元のサンドボックス環境を選択します。
    2. ダウンタイム開始日を優先 および ダウンタイム終了日を優先 フィールドを設定します。 サイクル終了日は、サイクル開始日の少なくとも 4 時間後でなければなりません。 要求を実行するためのリソースが確保されるようにするには、推奨ダウンタイム ウィンドウの少なくとも 24 時間前にリクエストを送信することをお勧めします。
    3. 下部にあるチェック ボックスをオンにして、条項に同意します。

重要

データベースの更新ごとに、復元ポイントの ポイントインタイム復元 チェーンをリセットする新しいデータベースが作成されます。

環境の固有の設定を変更

更新が完了した後、LCS でサインオフ ボタンを使用し、操作を閉じます。 その後、環境固有の設定のコンフィギュレーションを開始できます。

まず、環境にログインします。LCS の環境の詳細ページにある管理者アカウントを使用します。 再設定の標準的な領域をいくつか次に示します。 設定およびインストールされている独立系ソフトウェア ベンダー (ISV) ソリューションによっては、追加の再設定が必要です。

  • システム管理>設定>バッチ グループ: 必要なバッチ サーバー グループにさまざまな AOS インスタンスを追加します。
  • システム管理>設定>エンティティ店舗: Microsoft Power BI レポートに必要なさまざまなエンティティを更新します。
  • システム管理>設定>システム パラメーター: タスク ガイドの LCS ヘルプ コンフィギュレーションに環境を再接続します。
  • システム管理>設定>電子メール>電子メール パラメーター: UAT 環境内で電子メールを使用する場合は、Simple Mail Transfer Protocol (SMTP) の設定を入力します。
  • システム管理>設定>統合コンフィギュレーション>Azure storage アカウント接続文字列: ストレージの接続文字列を入力します。
  • システム管理>設定>システムパラメータ:ドキュメント接続タブで Azure Key と アプリケーション シークレットを入力します。
  • システム管理>照会>バッチ ジョブ: UAT 環境で実行するジョブを選択し、ステータスを待機中に更新します。

ノート

ベスト プラクティスとして、定期的なアイテムで実行されるすべてのミッション クリティカル バッチ ジョブが作成され、管理者アカウントで実行される必要があります。 管理者は、erp@customer.com など一般的なユーザーである必要があります。 特定の従業員の Microsoft Entra アカウントにリンクしないでください。従業員が退職すると、そのアカウントは使用できなくなる可能性があるためです。

ユーザーに環境を開く

実稼働環境と同様に、このオブジェクトのユーザーの構成がコピーされます。 本番環境にコピーする前に、サンドボックス環境で必要なユーザーを設定し、コピー完了後の不要なアクセスを避けることをお勧めします。

コピーが完了したら、ユーザーのアクセス許可を更新する場合は、システム管理>ユーザー>ユーザー に移動し、本番環境へのアクセスを管理するユーザーを有効または無効にします。 多くのユーザーを有効/無効にする必要がある場合、Microsoft Excel アドイン を使用してこのタスクをすばやく完了できます。

コミュニティ ツール

開発者環境からバックアップ ファイルを準備するための他のツールをお探しですか。 他の情報源を次に示します。