Aplica-se A
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

Sintomas

Considere o seguinte cenário:

  • Crie uma base de dados no Microsoft SQL Server 2008 R2.

  • Atualize o nome lógico da base de dados com a instrução ALTER DATABASE.

  • Efetua uma cópia de segurança completa da base de dados. Nota É gerado um ficheiro de cópia de segurança completo da base de dados após a cópia de segurança ser efetuada.

  • Tenta restaurar a base de dados a partir do ficheiro de cópia de segurança da base de dados.

Neste cenário, recebe a seguinte mensagem de erro:

Msg 3234, Level 16, State 2, Line 1Logical file '<logical file name>' is not part of database '<database name>'. Utilize RESTORE FILELISTONLY para listar os nomes de ficheiro lógicos.O Msg 3013, Nível 16, Estado 1, Base de Dados DE RESTAURO da Linha 1está a terminar de forma anormal.

Se utilizar a instrução RESTORE FILELISTONLY para verificar o ficheiro de cópia de segurança, verá que o nome de ficheiro lógico que atualizou está danificado. O último caráter do nome de ficheiro lógico é truncado. Por exemplo, tenta atualizar o nome lógico de uma base de dados para DB_modified. No entanto, é alterado incorretamente para DB_modifie no ficheiro de cópia de segurança.Nota Este problema não ocorre se reiniciar o serviço SQL Server após a atualização do nome do ficheiro lógico.

Resolução

Informações de atualização cumulativa

SQL Server 2008 R2

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 6. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

2489376 Pacote de Atualização Cumulativa 6 para SQL Server 2008 R2 Nota Uma vez que as compilações são cumulativas, cada nova versão de correção contém todas as correções e todas as correções de segurança incluídas na versão de correção do SQL Server 2008 R2 anterior. Recomendamos que considere aplicar a versão de correção mais recente que contém esta correção. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

981356 As compilações SQL Server R2 de 2008 que foram lançadas após o lançamento do SQL Server 2008 R2

Informações de correção

Está disponível uma correção suportada da Microsoft. No entanto, esta correção destina-se a corrigir apenas o problema descrito neste artigo. Aplique esta correção apenas a sistemas com o problema descrito neste artigo. Esta correção poderá receber testes adicionais. Por conseguinte, se não for gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contém esta correção.Se a correção estiver disponível para transferência, existe uma secção "Transferência de correção disponível" na parte superior deste artigo da Base de Dados de Conhecimento. Se esta secção não for apresentada, contacte o Suporte ao Cliente e o Suporte da Microsoft para obter a correção. Nota Se ocorrerem problemas adicionais ou se for necessária alguma resolução de problemas, poderá ter de criar um pedido de serviço separado. Os custos de suporte habituais serão aplicados a perguntas e problemas de suporte adicionais que não se qualificam para esta correção específica. Para obter uma lista completa dos números de telefone do Suporte ao Cliente e suporte da Microsoft ou para criar um pedido de serviço separado, visite o seguinte site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota O formulário "Transferência de correção disponível" apresenta os idiomas para os quais a correção está disponível. Se não vir o seu idioma, é porque não está disponível uma correção para esse idioma.

Pré-requisitos

Para aplicar esta correção, tem de ter o Microsoft SQL Server 2008 R2 instalado.

Requisito de reinício

Não tem de reiniciar o computador depois de aplicar esta correção.

Informações sobre substituição de correções

Esta correção não substitui qualquer outra correção.

Informações do ficheiro

