Применяется к
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup

Проблемы

Рассмотрим следующий сценарий.

  • Вы создаете базу данных в Microsoft SQL Server 2008 R2.

  • Логическое имя базы данных обновляется с помощью инструкции ALTER DATABASE.

  • Выполняется полное резервное копирование базы данных. Примечание. После выполнения резервного копирования создается полный файл резервной копии базы данных.

  • Вы пытаетесь восстановить базу данных из файла резервной копии базы данных.

В этом сценарии появляется следующее сообщение об ошибке:

Msg 3234, Level 16, State 2, Line 1Logical file '<имя логического файла>' не является частью базы данных '<имя базы данных>'. Используйте команду RESTORE FILELISTONLY, чтобы получить список логических имен файлов.Msg 3013, Level 16, State 1, Line 1RESTORE DATABASE ненормально завершается.

При использовании инструкции RESTORE FILELISTONLY для проверка файла резервной копии вы обнаружите, что обновленное логическое имя файла повреждено. Последний символ имени логического файла усечен. Например, вы пытаетесь обновить логическое имя базы данных до DB_modified. Однако он неправильно меняется на DB_modifie в файле резервной копии.Примечание. Эта проблема не возникает при перезапуске службы SQL Server после обновления имени логического файла.

Решение

Сведения о накопительном пакете обновления

SQL Server 2008 R2

Исправление этой проблемы было впервые выпущено в накопительном обновлении 6. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:

2489376 Накопительный пакет обновления 6 для SQL Server 2008 R2 Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется применить последний выпуск исправления, содержащий это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

Сведения об исправлении

Поддерживаемое исправление доступно в корпорации Майкрософт. Однако это исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте это исправление только к системам, в которых возникла проблема, описанная в этой статье. Это исправление может пройти дополнительное тестирование. Поэтому, если эта проблема не затрагивает вас, рекомендуется дождаться следующего обновления программного обеспечения, содержащего это исправление.Если исправление доступно для скачивания, в верхней части этой статьи базы знаний есть раздел "Доступно скачивание исправлений". Если этот раздел не отображается, обратитесь в службу поддержки майкрософт, чтобы получить исправление. Примечание. Если возникают дополнительные проблемы или требуется устранить неполадки, может потребоваться создать отдельный запрос на обслуживание. Обычные затраты на поддержку будут применяться к дополнительным вопросам и проблемам, которые не относятся к данному исправлению. Полный список телефонных номеров службы поддержки и поддержки Майкрософт или создание отдельного запроса на обслуживание см. на следующем веб-сайте Майкрософт:

http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "Доступно скачивание исправлений" отображаются языки, для которых доступно исправление. Если язык не отображается, это связано с тем, что исправление недоступно для этого языка.

Предварительные условия

Чтобы применить это исправление, необходимо установить Microsoft SQL Server 2008 R2.

Требование перезагрузки

После применения этого исправления не нужно перезагружать компьютер.

Сведения о замене исправлений

Это исправление не заменяет никаких других исправлений.

Сведения о файлах

Английская версия исправления содержит файлы с атрибутами, указанными в следующей таблице, или более поздние. Даты и время для файлов указаны в формате времени UTC. При просмотре сведений о файлах выполняется перевод соответствующих значений в местное время. Чтобы узнать разницу между временем UTC и местным временем, откройте вкладку Часовой пояс элемента Дата и время панели управления.

32-разрядная версия SQL Server 2008 R2 Database Services Core Instance

Имя файла

Версия файла

Размер

дата

Время

Платформа

atxcore.dll

2009.100.1755.0

26464

24 декабря 10

0:33

x86

datacollectorcontroller.dll

2009.100.1755.0

135520

24 декабря 10

0:33

x86

etwcls.mof

Неприменимо

1116328

23 декабря 10

3:54

Неприменимо

instmsdb.sql

Неприменимо

2241260

22 декабря 10

20:49

Неприменимо

mssqlsystemresource.ldf

Неприменимо

524288

22 декабря 10

22:52

Неприменимо

mssqlsystemresource.mdf

Неприменимо

63569920

22 декабря 10

22:52

Неприменимо

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

13664

24 декабря 10

0:31

x86

sqlaccess.dll

2009.100.1755.0

415584

24 декабря 10

0:29

x86

sqlagent.exe

2009.100.1755.0

367968

24 декабря 10

0:34

x86

sqlagent100_msdb_upgrade.sql

Неприменимо

2371245

23 декабря 10

3:53

Неприменимо

sqlos.dll

2009.100.1755.0

14688

24 декабря 10

0:22

x86

sqlscriptdowngrade.dll

2009.100.1755.0

14688

24 декабря 10

0:21

x86

