データベース移動操作は、データ アプリケーション ライフサイクル管理 (DataALM) の一部として使用できるセルフサービス アクションのスイートです。 状況によっては、環境で破壊的なテストを実行する必要があります。 このコンテキストでは、破壊的なテストは、環境が継続的なテストに役立たなくなったことを意味します。 破壊試験は、会議室パイロット中の実装ライフ サイクルでは一般的です。 このチュートリアルでは、破壊試験を容易にするデータベース移動操作の使用方法を示します。
このチュートリアルでは、次の 2 つの方法について説明します。
- データベース バックアップ資産を使用します。
- ポイントインタイム復元を使用します。
このシナリオの例として、顧客は会議室パイロットを実行しようとしており、トランザクションがない (つまり、販売注文や発注書がない) 環境で開始します。 顧客は、物理的な倉庫から地理的リージョン全体の物理倉庫に移動して同じパイロットを実行し、各パイロットが完了する前に環境を "リセット" することを望んでいます。
前提条件
このチュートリアルを完了するには、標準ユーザー受け入れテスト (UAT) 環境をプロジェクトにデプロイする必要があります。
データベースのバックアップの使用
テストの開始点に既にあるデータベース バックアップ (.bacpac) ファイルを準備する場合、最も簡単な方法は、LCS プロジェクトのアセット ライブラリの [データベース バックアップ ] セクションにバックアップ ファイルをアップロードすることです。 次のセクションで説明するように、ターゲット環境にインポートできます。
開発環境から標準ユーザー承認テスト (UAT) まで準備されたデータベース、または UAT 環境から前回エクスポートしたデータベースをインポートするには、次のステップに従います。
- ターゲット サンドボックスの 環境詳細 ページを開き、 メニュー オプションから 管理>データベースの移動 を選択します。
- データベースのインポートを選択し、資産ライブラリからソース データベースのバックアップ (.bacpac形式) ファイルを選択します。
- 警告に注意してください。 バックアップ ファイルからクリーンアップされたデータ要素の一覧を確認します。
- インポート操作をすぐに開始します。
Note
管理者ユーザー、およびその他の内部サービス ユーザー アカウントを除くすべてのユーザーはインポート後に使用できなくなります。 そのため、管理者ユーザーは他のユーザーがシステムに復帰する前にデータの削除や難読化することができます。
データベース バックアップ (.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(ソース ファイル) – インポートするファイルのパスと名前。
Note
インポート中に、ユーザー名およびパスワードは必要ありません。 既定では、SQL Server は、現在サインインしているユーザーに対して Microsoft Windows 認証を使用します。
レベル 1 の環境に手動インポート処理を実行する方法については、データベースのインポート を参照してください。
データベース バックアップの長所と短所
バックアップ ファイル資産を使用する場合は、同じファイルをインポートし続けて、テストの開始点に戻ることができます。
インポート後に、ユーザーが開始する前に多数の構成 (バッチ ジョブなど) を設定する必要がある場合は、各破壊的テスト セッションにさらに多くの労力が必要になります。
ポイントインタイム復元の使用
データベース バックアップ (.bacpac) ファイルから始めず、代わりに UAT 環境が既知の良好な状態である場合は、タイム ゾーンに日付と時刻を記録するだけで済みます。 その後、破壊試験を開始できます。 テストが完了したら、次の手順を使用して、以前の時刻に環境を復元できます。
標準ユーザー承認テスト (UAT) 環境のデータベースを前回のポイントインタイムに復元するには、次のステップを実行します。
- ターゲット サンドボックスの 環境詳細 ページを開き、 メニュー オプションから 管理>データベースの移動 を選択します。
- ポイントインタイム復元 を選択し、ポイントインタイムを選択します。
- 警告に注意してください。 前回のポイントインタイムからコピーされていないデータ要素の一覧を確認します。
- 復元操作をすぐに開始します。
Important
運用中のデータベースを以前のポイントインタイムにリストアすることは、一般的なライフサイクル作業ではないため、次のような問題が発生する可能性があります:
- 実稼働環境における大規模なダウンタイム。 データベース のサイズによっては、ポイントインタイム リストア (PITR) に数時間を要する場合があります。
- SQL データ損失。 SQL データ損失は、PITR 要求の実行時間に依存します。
- SQL データベースの破損利用可能な復元ポイントのチェーン。
運用環境のデータベースを以前のポイントインタイムにリストアするには、以下の手順に従います:
- ターゲットとすつ運用環境の 環境詳細 ページを開き、 メニュー オプションから 管理>データベースの移動 を選択します。
- ポイントインタイム復元 を選択し、ポイントインタイムを選択します。
- 警告に注意してください。 前回のポイントインタイムからコピーされていないデータ要素の一覧を確認します。
- 復元操作をすぐに開始します。
ポイントインタイム復元のメリットとデメリット
ポイントインタイム リストアを使用すると、データベース バックアップ (.bacpac) ファイルの処理を回避し、破壊的なテスト セッション間の時間を短縮できます。
ポイントインタイム リストアの現在の制限により、復元が完了した後、新しい復元日時をタイム ゾーンに記録する必要があります。 ポイントインタイム リストアでは常に新しいデータベースが作成されるため、使用した元の日付と時刻は新しいデータベースの復元ポイントとして使用できません。