Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ignez

Mirroring - Problemas após Failover

Recommended Posts

Colegas, bom dia.Estou enfrentando uma situação muito estranha, e preciso da ajuda de vocês. Temos um SQL 2000 e agora vamos montar outras duas máquinas com SQL 2005, para utilizar a funcionalidade Mirroring. Os novos servers SRV1 (principal) e SRV2 (mirror) possuem os mesmos softwares Win Srv 2003 e SQL 2005 SP2. Criei o usuário "MANDACHUVA" nos SRV1 e SRV2, a partir de um script que eu gerei no SQL 2000. Depois, fiz um BKP do BD CADASTRO no SQL2000 e restaurei no SRV1. No SRV1, alterei o recovery para FULL, confirmei que o usuário MANDACHUVA tinha acesso ao BD e fiz dois bkps: um FULL e um LOG. Restarei os bkps no SRV2 com NORECOVERY, preparando o Mirroring.Fiz a configuração do Mirroring no SRV1 e coloquei o Mirror no ar. Criei uma conexão SQLNativeClient para este BD e testei na aplicação, alterando alguns registros. Funcionou corretamente. Porém, quando forço o failover, e o SRV2 passa a ser o principal, acontece o problema. O usuário MANDACHUVA perde as permissões de conexão com o BD. Consigo criar uma conexão no Object Explorer usando o MANDACHUVA, expandir o BD Master e visualizar suas tabelas, mas o BD CADASTRO fica inacessível. Se eu abro as propriedades do usuário e tento associá-lo ao BD, o SQL informa que a associação já existe.Será que alguém sabe o que está acontecendo? Agradeço qualquer dica que possam me passar.Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colegas, bom dia!

 

Eu postei o problema, agora vou postar a solução! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

O que faltou fazer foi transferir os logins do servidor principal para o servidor mirror.

 

Quando trabalhamos com um banco de dados que utiliza o Mirror, devemos ter em mente que todos os objetos tratados por este banco, ou que o utilizam, devem existir nos dois servidores – principal e mirror. No caso dos Logins de Usuário, simplesmente criá-los no servidor mirror não é suficiente, uma vez que seu identificador (SID) será diferente do SID do login no servidor principal. Com isso, na ocorrência de um Failover (servidor mirror assumindo o papel de principal), o login não é reconhecido pela conexão ODBC, e perdemos a conexão com o banco de dados.

 

Para resolver essa situação, é necessário transferir os logins do servidor SQL 2000 para o SQL 2005, utilizando o SQL Server Integration Services (SSIS). Para que a migração dos logins ocorra sem problemas, é interessante alterar o banco de dados padrão do login para MASTER e transferir o login para o servidor destino. Depois da transferência, não esquecer de retornar o banco de dados padrão para o login do servidor origem.

 

O procedimento é:

1.Abra o SQL Server Business Intelligence Studio (no grupo de programas do SQL Server 2005).

2.Crie um novo pacote SSIS.

3.Inclua duas conexões SMOServer Connection managers, uma para o servidor SQL 2000 e outra para o servidor SQL 2005.

4.Arraste a tarefa Transfer Logins Task do Toolbox e dê um clique duplo para abrir a tela de propriedades. Ou então, botão direito sobre a tarefa e selecione Edit.

5.Na página General, informe o nome e a descrição do pacote.

6.Na página Logins:

a.Selecione as conexões de origem (Source) e destino (Destination).

b.Em LoginList, clique no botão à direita do box para exibir a lista de logins a transferir. Selecione os logins que devem ser exportados para o SQL 2005.

c.Em If Object Exists, defina o que fazer se o objeto já existe: Failtask (falha na tarefa), Overwrite (sobrescrever) ou Skip (pular).

d.Em CopySid, defina se o SID dos logins deve ser copiado. Selecione TRUE. Este item é muito importante.

7.Clique em OK para fechar o editor.

8.Execute a tarefa. Quando o pacote é executado com sucesso, ele é exibido com fundo verde.

 

Ao concluir a transferência de logins, conecte-se ao servidor destino no SQL Server Management Studio. Expanda o grupo Security / Logins. Todos os logins selecionados na tarefa aparecem na lista. Observe que o login está desativado. É necessário ativar o login e alterar a senha atual para a mesma senha do servidor origem (tanto no servidor PRINCIPAL como no MIRROR). Por uma questão de segurança, esta tarefa associa uma senha randômica ao login.

 

Depois de ajustar a senha, crie um usuário no banco de dados principal, utilizando este login. O usuário também é criado no BD mirror. Feito este procedimento, o login está pronto para ser utilizado por uma conexão ODBC e acessar o banco de dados utilizando o Mirror.

 

Qualquer dúvida, estou à disposição.

 

Até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.