A versão inglesa desta correção tem os atributos de ficheiro listados na tabela que se segue (ou atributos de ficheiro posteriores). As datas e horas destes ficheiros estão listadas no formato de Hora Universal Coordenada (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na hora local. Para encontrar a diferença entre a hora UTC e a hora local, utilize o separador Fuso Horário no item Data e Hora no Painel de Controlo.

Instância Principal dos Serviços de Base de Dados de 32 bits SQL Server 2008 R2

Nome de ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

atxcore.dll

2009.100.1755.0

26464

24-Dez-10

0:33

x86

datacollectorcontroller.dll

2009.100.1755.0

135520

24-Dez-10

0:33

x86

etwcls.mof

Não aplicável

1116328

23-Dez-10

3:54

Não aplicável

instmsdb.sql

Não aplicável

2241260

22-Dez-10

20:49

Não aplicável

mssqlsystemresource.ldf

Não aplicável

524288

22-Dez-10

22:52

Não aplicável

mssqlsystemresource.mdf

Não aplicável

63569920

22-Dez-10

22:52

Não aplicável

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

13664

24-Dez-10

0:31

x86

sqlaccess.dll

2009.100.1755.0

415584

24-Dez-10

0:29

x86

sqlagent.exe

2009.100.1755.0

367968

24-Dez-10

0:34

x86

sqlagent100_msdb_upgrade.sql

Não aplicável

2371245

23-Dez-10

3:53

Não aplicável

sqlos.dll

2009.100.1755.0

14688

24-Dez-10

0:22

x86

sqlscriptdowngrade.dll

2009.100.1755.0

14688

24-Dez-10

0:21

x86

sqlscriptupgrade.dll

2009.100.1755.0

4611424

24-Dez-10

0:21

x86

sqlservr.exe

2009.100.1755.0

42904928

24-Dez-10

0:34

x86

sqsrvres.dll

2009.100.1755.0

89952

24-Dez-10

0:21

x86

Instância Principal dos Serviços de Base de Dados de 64 bits SQL Server 2008 R2

Nome de ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

atxcore.dll

2009.100.1755.0

31584

23-Dez-10

23:40

x64

datacollectorcontroller.dll

2009.100.1755.0

262496

23-Dez-10

23:40

x64

etwcls.mof

Não aplicável

1116328

23-Dez-10

3:54

Não aplicável

instmsdb.sql

Não aplicável

2241260

22-Dez-10

20:49

Não aplicável

mssqlsystemresource.ldf

Não aplicável

524288

22-Dez-10

22:52

Não aplicável

mssqlsystemresource.mdf

Não aplicável

63569920

22-Dez-10

22:52

Não aplicável

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

14176

23-Dez-10

23:40

x64

sqlaccess.dll

2009.100.1755.0

403296

23-Dez-10

23:38

x86

sqlagent.exe

2009.100.1755.0

428384

23-Dez-10

23:40

x64

sqlagent100_msdb_upgrade.sql

Não aplicável

2371245

23-Dez-10

3:53

Não aplicável

sqlos.dll

2009.100.1755.0

15712

23-Dez-10

23:37

x64

sqlscriptdowngrade.dll

2009.100.1755.0

15712

23-Dez-10

23:37

x64

sqlscriptupgrade.dll

2009.100.1755.0

4610912

23-Dez-10

23:37

x64

sqlservr.exe

2009.100.1755.0

61957984

23-Dez-10

23:40

x64

sqsrvres.dll

2009.100.1755.0

105824

23-Dez-10

23:37

x64

Itanium-architecture SQL Server 2008 R2 Database Services Core Instance

Nome de ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

atxcore.dll

2009.100.1755.0

63328

23-Dez-10

23:05

ia64

datacollectorcontroller.dll

2009.100.1755.0

477024

23-Dez-10

23:05

ia64

etwcls.mof

Não aplicável

1116328

23-Dez-10

3:54

Não aplicável

instmsdb.sql

Não aplicável

2241260

22-Dez-10

20:49

Não aplicável

mssqlsystemresource.ldf

Não aplicável

524288

22-Dez-10

22:52

Não aplicável

mssqlsystemresource.mdf

Não aplicável

63569920

22-Dez-10

22:52

Não aplicável

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

19296

23-Dez-10

23:05

ia64

sqlaccess.dll

2009.100.1755.0

392032

23-Dez-10

23:01

x86

sqlagent.exe

2009.100.1755.0

1205600

23-Dez-10

23:09

ia64

sqlagent100_msdb_upgrade.sql

Não aplicável

2371245

23-Dez-10

3:53

Não aplicável

sqlos.dll

2009.100.1755.0

22368

23-Dez-10

22:56

ia64

sqlscriptdowngrade.dll

2009.100.1755.0

20832

23-Dez-10

22:56

ia64

sqlscriptupgrade.dll

2009.100.1755.0

4617056

23-Dez-10

22:56

ia64

sqlservr.exe

2009.100.1755.0

121762656

23-Dez-10

23:09

ia64

sqsrvres.dll

2009.100.1755.0

188768

23-Dez-10

22:56

ia64

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Solução

Para resolver este problema, utilize um dos dois métodos seguintes:

  • Depois de modificar o nome do ficheiro lógico, execute as seguintes instruções para reiniciar a base de dados:ALTER DATABASE <nome da base de dados> DEFINIR OFFLINEALTER DATABASE <nome da base de dados> SET ONLINE

  • Quando modificar o nome do ficheiro lógico, acrescente um caráter de espaço fictício no novo nome lógico. Por exemplo, se quiser alterar o nome lógico para DB_modified, utilize a seguinte instrução para modificar o nome do ficheiro lógico:ALTER DATABASE <nome da base de dados> MODIFICAR FICHEIRO (NOME=N'<nome da base de dados>', NEWNAME='DB_modified ') -- Acrescentar ' ' a NEWNAME

Referências

Para obter mais informações sobre a instrução Transact-SQL ALTER DATABASE, visite o seguinte site da Microsoft Developer Network (MSDN):

Informações gerais sobre a instrução Transact-SQL ALTER DATABASEPara obter mais informações sobre a declaração RESTORE FILELISTONLY Transact-SQL, visite o seguinte site da Microsoft Developer Network (MSDN):

Informações gerais sobre a instrução Transact-SQL RESTORE FILELISTONLY

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.