Estou confuso sobre o comportamento da cadeia de conexão que especifica ApplicationIntent = ReadOnly
e grava consultas no SQL Server 2016 Enterprise Edition.
Digamos que o Grupo de Disponibilidade tenha um primário - X1
e duas réplicas - X2
e X3
digamos que eu queira equilibrar leituras e gravações, para que todas as gravações vão para o primário e leiam para duas réplicas.
Se o aplicativo se conecta ao SQL e lê e grava consultas usando uma única cadeia de conexão que possui ApplicationIntent = ReadOnly
, isso significa que ocorrerá um erro se o aplicativo tentar executar a consulta de gravação ou simplesmente redirecionará essa consulta para o primário?
Sim. Se você tiver o roteamento somente leitura configurado, as conexões com intenção de leitura serão redirecionadas para uma réplica somente leitura. Eles permanecerão conectados à réplica somente leitura durante a conexão. O roteamento acontece somente durante a conexão inicial ao AG. Portanto, se o roteamento redirecionar o cliente para uma réplica de leitura, qualquer consulta de gravação falhará.