Il log delle transazioni per il database '' è pieno. Per scoprire perché lo spazio nel registro non può essere riutilizzato, consultare la colonna log_reuse_wait_desc in sys.databases. Per favore aiutami a risolvere questo problema. Grazie in anticipo.Il log delle transazioni per il database 'database' è pieno.
risposta
La risposta più probabile è che dovete eseguire backup del log o v'è un aperta transazione.
Ecco un po 'di più per aiutarvi ...
eseguire questo script sul server:
-- last FULL backup
;with FULLBUs
as (
select d.name, max(b.backup_finish_date) as 'Last FULL Backup'
from sys.databases d
join msdb.dbo.backupset b
on d.name = b.database_name
where b.type = 'D'
group by d.name
),
-- last LOG backup for FULL and BULK_LOGGED databases
LOGBUs
as (
select d.name, max(b.backup_finish_date) as 'Last LOG Backup'
from sys.databases d
join msdb.dbo.backupset b
on d.name = b.database_name
where d.recovery_model_desc <> 'SIMPLE'
and b.type = 'L'
group by d.name
)
-- general overview of databases, recovery model, and what is filling the log, last FULL, last LOG
select d.name, d.state_desc, d.recovery_model_desc, d.log_reuse_wait_desc, f.[Last FULL Backup], l.[Last LOG Backup]
from sys.databases d
left outer join FULLBUs f
on d.name = f.name
left outer join LOGBUs l
on d.name = l.name
where d.name not in ('model', 'TempDB')
order by d.name
Questa query vi darà un quadro di massima dei database, quale modello di recupero che sono utilizzando, perché il registro è pieno e quando sono stati eseguiti gli ultimi backup FULL e LOG.
Guarda la colonna contrassegnata con log_reuse_wait_description. Molto probabilmente dice BACKUP. La causa più probabile successiva è TRANSACTION.
Se è BACKUP Ecco alcune informazioni:
In sostanza, per i database SEMPLICI, eseguire un backup completo ogni giorno. Per i database FULL, esegui un backup COMPLETO ogni giorno e un backup LOG ogni ora. Regola la frequenza dei tuoi database LOG in modo che corrispondano alla tua capacità di perdere dati mantenendo il tuo lavoro.
Il modo più semplice per gestire i backup è utilizzare Ola Hallengren's maintenance scripts. Visita il suo sito Web e prova a utilizzarli.
Se vedete TRANSAZIONE come la ragione, provare a eseguire:
dbcc opentran
E rintracciare chi è ha le transazioni aperte.
Molto utile, grazie! –
Tutti i miei dicono "NOTHING" o "CHECKPOINT" nella colonna log_reuse_wait_description. –
Indubbiamente, si sta eseguendo il database in Full Recovery Mode
e non è stato possibile eseguire i backup del Registro transazioni.
Fare clic con il pulsante destro del mouse in SQL Server Manager e selezionare la pagina Opzioni. Cambiare modello di recupero da Full
a Simple
quindi fare nuovamente clic con il tasto destro del mouse sul database. Selezionare Tasks
Shrink
, Files
. Riduci il file di registro a una dimensione appropriata (in genere mi limito al 20-25% della dimensione dei file di dati).
Tornare a Full Recovery Model
e richiedere immediatamente un backup completo del database.
Ora è necessario capire se è necessario ripristinare il database in un momento specifico. In tal caso, pianificare il log delle transazioni regolari e, eventualmente, i backup differenziali in base ai requisiti della tua azienda.
Nel caso in cui l'azienda può vivere con una certa quantità di perdita di dati, pianificare backup completi e passare alla modalità Simple
.
Tra questa risposta e la risposta di @ Steven, alcune fantastiche informazioni! –
Fare clic con il tasto destro del mouse sul database \ Proprietà \ File.
Si disporrà di una tabella con i file di database, tra cui un file di registro. Basta espandere la dimensione iniziale a un importo ragionevole.
Fare questo Fare clic con il pulsante destro del mouse sul nodo database -> Attività-> Backup -> Generale (in scheda) -> impostare "Tipo di backup" su "Registro transazioni" -> OK.
Se il modello di recupero del database è pieno e non si dispone di un piano di manutenzione del backup del log, si riceverà questo errore perché il log delle transazioni diventa pieno a causa di LOG_BACKUP
.
ciò impedirà l'esecuzione di qualsiasi azione su questo database come una riduzione e il Motore di database di SQL Server genererà un errore 9002.
Per ovviare a questo comportamento, ti consiglio di controllare questo The transaction log for database ‘SharePoint_Config’ is full due to LOG_BACKUP che mostra i passaggi dettagliati per risolvere questo problema come il piano di manutenzione del backup del log.
Piuttosto che postare dove trovare la risposta (nel link), si dovrebbe distillare tali informazioni per soddisfare questa domanda. Per favore vedi [Come scrivere una buona risposta?] (/ Help/how-to-answer) e [Come fare riferimento al materiale scritto da altri] (/ help/referencing) per alcune linee guida. Le risposte di solo collegamento sono considerate risposte di bassa qualità su StackOverflow e sono soggette a cancellazione. –
- 1. TF30042: il database è pieno
- 2. Android: quanto è sicuro il database pieno di applicazioni
- 3. node.js + Postgres gestione delle transazioni di database
- 4. SQLITE3 VUOTO "database o disco è pieno"
- 5. come calcolare il conteggio delle transazioni del database al secondo e la crescita del database
- 6. Transazioni applicazione non database
- 7. Transazioni nel database wordpress
- 8. transazioni ACID e database?
- 9. Dove posso trovare il log delle transazioni MySQL?
- 10. Come si legge il log delle transazioni di Zookeeper?
- 11. Transazione di rollback tramite il log delle transazioni
- 12. Il log GC Java è pieno di caratteri strani
- 13. Hows fa un grande log delle transazioni influenzare le prestazioni?
- 14. Come si sposta il registro delle transazioni per un database usando sqlcmd/riga di comando?
- 15. Come ottenere il nome logico del log delle transazioni in SQL Server 2005
- 16. La parte finale del log per il database "DBName" non è stato eseguito il backup
- 17. Startup-Log "Nessun gestore delle transazioni trovato"
- 18. Qual è il database "migliore" per l'embedded?
- 19. Transazioni client Sql da codice vs transazioni controllate da database
- 20. Implementazione di transazioni su più database
- 21. Server Sql: il registro è pieno a causa di ACTIVE_TRANSACTION
- 22. Come ridurre l'utilizzo del log delle transazioni di SQL Server
- 23. Utilizzo di transazioni STM e database insieme
- 24. SQL Server: come eseguire una query quando è stato effettuato l'ultimo backup del log delle transazioni?
- 25. Metodologie migliori per il controllo delle modifiche del database
- 26. Impossibile ripristinare il database, il database è in uso per la sessione
- 27. Strumento di test delle unità per il database Sybase
- 28. Imposta il database per il modello?
- 29. Modi per gestire transazioni enormi su qualsiasi database?
- 30. sqlite - allegare il database
Hai seguito il consiglio nel messaggio di errore? Cosa hai trovato lì? Che ricerca hai fatto a questo punto? –
Non esiste effettivamente alcun nome di database nel messaggio? – egrunin
Prova MSDN: [Un log delle transazioni cresce in modo imprevisto o diventa pieno in SQL Server] (http://support.microsoft.com/kb/317375) Ha una spiegazione abbastanza completa del problema. – egrunin