2012-01-20 2 views
1

Чтобы помочь одному из наших отделов, я клонировал машину, которая была на последних ногах, и на самом деле содержит важные данные. План заключается в том, чтобы как можно скорее перейти на VMware VM, но тем временем я клонировал машину на другой компьютер для тестирования, среди прочего.SQL Server 2005 Express - ошибка после клонирования машины

Я переименовал имя хоста оригинальной машины, поэтому новая машина работает ASP.NET и SQL Server 2005 (Express) и веб-сайт на основе баз данных (Intranet-только) теперь обратно и работает, но мы «Ошибка получения 4200 с ошибкой ODBC.

При проверке просмотра событий есть следующее сообщение:

Error in Event viewer application log

Однако, кажется, что SQL сервер все еще видит локальные учетные записи как при гораздо более старшего имени хоста (смотрите ниже :)

old hostname held by SQL server

Если я попытаюсь добавить пользователя «CURRENTHOSTNAME \ ASPNET» в запрашиваемую базу данных, он видит только старое имя хоста. Это то, что вызывает мою проблему? Я не уверен.

Я знаю, что для работы IIS в первую очередь мне нужно было сделать «aspnet_reg.exe -ga CURRENTHOSTNAME \ ASPNET», и это исправило мою первую проблему, но эта вторая меня сильно озарила.

Сторонняя компания, поставляющая программное обеспечение, очень медленно помогает в этом. Я обычно делаю PHP & MySQL, поэтому я мало знаю о Microsoft SQL. Если кто-нибудь может мне помочь, ты действительно будешь спасать мой бекон, поскольку это тянет на пару дней.

Заранее благодарен!

ответ

0

Хорошо это, кажется, теперь исправлено - я заново добавил NEWHOSTNAME \ ASPNET к безопасности \ Логинам под «Microsoft среды SQL Server Management Studio Express», а затем она появилась под Databases \ MyDatabase \ Security \ Users ", или я смог добавить его в любом случае (не могу вспомнить) - не уверен, переименовывает ли сервер под SELECT @@SERVERNAME имеет значение, но эта ошибка исправлена ​​в любом случае

0

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

SELECT @@SERVERNAME 

Если да, то старое имя компьютера до сих пор хранятся в sys.servers таблицы. Вы могли бы просто следовать инструкциям Microsoft, в переименовании, который просто работает несколько хранимых процедуры:

sp_dropserver 'old_host_name' 
GO 
sp_addserver 'new_host_name', local 
GO 
+0

Я сделал это и перезагрузился, и теперь, когда я SELECT @@ SERVERNAME, я получаю NULL – TheDavil

+0

Нет, я сделал это неправильно, сбросил его снова, перезапустил SQL-сервер, @ @SERVERNAME теперь корректно. основная проблема теперь связана с пользователями. Он по-прежнему говорит «login failed for« NEWHOSTNAME \ ASPNET »- поэтому я попытаюсь выяснить, как сортировать пользователей на SQL – TheDavil

0

клонирования машины вы открываете большую банку с червями. Мое предложение состояло в том, чтобы делать резервные копии только данных и восстанавливать их на новый компьютер со свежими установками всего.Но в вашем случае, есть две вещи, которые я бы попробовать:

  • после клонирования необходимо сбросить SID - проверить это link
  • SQL распознает пользователей по их идентификаторам/GUID, поэтому удаление всех пользователей с сервера SQL/базы данных и добавить их с нуля
+0

Я не эксперт по этому вопросу, но я постараюсь сделать то же самое. Спасибо (EDIT) - извините, я забыл упомянуть, что я уже запускал newsid до того, как написал это сообщение, это всего лишь второй бит, который мне, возможно, придется сделать. – TheDavil

Смежные вопросы