Azure SQL Database 用に geo レプリケーションを構成する

推定所要時間:30 分

AdventureWorks 内の DBA として、Azure SQL Database の geo レプリケーションを有効にし、それが適切に機能していることを確認する必要があります。 さらに、ポータルを使用して別のリージョンに手動でフェールオーバーします。

📝 これらの演習では、T-SQL コードをコピーして貼り付け、既存の SQL リソースを使うように求めらる場合があります。 コードを実行する前に、コードが正しくコピーされていることを確認してください。

環境をセットアップします

ラボ仮想マシンが提供され、事前に構成されている場合は、C:\LabFiles フォルダーにラボ ファイルが用意されているはずです。 少し時間をとって確認してください。ファイルが既に存在存在している場合には、このセクションをスキップしてください。 ただし、独自のマシンを使用している場合、またはラボ ファイルが見つからない場合は、 GitHub からそれらを複製して続行する必要があります。

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、Visual Studio Code のセッションを起動します。

  2. コマンド パレット (Ctrl+Shift+P) を開き、「Git Clone」と入力します。 [Git: Clone] オプションを選択します。

  3. [Repository URL] フィールドに次の URL を貼り付け、Enter キーを押します。

     https://github.com/MicrosoftLearning/dp-300-database-administrator.git
    
  4. リポジトリを、ラボ仮想マシン、または提供されていない場合はローカル コンピューターの [C:\LabFiles] フォルダーに保存してください(フォルダーが存在しない場合は作成します)。

Azure で SQL Server を構成する

Azure にログインし、Azure で実行されている既存の Azure SQL Server インスタンスがあるかどうかを確認します。 Azure で SQL Server インスタンスが既に実行されている場合は、このセクションをスキップします

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、Visual Studio Code セッションを起動し、前のセクションから複製されたリポジトリに移動します。

  2. /Allfiles/Labs フォルダーを右クリックし、[統合ターミナルで開く] を選択します。

  3. Azure CLI を使用して Azure に接続しましょう。 次のコマンドを入力して、Enter キーを押します。

     az login
    

    📝 ブラウザー ウィンドウが開くことに注意してください。 ログインには Azure 資格情報を使用してください。

  4. Azure にログインしたら、リソース グループがまだ存在しない場合は作成し、そのリソース グループの下に SQL サーバーとデータベースを作成します。 次のコマンドを入力して、Enter キーを押します。 スクリプトが完了するまで数分かかります

     cd ./Setup
     ./deploy-sql-database.ps1
    

    📝 既定では、このスクリプトは contoso-rg というリソース グループを作成するか、名前が contoso-rg (存在する場合) で始まるリソースを使用していることに注意してください。 既定では、 West US 2 リージョン (westus2) にもすべてのリソースが作成されます。 最後に、 SQL 管理者パスワードのランダムな 12 文字のパスワードを生成します。 これらの値は、パラメーター -rgName-location-sqlAdminPw のいずれかまたは複数を使用して、任意の値に変更することができます。 パスワードは Azure SQL のパスワードの複雑さの要件を満たす必要があります。具体的には、12文字以上で、大文字 1 文字、小文字 1 文字、数字 1 つ、特殊文字 1 つを含める必要があります。

    📝 スクリプトによって、現在のパブリック IP アドレスが SQL Server ファイアウォール規則に追加されることに注意してください。

  5. スクリプトが完了すると、リソース グループ名、SQL Server 名とデータベース名、管理者ユーザー名とパスワードが返されます。 これらの値は、後でラボで必要になりますのでメモしておきます


geo レプリケーションを有効にする

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、ブラウザー セッションを起動し、 https://portal.azure.comに移動します。 Azure 資格情報を使用して、Azure portal に接続します。

  2. Azure portal 内で、「sql データベース」を検索して、自分のデータベースに移動します。

  3. SQL データベース AdventureWorksLT を選択します。

  4. データベースのブレードの [データ管理] セクションで、 [レプリカ] を選択します。

  5. [+ レプリカの作成] を選択します。

  6. [SQL Database - geo レプリカの作成] ページで、[プロジェクトの詳細][プライマリ データベース] セクションに、サブスクリプション、リソース グループ、データベース名が既に入力されていることに注意してください。

  7. [レプリカの構成] セクションで、レプリカ タイプ**に **geo レプリカを選択します。

  8. [geo セカンダリ データベースの詳細] に次の値を入力します。

    • サブスクリプション: <お使いのサブスクリプション名> (プライマリ データベースと同じです)。
    • リソース グループ: <プライマリ データベースと同じリソース グループを選択します。>
    • データベース名: データベース名は灰色表示され、プライマリ データベース名と同じになります。
    • サーバー: [新規作成] を選択します。
    • [SQL Database サーバーの作成] ページで、次の値を入力します。

      • [サーバー名]: セカンダリ サーバーの一意の名前を入力します。 サーバー名は、すべての Azure SQL Database サーバーで一意であることが必要です。
      • [場所]: プライマリ データベースから別のリージョンを選択します。 お客様のサブスクリプションでは、利用可能なリージョンが一部ない場合があることに注意してください。
      • [Azure サービスにサーバーへのアクセスを許可する] チェック ボックスをオンにします。 運用環境では、サーバーへのアクセスを制限したい場合があることに注意してください。
      • 認証には [SQL 認証] を選択します。 運用環境では、 [Microsoft Entra 専用認証を使用する] を使用したい場合があることに注意してください。 管理者ログイン名とセキュリティで保護されたパスワードとして「*sqladmin」と入力します。 パスワードは Azure SQL のパスワードの複雑さの要件を満たす必要があります。具体的には、12文字以上で、大文字 1 文字、小文字 1 文字、数字 1 つ、特殊文字 1 つを含める必要があります。
      • [OK] を選択してサーバーを作成します。
    • エラスティック プールを使用しますか?: いいえ
    • コンピューティング + ストレージ: General Purpose、Gen 5、2 つの仮想コア、32 GBのストレージ。
    • バックアップ ストレージの冗長性: ローカル冗長ストレージ (LRS)。 運用環境では、 **geo 冗長ストレージ (GRS) **を使用する場合があることに注意してください。
  9. [確認および作成] を選択します。

  10. [作成] を選択します セカンダリ サーバーとデータベースの作成には数分かかります。 完了すると、進行状況は [デプロイが進行中です] から [デプロイが完了しました] に変わります。

  11. [リソースに移動] を選択して、次の手順でセカンダリ サーバーのデータベースに移動します。

