Cloud SQL インスタンスでは、マスター インスタンスの複数のタイプのレプリケーション インスタンスを作成できます。フェイルオーバー レプリカを使用すると、高可用性構成とインスタンス内でのデータの準同期レプリケーションが可能になり、あるゾーンが使用できなくなった場合にレプリカに切り替えることができます。リードレプリカ インスタンスは、データ レプリケーションを提供します。これにより、フェイルオーバーの際にほぼ同一の新しいマスター インスタンスが作成されるようになります。
このページでは、PowerShell コマンドレットを使用して、Google Cloud コンソール プロジェクトに存在するレプリケーション インスタンス(フェイルオーバー レプリカへのフォールバック、リードレプリカのレプリケーションの停止など)を実行する方法について説明します。Cloud SQL のインスタンスやゾーンで問題が発生したり、インスタンスやゾーンが停止したりした場合には、これらのオペレーションが必要になりますが、レプリカの管理は、既存のデータや将来のデータを混乱させることのないよう、慎重に行う必要があります。
レプリケーションの詳細については、レプリケーションのオプションとレプリケーションを構成するための要件とヒントをご覧ください。フェイルオーバー レプリカ インスタンスとリードレプリカ インスタンスをセットアップする方法については、Cloud SQL インスタンスのセットアップを参照してください。
レプリケーションの開始と停止
インスタンスのリードレプリカ インスタンスでデータ レプリケーションを開始または停止できます。次のスニペットは、リードレプリカ インスタンス myreplica のレプリケーションを開始します。これにより、マスター インスタンスのすべてのデータがレプリケートされて、データのバックアップが確保されます。
Start-GcSqlReplica "myreplica"
同様に、データ レプリケーションが不要になった場合は次のようにして停止できます。
Stop-GcSqlReplica "myreplica"
リードレプリカ インスタンスのプロモート
リードレプリカ インスタンスに必要なすべての複製データがあり、スタンドアロン インスタンスに変換する場合(たとえば、データの発散や分析の実行)、コマンドレット ConvertTo-GcSqlInstance
を使用します。
ConvertTo-GcSqlInstance "myreplica"
フェイルオーバーのアクティブ化
操作ミスによってインスタンスが使用できなくなることもあります。フェイルオーバー レプリカ インスタンスによる高可用性構成オプションを使用すると、マスター インスタンスのフェイルオーバー レプリカ インスタンスにフェイルオーバーできます。この処理は、マスター インスタンスのゾーンが停止すると自動的に開始されます。
次のコード スニペットは、フェイルオーバー レプリカ myfailover をアクティブにします。これにより、このレプリカがマスター インスタンスになります。
$instance = Get-GcSqlOperation -Instance "myfailover" $settingVersion = $instance.Settings.SettingsVersion Invoke-GcSqlInstanceFailover "myfailover" $settingVersion
このスニペットには、バージョン番号を格納する settingVersion
という変数が含まれています。この番号には、インスタンスの更新やフェイルオーバーの際に競合状態を防止するという働きがあります。呼び出しの中のバージョン番号はインスタンスの現在のバージョンと一致している必要があるからです。