Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como anexar MDF sem arquivo de log?


Para sua situação inicial, parece que você tentou algo assim (ou o que a GUI prepara para você quando você passa pelas caixas de diálogo):
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;

No entanto, este método requer um mdf arquivo e um ldf Arquivo. Caso contrário, você receberá uma mensagem de erro semelhante a:

Agora, existe uma maneira de prosseguir mesmo se você tiver apenas o mdf Arquivo. Supondo que você tenha um mdf arquivo que foi devidamente desanexado do SQL Server, você poderá anexar o arquivo mdf arquivo sem um arquivo de log usando a seguinte sintaxe:
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;

No entanto, parece que no seu caso, o arquivo não foi desanexado corretamente do SQL Server:

Existem várias explicações possíveis, incluindo as mencionadas na mensagem de erro. Talvez ele tenha sido recuperado de alguma sombra SAN inválida, ou desanexado enquanto somente leitura, ou recuperado após o SQL Server ou o sistema subjacente travar, ou corrompido durante a cópia/download, ou sabe-se lá o que mais.

Você precisará voltar ao suporte do Yaf ou ao suporte do provedor de serviços para ver se há backups adequados disponível ou, na falta disso, cópias alternativas do mdf Arquivo. Lembre-se também de que nenhum de nós sabe realmente o que é Yaf ou tem alguma maneira de verificar de qual Yaf você está falando.

Caso contrário, parece que você está sem sorte, pois este mdf específico arquivo é inválido e, portanto, não o levará muito longe.

É exatamente por isso que as abordagens de desanexação/anexação e/ou cópia de arquivo no nível do O/S não são métodos muito úteis de backup (ou migração, aliás) para o SQL Server. Você precisa de um plano de backup/recuperação adequado, o que significa fazer backups completos/dif/log adequados para sua tolerância à perda de dados. E desanexar um banco de dados é quase sempre uma ideia inferior - quando algo acontece com o mdf arquivo durante ou após a separação, agora você tem ZERO cópias do seu banco de dados.