Как переименовать компьютер с MS SQL Server

При установке Microsoft SQL Server, внутреннее имя экземпляра SQL сервера создается на основании текущего имени хоста. Однако, при переименовании компьютера/сервера, имя SQL сервера в метаданных (хранится в sys.servers ) не обновляется автоматически, в результате чего при работе с SQL могут возникать разные проблемы. В этой инструкции мы покажем, как корректно обновить метаданные в SQL и изменить имя сервера без полной переустановки MSSQL. Инструкция применима для отдельно стоящего (не кластерного) SQL Server версий от MS SQL 2000 до 2012.

Совет . Можно сменить только имя севера, изменить имя экземпляра (инстанса) SQL Server без переустановки нельзя.

Откройте консоль SQL Server Management Studio и с помощью следующего запроса проверьте текущее имя хоста и имя инстанса SQL:

Select @@ServerName ServerName, Host_name() HostName

Как переименовать компьютер с MS SQL Server

Как вы видите:

  • Имя сервера (HostName): DESKTOP-V2OE3P0
  • Полное имя экземпляра SQL (ServerName): DESKTOP-V2OE3P0SQLDB

Переименуем имя компьютер и перезагрузим его:

Rename-Computer -NewName Sql-Srv1 -Restart

Совет . Имя компьютера можно сменить и из свойств My Computer.

После перезагрузки попробуйте подключится к старому имени сервера SQL: DESKTOP-V2OE3P0SQLDB. Появится ошибка, ведь имя сервера изменилось.

Как переименовать компьютер с MS SQL Server

Cannot connect to DESKTOP-V2OE3P0SQLDB.
A network-related or Instant-specific error occurred when establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interface, error: 26 – Error Locating Server/Instance Specified) (Microsoft SQL Server)

Еще раз проверим имя хоста и имя инстанса:

Select @@ServerName ServerName, Host_name() HostName

Как переименовать компьютер с MS SQL Server

В данном случае имя инстанса не соответствует имени компьютера и ссылается на старое имя компьютера DESKTOP-V2OE3P0.

Чтобы изменить имя для именованного экземпляра SQL, выполните следующую команду TSQL.

Удалить старое имя:

sp_dropserver "DESKTOP-V2OE3P0SQLDB";
Go

Добавим новое имя:

sp_addserver "Sql-Srv1SQLDB", local;
GO

Как переименовать компьютер с MS SQL Server

Если нужно сменить имя сервера у дефолтного экземпляра SQL Server команда такая:

sp_dropserver ″OldName″;
GO
sp_addserver ″NewName″, local;
GO

Дополнительные шаги

Если при выполнении команды sp_dropserver появится ошибка:

Msg 15190, Level 16, State 1, Procedure sp_dropserver, Line 56

Скорее всего, имеются удаленные подключения к серверу DESKTOP-V2OE3P0. Сбросить их можно такими командами. Для дефолтного инстанса:

sp_dropremotelogin DESKTOP-V2OE3P0;
GO

Для именованного:

sp_dropremotelogin DESKTOP-V2OE3P0SQLDB;
GO

Проверим, что имя сервера в метаданных обновилось:

SELECT @@SERVERNAME AS ‘ServerName’

Как переименовать компьютер с MS SQL Server

SELECT * FROM SYS.SERVERS

Как переименовать компьютер с MS SQL Server

Как вы видите, имя сервера изменилось. Осталось перезапустить службу SQL Server:

net stop MSSQL$SQLDB && net start MSSQL$SQLDB

Как переименовать компьютер с MS SQL Server

Важно!

  • Этот способ подойдет только для переименования отдельностоящего SQL сервера. Для переименования SQL Server в кластере Failover Cluster нужно использовать консоль Cluster Management.
  • Нельзя изменить имя сервера, участвующего в репликации или зеркалировании
  • Если установлены службы отчетов Reporting services, после переименования они будут недоступны (https://msdn.microsoft.com/en-us/library/ms345235.aspx)

EnglishRussianUkrainian