Назад | Перейти на главную страницу

Как переименовать экземпляр SQL Server 2008?

Как я могу переименовать экземпляр SQL Server 2008 без переустановки?

Например, если база данных указана как «MySQLServer \ MSSQL2008», как я могу переименовать ее в «MySQLServer \ SQL2008»?

Не думаю, что переименовать без установки возможно.

От имени остались следы в нескольких внутренних базах данных, таких как репликация, и позже вы можете обнаружить ошибки.

Если вы можете, если у вас нет более одного экземпляра, вам лучше переустановить, а затем снова импортировать все свои базы данных.

Я знаю, что этот сценарий повсеместно распространен в сети, но всякий раз, когда я искал его в Google, я придумывал тщательно продуманные хранимые процедуры, которые мне не подходят - так что вот команды, необходимые для переименования экземпляра SQL Server для потомков:

  • Получите текущее имя экземпляра SQL Server для последующего сравнения.
    SELECT @@servername
  • Удалите сервер из списка известных удаленных и связанных серверов на локальном экземпляре SQL Server.
    EXEC master.dbo.sp_dropserver ‘[SERVER NAME]‘
  • Определите имя локального экземпляра SQL Server.
    EXEC master.dbo.sp_addserver ‘[NEW SERVER NAME]‘, ‘local’
  • Получите новое имя экземпляра SQL Server для сравнения. SELECT @@servername

И несколько примечаний, касающихся их использования:
sp_dropserver:

  1. Эта хранимая процедура может удалять как удаленные, так и связанные серверы;
  2. Использование параметра droplogins указывает, что соответствующие учетные записи удаленного и связанного сервера для [ИМЯ СЕРВЕРА] также должны быть удалены.

sp_addserver:

  1. Чтобы определить связанный сервер, используйте процедуру sp_addlinkedserver (так как эта функция будет устаревать в версии выше SQL Server 2005);
  2. sp_addserver нельзя использовать внутри пользовательской транзакции.

Я бы также рекомендовал следующее при переименовании SQL Server:
Если вы выполняете эту задачу как часть переименования машины, сначала переименуйте машину, а затем переименуйте SQL Server. После переименования SQL Server выполните полный перезапуск SQLServer, включая все зависимые службы.

Я получил эту информацию по ссылке ниже:

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

Замечу, что вы можете добавить «псевдоним» и использовать его под обоими именами:

select @@servername отобразит новое имя, но имя сервера в ERRORLOG покажет старое имя, и вы не сможете подключиться с использованием нового имени.

Единственное решение - переустановить.

Этот блог, кажется, показывает, что это довольно просто.

http://www.modhul.com/2008/01/15/renaming-a-sql-server-instance/

Вы хотели бы использовать ALTER DATABASE.

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

В этой ситуации, для вашего примера выше, я бы попробовал:

ALTER DATABASE MSSQL2008 MODIFY NAME = 'SQL2008'

Удачи!