次の方法で共有


PowerShell を使用して Azure Database for MySQL の読み取りレプリカを作成し、管理する方法

適用対象: Azure Database for MySQL - シングル サーバー

重要

Azure Database for MySQL シングル サーバーは廃止パスにあります。 Azure Database for MySQL フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for MySQL フレキシブル サーバーへの移行の詳細については、Azure Database for MySQL シングル サーバーの現状に関するページを参照してください

この記事では、PowerShell を使用して Azure Database for MySQL サービスの読み取りレプリカを作成および管理する方法を学習します。 読み取りレプリカの詳細については、概要を参照してください。

Azure PowerShell

PowerShell を使用して、読み取りレプリカを作成して管理できます。

前提条件

このハウツー ガイドを完了するには、次が必要です。

重要

Az.MySql PowerShell モジュールがプレビュー段階にある間は、次のコマンドを使用して、Az PowerShell モジュールとは別にこれをインストールする必要があります: Install-Module -Name Az.MySql -AllowPrerelease。 Az.MySql PowerShell モジュールは、一般提供された段階で将来の Az PowerShell モジュール リリースの一部となり、Azure Cloud Shell 内からネイティブに使用できるようになります。

PowerShell をローカルで使用する場合は、Connect-AzAccount コマンドレットを使用して Azure アカウントに接続します。

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Azure Cloud Shell の [使ってみる] の例を示すスクリーンショット。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Azure Cloud Shell を起動するボタン。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Azure portal の [Cloud Shell] ボタンを示すスクリーンショット

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

重要

読み取りレプリカ機能は、汎用とメモリ最適化のどちらかの価格レベルにおける Azure Database for MySQL サーバーにのみ使用可能です。 ソース サーバーがこれらの価格レベルのいずれであるかを確認します。

プライマリ サーバーで GTID が有効になっている場合 (gtid_mode = ON)、新しく作成されたレプリカでも GTID が有効になり、GTID ベースのレプリケーションが使用されます。 詳細については、「グローバル トランザクション識別子 (GTID)」を参照してください。

読み取りレプリカを作成します

重要

使用されているストレージ (v1 または v2) によっては、ソース サーバーに既存のレプリカ サーバーが存在しない場合、レプリケーションに備えるためにソース サーバーの再起動が必要となる場合があります。 サーバーの再起動を検討して、ピーク時間外にその操作を行ってください。 詳細については、「ソース サーバーの再起動」を参照してください。

読み取りレプリカ サーバーは、次のコマンドを使用して作成できます。

Get-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup |
  New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup

New-AzMySqlReplica コマンドには、次のパラメーターが必要です。

設定 値の例 説明
ResourceGroupName  myresourcegroup  レプリカ サーバーが作成されるリソース グループ。 
名前 mydemoreplicaserver 作成する新しいレプリカ サーバーの名前。

リージョンをまたがる読み取りレプリカを作成するには、Location パラメーターを使用します。 次の例では、米国西部リージョンにレプリカを作成します。

Get-AzMySqlServer -Name mrdemoserver -ResourceGroupName myresourcegroup |
  New-AzMySqlReplica -Name mydemoreplicaserver -ResourceGroupName myresourcegroup -Location westus

Note

レプリカを作成できるリージョンの詳細については、読み取りレプリカの概念に関する記事を参照してください。

既定では、Sku パラメーターが指定されていない限り、読み取りレプリカはソースと同じサーバー構成で作成されます。

Note

レプリカが確実にマスターに追随できるように、レプリカ サーバーの構成をソースと同じかそれ以上の値にしておくことをお勧めします。

ソース サーバーのレプリカを一覧表示する

特定のソース サーバーのレプリカをすべて表示するには、次のコマンドを実行します。

Get-AzMySqlReplica -ResourceGroupName myresourcegroup -ServerName mydemoserver

Get-AzMySqlReplica コマンドには、次のパラメーターが必要です。

設定 値の例 説明
ResourceGroupName  myresourcegroup  レプリカ サーバーを作成するリソース グループ。 
ServerName mydemoserver ソース サーバーの名前または ID。

レプリカ サーバーを削除します

読み取りレプリカ サーバーを削除するには、Remove-AzMySqlServer コマンドレットを実行します。

Remove-AzMySqlServer -Name mydemoreplicaserver -ResourceGroupName myresourcegroup

ソース サーバーを削除する

重要

ソース サーバーを削除すると、すべてのレプリカ サーバーへのレプリケーションを停止し、ソース サーバー自体を削除します。 これでレプリカ サーバーは、読み取りと書き込みの両方をサポートするスタンドアロン サーバーになります。

ソース サーバーを削除するには、Remove-AzMySqlServer コマンドレットを実行します。

Remove-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup

既知の問題

汎用およびメモリ最適化レベルのサーバーで使用されるストレージには、General Purpose ストレージ v1 (最大 4 TB をサポート) と General Purpose ストレージ v2 (最大 16 TB のストレージ をサポート) の 2 つの世代があります。 ソース サーバーとレプリカ サーバーでストレージの種類が同じである必要があります。 General Purpose ストレージ v2 は一部のリージョンでは使用できないため、読み取りレプリカ作成のために PowerShell で場所を使用するときは必ず、正しいレプリカ リージョンを選択してください。 ソース サーバーのストレージの種類を特定する方法については、サーバーが実行されているストレージの種類の判別方法に関するリンクを参照してください。

ソース サーバーの読み取りレプリカを作成できないリージョンを選択した場合、次の図に示すようにデプロイが実行を継続し、 "リソース プロビジョニング操作が、許可されているタイムアウト期間内に完了しませんでした。" というエラーでタイムアウトになる問題が発生します。

Get-AzMySqlServer -Name <source-servername> -ResourceGroupName <RG-Name> | New-AzMySqlReplica -Name <replica-servername> -ResourceGroupName <RG-Name> -Location <region-name>

次のステップ