Ainda sou relativamente novo no PowerShell, então não tenho certeza de todas as etapas de solução de problemas que posso seguir para resolver esse problema. Gostaria de usar o comando abaixo para determinar se a réplica é primária ou não.
Acredito que carreguei com sucesso o provedor e o smo. O Intellisense parece reconhecer o comando.
Se eu executar o seguinte comando
Test-SqlAvailabilityReplica
O script será executado, mas nunca será concluído. Estou executando-o em uma das réplicas, então estou assumindo que deveria estar apenas pegando o host local. Se eu adicionar o sinalizador -WhatIf, ele ainda será executado sem terminar.
Eu também tentei Test-SqlAvailabilityGroup e também nunca termina.
O que posso fazer para que esse comando funcione? Como descubro o que está causando o travamento?
EDIT: Parece que meu problema é com o caminho .... Este local do caminho funciona
SQLSERVER:\Sql\FooHostname\FooInstance\AvailabilityGroups\FooAg\AvailabilityReplicas\
mas então eu tento usar este local de caminho e ele falha.
SQLSERVER:\Sql\FooHostname\FooInstance\AvailabilityGroups\FooAg\AvailabilityReplicas\MainReplica
Edit2:
Temos certeza que é
<ServerName>
no final? Eu posso definir minha localização para
SQLSERVER:\Sql\FooHostname\FooInstance\AvailabiltyGroups\FooAg\AvailabilityReplicas\
bem. Quando faço um DIR para ver o que está disponível, vejo minhas duas réplicas listadas como
"FooNode1\FooInstance"
e
"FooNode2\FooInstance"
Portanto, para a parte "MainReplica" do caminho, devo substituí-la por FooNode1 ou FooNode1\FooInstance?
Os comandos relacionados aos Grupos de Disponibilidade para SQLPS exigem que você passe o caminho do provedor para a réplica ou o próprio servidor (se estiver criando o AG).
Como mostra o exemplo na documentação de ajuda :
Se você estiver usando uma instância nomeada, altere "DEFAULT" para o nome da instância.
Então, depois de alguns testes, descobri que o nome da réplica é um caso especial se você estiver lidando com instâncias nomeadas. Se você estiver lidando com uma instância nomeada, não poderá usar apenas: "SQLSERVER:\Sql\MyServer\MyInstance\AvailabilityGroups\MyAG\AvailabilityReplicas\MyServer\MyInstance"
Você receberá erros de caminho não encontrado ... aqui está uma dica de como corrigi-lo.
Por acaso, emiti este comando em uma instância nomeada com um AG:
O PSChildName e outras referências aos nomes das réplicas mostram que a barra invertida está sendo apresentada como o valor hexadecimal ASCII equivalente a "5C". Portanto, para trabalhar com instâncias nomeadas, você deve usar este formato de caminho: