SQL Server 2012 可用性グループに対してリンク サーバーを作成する必要があり、すべての要求を読み取り専用レプリカにルーティングしたいと考えています。しかし、リクエストが正しいレプリカに確実にルーティングされるようにするために、ReadOnly アプリケーション インテントを指定する方法を特定できませんでした。
この方法でリンクサーバーを正常に構成した人はいますか?
SQL Server 2012 可用性グループに対してリンク サーバーを作成する必要があり、すべての要求を読み取り専用レプリカにルーティングしたいと考えています。しかし、リクエストが正しいレプリカに確実にルーティングされるようにするために、ReadOnly アプリケーション インテントを指定する方法を特定できませんでした。
この方法でリンクサーバーを正常に構成した人はいますか?
データベースへのリンク サーバー接続をテストすると、接続パラメーターで ApplicationIntent=ReadOnly を指定しても、まだプライマリ データベースにアクセスしていることがわかりました。
さらに調査した結果、これの根本的な原因は、そのログインに関連付けられているデフォルトのデータベースが「マスター」に設定されていたためであることがわかりました。これは、次のクエリを実行してテストできます。
sp_helplogins
この問題を回避するために、次の接続パラメーターを使用して、データベースのレプリカに接続していることを確認します。
ApplicationIntent=ReadOnly;Database=database-db
また、連携サーバー経由でデータベースに接続する場合は、必ず次のクエリ形式を使用してください。
SELECT * FROM [server].[database].[scheme].[table]