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