この記事は、Azure SQL データベースのフェールオーバー後に Azure Synapse Link for Azure SQL Database をトラブルシューティングして構成するためのガイドです。 この記事は、Azure SQL Database 内のデータベースにのみ適用されます。
症状
データの安全性を確保するために、Azure SQL Database に自動フェールオーバー グループを設定することを選択できます。 フェールオーバー グループを設定することで、ユーザーは、潜在的なデータ損失を保護できる複数の geo レプリケートされたデータベースをグループ化できます。 ただし、Azure SQL Database のテーブルに対して Azure Synapse Link for Azure SQL Database が開始され、データベースでフェールオーバーが発生した場合、状態が実行中と表示されていても、バックエンドで Azure Synapse Link は無効になります。
解決方法
Synapse Link を手動で停止し、新しいプライマリ サーバーの情報に従って Synapse Link を構成して、正常に動作し続ける必要があります。
Synapse Studio を起動します。
[統合] ハブを開きます。
データベースのフェールオーバーが発生した Synapse Link を選択します。
[停止] ボタンを選択します。
管理 ハブを開きます。 [外部接続] で、 [リンクされたサービス] を選択します。
[リンクされたサービス] の一覧で、データベースがフェールオーバーしたリンクされたサービスを選択します。
フェールオーバー後に新しいプライマリ サーバーに基づいてリンクされたサービス接続文字列をリセットして、Synapse Link が新しいプライマリ論理サーバーのデータベースに接続できるようにする必要があります。 2 つのオプションがあります。
- 自動フェールオーバー グループの読み取り/書き込みリスナー エンドポイント を使用し、Synapse ワークスペースのマネージド ID (SMI) を使用して、Synapse ワークスペースをソース データベースに接続します。 読み取り/書き込みリスナー エンドポイントは、フェールオーバー後に新しいプライマリ サーバーに自動的にマップされるため、一度だけ設定する必要があります。 フェールオーバーが後で発生した場合は、リスナー エンドポイントの完全修飾ドメイン名 (FQDN) が自動的に使用されます。 フェールオーバーのたびにアクションを実行して、新しいプライマリのリソース ID とマネージド ID を更新する必要があります (次の手順を参照)。
- フェールオーバーのたびに、新しいプライマリ サーバーのサーバー名、データベース名、認証情報を使用して、リンクされたサービス接続文字列を編集します。 マネージド ID または SQL 認証を使用できます。
データベースへの接続に使用される認証アカウントは、マネージド ID であるか、Azure SQL Database への SQL 認証ログインであるかにかかわらず、リンクされたサービスに必要なアクションを実行するために、少なくともデータベース内の CONTROL アクセス許可を持っている必要があります。 db_owner 権限は、CONTROL に似ています。
自動フェールオーバーグループの読み取り/書き込みリスナーエンドポイントを使用するには:
フェールオーバーのたびに、リソース ID とマネージド ID を更新する必要があります。 [統合] ハブを開きます。 Synapse Link を選択します。
次の手順は、前に選択した接続文字列によって異なります。
- リンクされたサービス接続文字列の更新に読み取り/書き込みリスナー エンドポイントを使用する場合は、新しいプライマリ サーバーに対応する SQL 論理サーバー リソース ID と マネージド ID IDを手動で更新する必要があります。
- 新しいプライマリ サーバーの接続情報を指定した場合は、[更新] ボタンを選択します。
Azure Synapse Link for Azure SQL Database では、現在、フェールオーバー前から同期を再開できません。 リンク接続を再起動する前に、データが存在する場合は、Azure Synapse のターゲット テーブルを空にする必要があります。 または、[既存のターゲット テーブルに対するアクション] ドロップダウン リストで、[ターゲットのテーブルを削除して再作成する] オプションを選択します。
最後に、Azure Synapse Link を再起動します。 [統合] ハブで、目的のリンク接続を開いた状態で、[開始] ボタンを選択します。