sqlscriptupgrade.dll

2009.100.1755.0

4611424

24 декабря 10

0:21

x86

sqlservr.exe

2009.100.1755.0

42904928

24 декабря 10

0:34

x86

sqsrvres.dll

2009.100.1755.0

89952

24 декабря 10

0:21

x86

64-разрядная версия SQL Server 2008 R2 Database Services Core Instance

Имя файла

Версия файла

Размер

дата

Время

Платформа

atxcore.dll

2009.100.1755.0

31584

23 декабря 10

23:40

x64

datacollectorcontroller.dll

2009.100.1755.0

262496

23 декабря 10

23:40

x64

etwcls.mof

Неприменимо

1116328

23 декабря 10

3:54

Неприменимо

instmsdb.sql

Неприменимо

2241260

22 декабря 10

20:49

Неприменимо

mssqlsystemresource.ldf

Неприменимо

524288

22 декабря 10

22:52

Неприменимо

mssqlsystemresource.mdf

Неприменимо

63569920

22 декабря 10

22:52

Неприменимо

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

14176

23 декабря 10

23:40

x64

sqlaccess.dll

2009.100.1755.0

403296

23 декабря 10

23:38

x86

sqlagent.exe

2009.100.1755.0

428384

23 декабря 10

23:40

x64

sqlagent100_msdb_upgrade.sql

Неприменимо

2371245

23 декабря 10

3:53

Неприменимо

sqlos.dll

2009.100.1755.0

15712

23 декабря 10

23:37

x64

sqlscriptdowngrade.dll

2009.100.1755.0

15712

23 декабря 10

23:37

x64

sqlscriptupgrade.dll

2009.100.1755.0

4610912

23 декабря 10

23:37

x64

sqlservr.exe

2009.100.1755.0

61957984

23 декабря 10

23:40

x64

sqsrvres.dll

2009.100.1755.0

105824

23 декабря 10

23:37

x64

Itanium-architecture SQL Server 2008 R2 Database Services Core Instance

Имя файла

Версия файла

Размер

дата

Время

Платформа

atxcore.dll

2009.100.1755.0

63328

23 декабря 10

23:05

ia64

datacollectorcontroller.dll

2009.100.1755.0

477024

23 декабря 10

23:05

ia64

etwcls.mof

Неприменимо

1116328

23 декабря 10

3:54

Неприменимо

instmsdb.sql

Неприменимо

2241260

22 декабря 10

20:49

Неприменимо

mssqlsystemresource.ldf

Неприменимо

524288

22 декабря 10

22:52

Неприменимо

mssqlsystemresource.mdf

Неприменимо

63569920

22 декабря 10

22:52

Неприменимо

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

19296

23 декабря 10

23:05

ia64

sqlaccess.dll

2009.100.1755.0

392032

23 декабря 10

23:01

x86

sqlagent.exe

2009.100.1755.0

1205600

23 декабря 10

23:09

ia64

sqlagent100_msdb_upgrade.sql

Неприменимо

2371245

23 декабря 10

3:53

Неприменимо

sqlos.dll

2009.100.1755.0

22368

23 декабря 10

22:56

ia64

sqlscriptdowngrade.dll

2009.100.1755.0

20832

23 декабря 10

22:56

ia64

sqlscriptupgrade.dll

2009.100.1755.0

4617056

23 декабря 10

22:56

ia64

sqlservr.exe

2009.100.1755.0

121762656

23 декабря 10

23:09

ia64

sqsrvres.dll

2009.100.1755.0

188768

23 декабря 10

22:56

ia64

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Обходное решение

Чтобы обойти эту проблему, используйте один из следующих двух методов:

  • После изменения имени логического файла выполните следующие инструкции, чтобы перезапустить базу данных:ALTER DATABASE <имя базы данных> SET OFFLINEALTER DATABASE <имя базы данных> SET ONLINE

  • При изменении имени логического файла добавьте в новое логическое имя фиктивный пробел. Например, если вы хотите изменить логическое имя на DB_modified, используйте следующую инструкцию, чтобы изменить логическое имя файла:ALTER DATABASE <имя базы данных> MODIFY FILE (NAME=N'<имя базы данных>', NEWNAME='DB_modified ') -- Добавить ' ' в NEWNAME

Ссылки

Дополнительные сведения об инструкции Transact-SQL ALTER DATABASE см. на следующем веб-сайте Microsoft Developer Network (MSDN):

Общие сведения об инструкции Transact-SQL ALTER DATABASEДополнительные сведения об инструкции RESTORE FILELISTONLY Transact-SQL см. на следующем веб-сайте Microsoft Developer Network (MSDN):

Общие сведения об инструкции Transact-SQL RESTORE FILELISTONLY

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.