locked
Unificação de bases. RRS feed

  • Pergunta

  • Bom Dia,

    Galera, estou precisando unificar algumas bases de dados que hoje estão em servidores diferentes, para apenas um servidor.

    Gostaria de saber qual o procedimento mais recomendado, visto que não posso voltar os bancos de sistema master, msdb etc, porque senão mataria todos os usuários e jobs que já tenho hoje no servidor onde irá armazenar todos os bancos.

    Gostaria de saber a opinião de vocês, pois não posso perder os logins e jobs mas também não posso restaurar as bases de sistema.

    Abraço a todos.

    sexta-feira, 29 de dezembro de 2006 13:03

Todas as Respostas

  • Ola Alexandre,

    Voce pode transferir estas bases via Backup/Restore ou entao utilizando o Attach/Detach.

    Feito isso, as bases vao estar em um servidor unico e voce vai precisar sincronizar os usuarios destas bases com os logins do servidor. O SQL Server mantem um cadastro de login por servidor e cada vez que voce da acesso a um login para uma base, um usuario é criado na base fazendo referencia ao login do servidor. Quando voce leva um banco de um servidor para o outro, esta referencia se perde, visto que o cadastro de logins deste novo servidor é diferente do cadastro de logins do servidor antigo. Ai o usuario que esta na base fica sem a referencia do login. Uma forma de resolver isso é utilizando a rotina sp_change_users_login. O artigo:

    How to resolve permission issues when you move a database between servers that are running SQL Server

    http://support.microsoft.com/default.aspx/kb/240872

    Explica como fazer isso.

    Sobre os Jobs, voce pode utilizar o Enterprise Manager para gerar os scripts de criacao deles para transferi-los para o outro servidor. Voce pode fazer isso abrindo o Enterprise Manager, expandindo seu servidor, abrindo Management, clicando com o botao direito do Mouse em Jobs e selecionando a opcao All Tasks, Generate SQL Script.

    Caso voce queira tambem transferir os logins de um servidor para outro, o artigo abaixo possui um método para isso:

    How to transfer logins and passwords between instances of SQL Server

    http://support.microsoft.com/default.aspx/kb/240872

    Acho que isso deve resolver.

    Qualquer duvida, retorne.

    Abs

    sexta-feira, 29 de dezembro de 2006 14:13
  • Cristiano,

    Obrigado, vou fazer isso que vc recomendou.

    Só aproveitando o gancho, deixa eu te perguntar.

    Minha situação é a seguinte:

    Eu tenho algumas aplicações rodando em um servidor de nome servidor1 em cluster SQL ...O SQL está instalado como uma instância nomeada.

    Eu não consigo alterar na aplicação para que ela possa fazer as consultar em outro servidor que não seja servidor1.

    Qual é minha idéia, migrar todos os bancos para um outro servidor(servidor2 por exemplo) que não está em cluster, e deixá-lo com o mesmo nome de servidor1,porém o SQL desse servidor está instalado com uma instância local.

    Aí minha pergunta, eu consigo alterar o SQL de uma instância local para uma instância nomeada ou eu preciso reinstalar o SQL mesmo.

    Abraço .

    domingo, 31 de dezembro de 2006 10:14
  • precisa reinstalar mesmo, nao tem como mudar o nome, mais cuidado se os servidores estiverem na mesma rede, eles na podem ter nomes iguais, vc. pode contornar isso criando um alias ( configuranfo no network client utility )

     

    Abs;

    terça-feira, 2 de janeiro de 2007 09:21
  • Alexandre,

    O importante antes de qualquer procedimento para trabalhar com os seus bancos de dados é realizar um backup full de cada banco de dados em cada servidor para evitar mais perdas.

    terça-feira, 2 de janeiro de 2007 10:18
    Moderador
  • Olá Alexandre,

    Conforme o pessoal já comentou, não tem como voce alterar o nome de uma instancia do SQL. O que dá para fazer é alterar o nome do servidor. Ai se voce instalou o SQL como instancia default, o nome do SQL tambem muda. Mas depois dessa mudanca tem uma alteracao interna no SQL que voce precisa fazer para remover a referencia ao nome do servidor antigo e incluir a nova. Caso voce queira fazer isso, voce precisa executar os seguintes comandos no SQL depois de mudar o nome do servidor:

    sp_dropserver "NomeDoServidorAntigo"

    go

    sp_addserver "NomeDoServidorNovo", LOCAL

    go

    Depois reinicialize os servicos do SQL.

    Isso é para corrigir o resultado da variavel global @@SERVERNAME, dentre outras coisas.

    Abs.

    terça-feira, 2 de janeiro de 2007 11:51
  • Galera,  obrigado a todos pela ajuda.

    Já estou com um plano de ação para ser executado seguindo a orientação de vocês.

    Só tem mais uma coisa que está pegando, andei pesquisando mas não consegui encontrar algo a respeito.

    Eu consigo gerar scripts para os jobs tudo certinho, porém eu preciso também migrar os pacotes DTS para esse novo servidor e verifiquei que não posso gerar scripts para esses pacotes.

    Tem alguma forma de eu transferir esses DTS do servidor antigo para o novo servidor ?

    Abs.

    terça-feira, 2 de janeiro de 2007 19:53
  • sem problemas vc. pode salvar os DTS em arquivo e depois importar para o outro server para salvar abra o desginer va em save as selecione structured file coloque um nome e local, salve, no outro server na tree data transformation task botao direito open depois vc. selecione o arquivo salvo vai aparerer uma lista com as versoes do dts vc. seleciona a mais nova e ok. pronto o dts foi migrado.

     

    qualquer coisa retorne.

     

    Abs;

    quarta-feira, 3 de janeiro de 2007 08:57
  • Blz Colla deu certo.

    Valeu.

    quarta-feira, 3 de janeiro de 2007 10:24
  • Galera,

    Só para dar um retorno, efetuei a unificação de várias bases que estavam em servidores diferentes para um único servidor seguindo a orientação de vocês e deu tudo certo inclusive na migração de logins, DTS e jobs.

    Muito obrigado pela ajuda de todos.

    Alexandre.

    segunda-feira, 8 de janeiro de 2007 18:26