При установці 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
Як ви бачите:
- Ім'я сервера (HostName): DESKTOP-V2OE3P0
- Повне ім'я екземпляра SQL (ServerName): DESKTOP-V2OE3P0 \ SQLDB
Перейменуємо ім'я комп'ютер і перезавантажити його:
Rename-Computer -NewName Sql-Srv1 -Restart
Після перезавантаження спробуйте підключиться до старого імені сервера SQL: DESKTOP-V2OE3P0 \ SQLDB. З'явиться помилка, адже ім'я сервера змінилося.
Can not connect to DESKTOP-V2OE3P0 \ SQLDB.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
В даному випадку ім'я інстанси не збігається з назвою комп'ютера і посилається на старе ім'я комп'ютера DESKTOP-V2OE3P0.
Щоб змінити ім'я для іменованого екземпляра SQL, виконайте наступну команду TSQL.
Видалити старе ім'я:
sp_dropserver "DESKTOP-V2OE3P0 \ SQLDB";
Go
Додамо нове ім'я:
sp_addserver "Sql-Srv1 \ SQLDB", local;
GO
Якщо потрібно змінити ім'я сервера у дефолтного примірника 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-V2OE3P0 \ SQLDB;
GO
Перевіримо, що ім'я сервера в метаданих оновилося:
SELECT @@ SERVERNAME AS 'ServerName'
SELECT * FROM SYS.SERVERS
Як ви бачите, ім'я сервера змінилося. Залишилося перезапустити службу SQL Server:
net stop MSSQL $ SQLDB && net start MSSQL $ SQLDB
важливо!
- Цей спосіб підійде тільки для перейменування отдельностоящего SQL сервера. Для перейменування SQL Server в кластері Failover Cluster потрібно використовувати консоль Cluster Management.
- Не можна змінити ім'я сервера, який бере участь в реплікації або створення дзеркал
- Якщо встановлені служби звітів Reporting services, після перейменування вони будуть недоступні (https://msdn.microsoft.com/en-us/library/ms345235.aspx)