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

28

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

Например, если БД упоминается как «MySQLServer \ MSSQL2008», как я могу переименовать в «MySQLServer \ SQL2008»?

Скотт Марлоу
источник

Ответы:

31

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

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

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

Уильям Хилсум
источник
3
Уил правильно. Нет способа переименовать экземпляр. Вы должны удалить экземпляр, а затем установить новый экземпляр. (Или установите новый экземпляр, переместите базы данных в новый экземпляр, затем отключите или удалите старый экземпляр).
Мрденни
Выполнение удаления и повторной установки с именованным экземпляром на самом деле не очень сложно. просто держите каталог данных (и, возможно, каталог резервных копий) в старом экземпляре.
Джангофан
9

Я знаю, что этот сценарий вездесущ в сети, но всякий раз, когда я захожу в 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/

Чарльз Ропер
источник
1

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

введите описание изображения здесь

Jitbit
источник
0

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

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

Бен
источник
-1

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

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

EfficionDave
источник
3
но он не может переименовать каталог экземпляра. это может вызвать замешательство у некоторых людей. я не рекомендовал бы этот метод, даже если это легко.
Джангофан
-4

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

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

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

ALTER DATABASE MSSQL2008 MODIFY NAME = 'SQL2008'

Удачи!

Николас Уэбб
источник
6
Я думаю, что это касается изменения имени базы данных, а не экземпляра сервера SQL
Уильям Хилсум
да ... я хочу переименовать экземпляр ядра сервера SQL, а не просто имя таблицы или базы данных.
Скотт Марлоу
Ты прав. И я согласен с @Wil - я не знаю, как это сделать без переустановки.
Николас Уэбб