sql >> Database >  >> RDS >> Sqlserver

Hoe voeg ik MDF toe zonder logbestand?

Voor je beginsituatie lijkt het erop dat je zoiets hebt geprobeerd (of wat de GUI ook voor je voorbereidt als je de dialogen doorloopt):

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;

Deze methode vereist echter zowel een mdf bestand en een ldf het dossier. Anders krijg je een foutmelding die lijkt op:

Nu is er een manier om verder te gaan, zelfs als je alleen de mdf . hebt het dossier. Ervan uitgaande dat u een mdf . hebt bestand dat correct is losgekoppeld van SQL Server, moet u de mdf bestand zonder logbestand met de volgende syntaxis:

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;

Het lijkt er echter op dat in uw geval het bestand niet correct is losgekoppeld van SQL Server:

Er zijn verschillende mogelijke verklaringen, ook die vermeld in de foutmelding. Misschien is het opgehaald uit een ongeldige SAN-schaduw, of losgekoppeld terwijl het alleen-lezen was, of hersteld nadat SQL Server of het onderliggende systeem was gecrasht, of beschadigd tijdens het kopiëren/downloaden, of wie weet wat nog meer.

U moet teruggaan naar de ondersteuning van Yaf of de ondersteuning van hun serviceprovider om te zien of er juiste back-ups zijn beschikbaar of, als dat niet lukt, alternatieve exemplaren van de mdf het dossier. Houd er ook rekening mee dat niemand van ons echt weet wat Yaf is of een manier heeft om te verifiëren over welke Yaf je het hebt.

Anders lijkt het alsof je pech hebt, aangezien deze specifieke mdf bestand is ongeldig en zal je dus niet ver brengen.

Dit is precies de reden waarom de methoden voor het kopiëren van bestanden op het ontkoppelen/bijvoegen en/of O/S-niveau niet erg bruikbare methoden zijn voor back-up (of migratie, wat dat betreft) voor SQL Server. U hebt een goed back-up-/herstelplan nodig, wat inhoudt dat u de juiste volledige/diff/log-back-ups moet maken die geschikt zijn voor uw tolerantie voor gegevensverlies. En het loskoppelen van een database is bijna altijd een inferieur idee - als er iets gebeurt met de mdf bestand tijdens of na het loskoppelen, heb je nu ZERO kopieën van uw database.



  1. Door MySQLi opgestelde verklaring met dynamische update-query

  2. apache mysql - pakketten niet in orde op 3306

  3. Een matrixkolom opslaan of ophalen met Hibernate

  4. Voordelen van MySQLi boven MySQL