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.
Nesse cenário, a seguinte mensagem de erro é exibida:
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 marcar 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 sobre a 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 obter mais informações, clique no número abaixo para ler os artigos 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 sobre o hotfix
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.
Necessidade de reinicialização
Não tem de reiniciar o computador depois de aplicar esta correção.
Informações sobre a substituição de hotfixes
Esta correção não substitui qualquer outra correção.
Informações do arquivo
A versão em inglês deste hotfix possui os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas em UTC (Tempo Universal Coordenado). Quando você exibe as informações sobre os arquivos, elas são convertidas no horário local. Para saber a diferença entre a hora UTC e a hora local, use a guia Fuso Horário no item Data e Hora do Painel de Controle.
Instância Principal dos Serviços de Base de Dados de 32 bits SQL Server 2008 R2
|
File name |
Versão do arquivo |
Tamanho do arquivo |
Data |
Horário |
Platform |
|---|---|---|---|---|---|
|
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
|
File name |
Versão do arquivo |
Tamanho do arquivo |
Data |
Horário |
Platform |
|---|---|---|---|---|---|
|
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
|
File name |
Versão do arquivo |
Tamanho do arquivo |
Data |
Horário |
Platform |
|---|---|---|---|---|---|
|
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 |
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Solução alternativa
Para contornar esse problema, use um dos dois métodos a seguir:
-
Depois que o nome do arquivo lógico for modificado, execute as seguintes instruções para reiniciar o banco de dados:ALTER DATABASE <nome do banco de dados> SET OFFLINEALTER DATABASE <nome do banco de dados> SET ONLINE
-
Ao modificar o nome do arquivo lógico, adicione um caractere de espaço fictício no novo nome lógico. Por exemplo, se você quiser alterar o nome lógico para DB_modified, use a seguinte instrução para modificar o nome do arquivo lógico:ALTER DATABASE <nome do banco de dados> MODIFI FILE (NAME=N'<nome do banco de dados>', NEWNAME='DB_modified ') -- Append ' to NEWNAME
Referências
Para obter mais informações sobre a instrução ALTER DATABASE Transact-SQL, visite o seguinte site da MSDN (Microsoft Developer Network):
Informações gerais sobre a instrução ALTER DATABASE Transact-SQLPara obter mais informações sobre a instrução RESTORE FILELISTONLY Transact-SQL, visite o seguinte site da MSDN (Microsoft Developer Network):
Informações gerais sobre a instrução RESTORE FILELISTONLY Transact-SQL