Como renomear uma instância do SQL Server 2008?

28

Como posso renomear uma instância do SQL Server 2008 sem reinstalar?

Por exemplo, se o banco de dados for referenciado como "MySQLServer \ MSSQL2008", como posso renomear para "MySQLServer \ SQL2008"?

Scott Marlowe
fonte

Respostas:

31

Eu não acho que é possível renomear sem instalar.

Existem vestígios deixados para o nome em alguns bancos de dados internos, como replicação, e você poderá encontrar erros posteriormente.

Se puder, a menos que você tenha mais de uma instância, é melhor reinstalar e importar todos os seus bancos de dados novamente.

William Hilsum
fonte
3
Wil está correto. Não há como renomear a instância. Você precisa desinstalar a instância e instalar uma nova instância. (Ou instale a nova instância, mova os bancos de dados para a nova instância e desative ou desinstale a instância antiga).
Mrdenny 22/09/09
desinstalar e reinstalar com uma instância nomeada não é realmente muito difícil. basta manter o diretório de dados (e talvez o diretório de backups) na instância antiga.
precisa saber é o seguinte
9

Eu sei que esse script é onipresente na rede, mas sempre que procuro por ele, procuro elaborados processos armazenados que são um exagero para minhas necessidades - então, aqui estão os comandos necessários para renomear uma instância do SQL Server, para posteridade:

  • Obtenha o nome atual da instância do SQL Server para comparação posterior.
    SELECT @@servername
  • Remova o servidor da lista de servidores remotos e vinculados conhecidos na instância local do SQL Server.
    EXEC master.dbo.sp_dropserver ‘[SERVER NAME]‘
  • Defina o nome da instância local do SQL Server.
    EXEC master.dbo.sp_addserver ‘[NEW SERVER NAME]‘, ‘local’
  • Obtenha o novo nome da instância do SQL Server para comparação. SELECT @@servername

E algumas notas relacionadas ao seu uso:
sp_dropserver :

  1. Este procedimento armazenado pode remover servidores remotos e vinculados;
  2. O uso do parâmetro droplogins indica que os logons de servidor remoto e vinculado relacionados a [NOME DO SERVIDOR] também devem ser removidos.

sp_addserver :

  1. Para definir um servidor vinculado, use sp_addlinkedserver (como essa funcionalidade será depreciada na versão acima do SQL Server 2005);
  2. sp_addserver não pode ser usado dentro de uma transação definida pelo usuário.

Também recomendo o seguinte ao renomear um SQL Server:
Se você estiver executando esta tarefa como parte de uma renomeação de máquina, renomeie a máquina primeiro e depois renomeie o SQL Server. Depois de renomear o SQL Server, reinicie completamente o SQLServer, incluindo qualquer serviço dependente.

Eu obtive essas informações no link abaixo:

https://web.archive.org/web/20141116031942/http://modhul.com/2008/01/15/renaming-a-sql-server-instance/

Charles Roper
fonte
1

Apenas uma observação rápida de que você pode adicionar um "alias" e usá-lo nos dois nomes:

insira a descrição da imagem aqui

jitbit
fonte
0

select @@servername mostrará o novo nome, mas o nome do servidor em ERRORLOG mostrará o nome antigo e você não poderá se conectar usando o novo nome.

A única solução é reinstalar.

Ben
fonte
-4

Você gostaria de usar ALTER DATABASE.

http://msdn.microsoft.com/en-us/library/ms174269.aspx

Nesta situação, para o seu exemplo acima, eu tentaria:

ALTER DATABASE MSSQL2008 MODIFY NAME = 'SQL2008'

Boa sorte!

Nicolas Webb
fonte
6
Penso que esta lida com a modificação de um nome de banco de dados, em vez da instância do servidor SQL
William Hilsum
Sim ... Quero renomear a instância do mecanismo do servidor sql, não apenas um nome de tabela ou banco de dados.
21411 Scott Marlowe
Você está correto. E eu concordo com o @Wil - não conheço uma maneira de fazer isso sem reinstalar.
Nicolas Webb