BUG: Backup log delle transazioni possibile dopo la ricostruzione automatica di LDF

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 257855
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
BUG #: 57670 (SQLBUG_70)
Sintomi
Se il file di dati di registro (LDF) per un database non è disponibile durante l'avvio di SQL Server (ad esempio, se il file è stato rinominato o eliminato), SQL Server 7.0 a volte tentativo di ricostruire il file LDF automaticamente per garantire la disponibilità del database.

Poiché le informazioni dal file LDF originale perse, questo processo interrompe una sequenza di backup del log delle transazioni esistente. Un nuovo backup completo del database deve essere eseguita per avviare una nuova sequenza sul backup del log delle transazioni.

Tuttavia, SQL Server consente di eseguire un backup del log delle transazioni apparentemente valido in questa fase senza informa che la sequenza di backup viene interrotta.

Se si esegue un backup non valido e una successivamente si tenta di ripristinare il log delle transazioni, non riesce e viene visualizzato il seguente messaggio:
Server: Messaggio 3155, livello 16, stato 1, riga 1
L'operazione RESTORE Impossibile continuare perché uno o più file sono stati aggiunto o rimosso dal database poiché è stato creato il set di backup.

Server: Messaggio 3013, livello 16, stato 1, riga 1
Operazione di backup o ripristino terminato in modo anomalo.
Workaround
Per aggirare questo tipo di problema, eseguire una qualsiasi delle operazioni seguenti:
  • Assicurarsi che i file LDF non sono eliminati o rinominati.

    - oppure -
  • Eseguire un backup completo del database per immettere la sequenza di backup del registro delle transazioni.
Status
Microsoft ha confermato che si tratta un problema in SQL Server 7.0.
Informazioni

Procedura per riprodurre il problema

  1. Utilizzare le istruzioni riportate di seguito per creare un database, inserire i dati e iniziare una serie di backup:
    create database testgouse testgocreate table t (c int)goinsert into t values (1)gobackup database test to disk='c:\test_dump.bak' WITH INITgoinsert into t values (2)gobackup log test to disk='c:\test_dump.bak' WITH NOINITgoinsert into t values (3)gouse master
  2. Attenersi alla seguente procedura per consentire di creare un nuovo file LDF per il database all'avvio di SQL Server:
    1. Assicurarsi che nessun utente sia connesso al database.
    2. Arrestare SQL Server Service.
    3. Rinominare il file test_log.ldf.
    4. Avviare il servizio SQL Server.
  3. Verificare il seguente tipo di immissioni nel log degli errori SQL Server per verificare che sia stato creato un nuovo file LDF:
    File c:\MSSQL7\data\test_log.LDF non esiste - Impossibile attivare.
    Tentativo di ricostruire il file di log per il test del database primario.
    ...
    Nuovo registro file f:\MSSQL7\data\test_log.LDF creato.
  4. Utilizzare le seguenti istruzioni per continuare la sequenza di backup:
    use testgoinsert into t values (4)gobackup log test to disk='c:\test_dump.bak' WITH NOINITgo


  5. Utilizzare le istruzioni riportate di seguito per tentare di ripristinare i backup in un nuovo database denominato testrestore:
    RESTORE DATABASE testrestore   FROM disk='c:\test_dump.bak'   WITH NORECOVERY,    MOVE 'test' TO 'c:\testrestore.mdf',    MOVE 'test_log' TO 'c:\testrestore.ldf'RESTORE LOG testrestore   FROM disk='c:\test_dump.bak'   WITH NORECOVERY,FILE = 2RESTORE LOG testrestore   FROM disk='c:\test_dump.bak'   WITH FILE = 3, RECOVERY
A questo punto, è visualizzato il seguente messaggio di errore:
Server: Messaggio 3155, livello 16, stato 1, riga 1
L'operazione RESTORE Impossibile continuare perché uno o più file sono stati aggiunto o rimosso dal database poiché è stato creato il set di backup.

Server: Messaggio 3013, livello 16, stato 1, riga 1
Operazione di backup o ripristino terminato in modo anomalo.
log degli errori

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 257855 - Ultima revisione: 02/13/2014 01:55:38 - Revisione: 1.2

Microsoft SQL Server 7.0 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbpending KB257855 KbMtit
Feedback