Azure SQL Database 用に geo レプリケーションを構成する
推定所要時間:30 分
AdventureWorks 内の DBA として、Azure SQL Database の geo レプリケーションを有効にし、それが適切に機能していることを確認する必要があります。 さらに、ポータルを使用して別のリージョンに手動でフェールオーバーします。
📝 これらの演習では、T-SQL コードをコピーして貼り付け、既存の SQL リソースを使うように求めらる場合があります。 コードを実行する前に、コードが正しくコピーされていることを確認してください。
環境をセットアップします
ラボ仮想マシンが提供され、事前に構成されている場合は、C:\LabFiles フォルダーにラボ ファイルが用意されているはずです。 少し時間をとって確認してください。ファイルが既に存在存在している場合には、このセクションをスキップしてください。 ただし、独自のマシンを使用している場合、またはラボ ファイルが見つからない場合は、 GitHub からそれらを複製して続行する必要があります。
-
ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、Visual Studio Code のセッションを起動します。
-
コマンド パレット (Ctrl+Shift+P) を開き、「Git Clone」と入力します。 [Git: Clone] オプションを選択します。
-
[Repository URL] フィールドに次の URL を貼り付け、Enter キーを押します。
https://github.com/MicrosoftLearning/dp-300-database-administrator.git
-
リポジトリを、ラボ仮想マシン、または提供されていない場合はローカル コンピューターの [C:\LabFiles] フォルダーに保存してください(フォルダーが存在しない場合は作成します)。
Azure で SQL Server を構成する
Azure にログインし、Azure で実行されている既存の Azure SQL Server インスタンスがあるかどうかを確認します。 Azure で SQL Server インスタンスが既に実行されている場合は、このセクションをスキップします。
-
ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、Visual Studio Code セッションを起動し、前のセクションから複製されたリポジトリに移動します。
-
/Allfiles/Labs フォルダーを右クリックし、[統合ターミナルで開く] を選択します。
-
Azure CLI を使用して Azure に接続しましょう。 次のコマンドを入力して、Enter キーを押します。
az login
📝 ブラウザー ウィンドウが開くことに注意してください。 ログインには Azure 資格情報を使用してください。
-
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 ファイアウォール規則に追加されることに注意してください。
-
スクリプトが完了すると、リソース グループ名、SQL Server 名とデータベース名、管理者ユーザー名とパスワードが返されます。 これらの値は、後でラボで必要になりますのでメモしておきます。
geo レプリケーションを有効にする
-
ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、ブラウザー セッションを起動し、 https://portal.azure.comに移動します。 Azure 資格情報を使用して、Azure portal に接続します。
-
Azure portal 内で、「sql データベース」を検索して、自分のデータベースに移動します。
-
SQL データベース AdventureWorksLT を選択します。
-
データベースのブレードの [データ管理] セクションで、 [レプリカ] を選択します。
-
[+ レプリカの作成] を選択します。
-
[SQL Database - geo レプリカの作成] ページで、[プロジェクトの詳細] と [プライマリ データベース] セクションに、サブスクリプション、リソース グループ、データベース名が既に入力されていることに注意してください。
-
[レプリカの構成] セクションで、レプリカ タイプ**に **geo レプリカを選択します。
-
[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) **を使用する場合があることに注意してください。
-
[確認および作成] を選択します。
-
[作成] を選択します セカンダリ サーバーとデータベースの作成には数分かかります。 完了すると、進行状況は [デプロイが進行中です] から [デプロイが完了しました] に変わります。
-
[リソースに移動] を選択して、次の手順でセカンダリ サーバーのデータベースに移動します。
セカンダリ リージョンへの SQL Database のフェールオーバー
これで Azure SQL Database レプリカが作成されたので、フェールオーバーを実行します。
-
セカンダリ サーバーのデータベースにまだ存在しない場合は、Azure portal で SQL データベース を検索し、セカンダリ サーバーの SQL データベース AdventureWorksLT を選択します。
-
SQL データベースのメイン ブレードで、 [データ管理] セクションの [レプリカ] を選択します。
-
geo レプリケーション リンクが確立されていることに注意してください。 プライマリ データベースの レプリカの状態 値は オンライン で、geo レプリカの レプリカの状態 値は 読み取り可能 です。
-
セカンダリ サーバーの […] メニューを選択し、[強制フェールオーバー] を選択します。
📝 強制フェールオーバーにより、セカンダリ データベースがプライマリ ロールに切り替わります。 この操作中は、すべてのセッションが切断されます。
-
警告メッセージが表示されたら、 [はい] をクリックします。
-
プライマリ レプリカの状態が [保留] に切り替わり、セカンダリは [フェールオーバー] に切り替わります。
📝 データベースは小さいため、フェールオーバーは迅速に行われることに注意してください。 運用環境では、このプロセスには数分かかる場合があります。
-
完了すると、ロールが切り替わり、セカンダリが新しいプライマリになり、古いプライマリがセカンダリになります。 新しい状態を表示するには、ページの更新が必要な場合があります。
ここまで、読み取り可能なセカンダリ データベースは、プライマリと同じ Azure リージョン、またはより一般的に別のリージョンに含まれる場合があることを確認しました。 このような読み取り可能なセカンダリ データベースは、geo セカンダリまたは geo レプリカとも呼ばれます。
リソースをクリーンアップする
Azure SQL Server を他の目的で使用していない場合は、このラボで作成したリソースをクリーンアップできます。
リソース グループを削除します
このラボの新しいリソース グループを作成した場合は、リソース グループを削除して、このラボで作成されたすべてのリソースを削除できます。
-
Azure portal で、左側のナビゲーション ペインから リソース グループ を選択するか、検索バーで リソース グループを検索して、結果からそのリソース グループを選択します。
-
このラボ用に作成したリソース グループに移動します。 リソース グループには、Azure SQL Server と、このラボで作成されたその他のリソースが含まれます。
-
トップ メニューから [リソース グループの削除] を選択します。
-
[リソース グループの削除] ダイアログで、リソース グループの名前を入力して確認した後、[削除] を選択します。
-
リソース グループが削除されるのを待ちます。
-
Azure Portal を閉じます。
ラボ リソースのみを削除する
このラボ用の新しいリソース グループを作成せず、リソース グループとその以前のリソースをそのまま残したい場合は、このラボで作成したリソースを削除できます。
-
Azure portal で、左側のナビゲーション ペインから リソース グループ を選択するか、検索バーで リソース グループを検索して、結果からそのリソース グループを選択します。
-
このラボ用に作成したリソース グループに移動します。 リソース グループには、Azure SQL Server と、このラボで作成されたその他のリソースが含まれます。
-
ラボで以前に指定した SQL Server 名のプレフィックスが付いたすべてのリソースを選択します。
-
トップ メニューから、削除を選択します。
-
[リソースの削除] ダイアログで、「delete」と入力し、[削除] を選択します。
-
[削除] をもう一度選択し、リソースの削除を確定します。
-
リソースが削除されるまで待ちます。
-
Azure Portal を閉じます。
LabFiles フォルダーを削除する
このラボ用に新しい LabFiles フォルダーを作成して、それが不要になった場合は、LabFiles フォルダーを削除して、このラボで作成されたすべてのファイルを削除できます。
- ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、エクスプローラーを開き、 C:\ ドライブに移動します。
- LabFiles フォルダーを右クリックし、[削除] を選択します。
- [はい] を選択して、フォルダーの削除を確認します。
このラボは以上で完了です。
これで、Azure SQL Database の geo レプリカを有効にする方法と、ポータルを使用して手動で別のリージョンにフェールオーバーする方法を確認しました。