SQL Server 2005 Express - ошибка после клонирования машины - PullRequest
1 голос
/ 20 января 2012

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

Я переименовал имя хоста исходного компьютера, поэтому новый компьютер работает под управлением ASP.NET и SQL Server 2005 (Express), а веб-сайт на базе базы данных (только для интрасети) теперь находится в резервном состоянии и работает, но мыПолучается ошибка 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.Если кто-нибудь сможет мне помочь, вы действительно спасете мой бекон, так как это затянется на пару дней.

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 20 января 2012

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

  • после клонирования необходимо сбросить SID - отметьте ссылку
  • sql распознает пользователей по их id / guid, поэтому удалите всех пользователей с сервера / базы данных sql и добавьте их с нуля
0 голосов
/ 23 января 2012

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

0 голосов
/ 20 января 2012

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

SELECT @@SERVERNAME

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

sp_dropserver 'old_host_name'
GO
sp_addserver 'new_host_name', local
GO
...