セカンダリ リージョンへの SQL Database のフェールオーバー

これで Azure SQL Database レプリカが作成されたので、フェールオーバーを実行します。

  1. セカンダリ サーバーのデータベースにまだ存在しない場合は、Azure portal で SQL データベース を検索し、セカンダリ サーバーの SQL データベース AdventureWorksLT を選択します。

  2. SQL データベースのメイン ブレードで、 [データ管理] セクションの [レプリカ] を選択します。

  3. geo レプリケーション リンクが確立されていることに注意してください。 プライマリ データベースの レプリカの状態 値は オンライン で、geo レプリカの レプリカの状態 値は 読み取り可能 です。

  4. セカンダリ サーバーの […] メニューを選択し、[強制フェールオーバー] を選択します。

    📝 強制フェールオーバーにより、セカンダリ データベースがプライマリ ロールに切り替わります。 この操作中は、すべてのセッションが切断されます。

  5. 警告メッセージが表示されたら、 [はい] をクリックします。

  6. プライマリ レプリカの状態が [保留] に切り替わり、セカンダリは [フェールオーバー] に切り替わります。

    📝 データベースは小さいため、フェールオーバーは迅速に行われることに注意してください。 運用環境では、このプロセスには数分かかる場合があります。

  7. 完了すると、ロールが切り替わり、セカンダリが新しいプライマリになり、古いプライマリがセカンダリになります。 新しい状態を表示するには、ページの更新が必要な場合があります。

ここまで、読み取り可能なセカンダリ データベースは、プライマリと同じ Azure リージョン、またはより一般的に別のリージョンに含まれる場合があることを確認しました。 このような読み取り可能なセカンダリ データベースは、geo セカンダリまたは geo レプリカとも呼ばれます。


リソースをクリーンアップする

Azure SQL Server を他の目的で使用していない場合は、このラボで作成したリソースをクリーンアップできます。

リソース グループを削除します

このラボの新しいリソース グループを作成した場合は、リソース グループを削除して、このラボで作成されたすべてのリソースを削除できます。

  1. Azure portal で、左側のナビゲーション ペインから リソース グループ を選択するか、検索バーで リソース グループを検索して、結果からそのリソース グループを選択します。

  2. このラボ用に作成したリソース グループに移動します。 リソース グループには、Azure SQL Server と、このラボで作成されたその他のリソースが含まれます。

  3. トップ メニューから [リソース グループの削除] を選択します。

  4. [リソース グループの削除] ダイアログで、リソース グループの名前を入力して確認した後、[削除] を選択します。

  5. リソース グループが削除されるのを待ちます。

  6. Azure Portal を閉じます。

ラボ リソースのみを削除する

このラボ用の新しいリソース グループを作成せず、リソース グループとその以前のリソースをそのまま残したい場合は、このラボで作成したリソースを削除できます。

  1. Azure portal で、左側のナビゲーション ペインから リソース グループ を選択するか、検索バーで リソース グループを検索して、結果からそのリソース グループを選択します。

  2. このラボ用に作成したリソース グループに移動します。 リソース グループには、Azure SQL Server と、このラボで作成されたその他のリソースが含まれます。

  3. ラボで以前に指定した SQL Server 名のプレフィックスが付いたすべてのリソースを選択します。

  4. トップ メニューから、削除を選択します。

  5. [リソースの削除] ダイアログで、「delete」と入力し、[削除] を選択します。

  6. [削除] をもう一度選択し、リソースの削除を確定します。

  7. リソースが削除されるまで待ちます。

  8. Azure Portal を閉じます。

LabFiles フォルダーを削除する

このラボ用に新しい LabFiles フォルダーを作成して、それが不要になった場合は、LabFiles フォルダーを削除して、このラボで作成されたすべてのファイルを削除できます。

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、エクスプローラーを開き、 C:\ ドライブに移動します。
  2. LabFiles フォルダーを右クリックし、[削除] を選択します。
  3. [はい] を選択して、フォルダーの削除を確認します。

このラボは以上で完了です。

これで、Azure SQL Database の geo レプリカを有効にする方法と、ポータルを使用して手動で別のリージョンにフェールオーバーする方法を確認しました。