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

SQL Server не запускается на моем 64-разрядном срезе виртуализации

Я установил SQL Server 2008 Express на 64-битный виртуальный ящик, и служба не запускается.

Глядя на журнал событий, я получаю:

Не удалось создать базу данных tempdb. Возможно, у вас недостаточно места на диске. Освободите дополнительное дисковое пространство, удалив другие файлы на диске tempdb, а затем перезапустите SQL Server. Проверьте наличие дополнительных ошибок в журнале событий, которые могут указывать на то, почему файлы tempdb не могут быть инициализированы.

Дополнительные сведения см. В центре справки и поддержки по адресу http://go.microsoft.com/fwlink/events.asp.

А также:

FileMgr :: StartLogFiles: ошибка операционной системы 2 (не удалось получить текст для этой ошибки. Причина: 1815) произошла при создании или открытии файла 'e: \ sql10_main_t \ sql \ mkmastr \ databases \ objfre \ i386 \ MSDBLog.ldf'. Диагностируйте и исправьте ошибку операционной системы и повторите операцию.

Примечание. Есть еще одна подобная ошибка для файла mdf.

Что странно, так это то, что с этим ящиком не привязан электронный диск, поэтому я не знаю, почему он пытается открыть файл отсюда. Не знаю, связано ли это с тем фактом, что это виртуальный срез, и, возможно, на хост-машине этот диск сопоставлен?

Любой совет приветствуется.

Крис.

Попробуйте следующее (имейте в виду, что я сделал это в 2005 Express, поэтому вам, возможно, придется отрегулировать по мере необходимости):

Откройте консоль и попробуйте запустить в однопользовательском режиме:

sqlsvr.exe -m -s <instance_name>

Если он запустится, вы можете открыть студию управления и попробовать следующее:

-- alter the database
ALTER DATABASE tempdb MODIFY FILE ( NAME = 'tempdev', FILENAME = 'SomeWhere\Here\tempdb.mdf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = 'templog', FILENAME = 'SomeWhere\Here\templog.ldf' )

-- ensure that it has been moved
SELECT name, physical_name as CurrentLocation, state_desc
from sys.master_files
WHERE database_id IN (DB_ID('tempdev'), DB_ID('templog')

Теперь остановите сервер sql и попробуйте перезапустить его из консоли служб. Это должен успешно начать сейчас.

Если он также сделает следующее, чтобы новые базы данных были созданы в надлежащих местах:

  1. открыто Студия управления Экспресс и войдите
  2. Щелкните правой кнопкой мыши свой сервер и выберите Свойства
  3. Нажмите Настройки базы данных
  4. Изменить по умолчанию Расположение базы данных к тому, что на вашем VPS

Это должно изменить расположение по умолчанию

Надеюсь, это поможет вам ...

Чтобы решить эту проблему, вам необходимо перестроить базу данных, используя приведенную ниже командную строку. Эта команда ДОЛЖНА запускаться из этого каталога.

C: \ Program Files \ Microsoft SQL Server \ 100 \ Setup Bootstrap \ Release

Настройка / QUIET / ACTION = REBUILDDATABASE / INSTANCENAME = InstanceName / SQLSYSADMINACCOUNTS = accounts / [SAPWD = StrongPassword]

Если вы используете аутентификацию Windows, вы можете отказаться от части команды с надежным паролем.

Настройка / QUIET / ACTION = REBUILDDATABASE / INSTANCENAME = InstanceName / SQLSYSADMINACCOUNTS = account

Вы можете узнать больше о проблеме на http://msdn.microsoft.com/en-us/library/dd207003.aspx. Надеюсь, это поможет кому-нибудь.