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