Devo svuotare un file LDF prima di inviarlo a un collega. Come posso forzare SQL Server a troncare il registro?
Devo svuotare un file LDF prima di inviarlo a un collega. Come posso forzare SQL Server a troncare il registro?
Risposte:
se ricordo bene ... nell'analizzatore di query o equivalente:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY
.
BACKUP LOG DatabaseNameHere TO DISK='NUL:'
.
In management management:
Properties
, quindi Options
.Tasks
-> Shrink
->Files
In alternativa, l'SQL per farlo:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabase
prima di eseguiredbcc shrinkfile
Per SQL Server 2008, il comando è:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
Ciò ha ridotto il mio file di registro da 14 GB fino a 1 MB.
Per SQL 2008 è possibile eseguire il backup del registro sul nul
dispositivo:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
Quindi utilizzare DBCC SHRINKFILE
per troncare il file di registro.
Un'altra opzione è quella di staccare il database tramite Management Studio. Quindi eliminare semplicemente il file di registro o rinominarlo ed eliminarlo in un secondo momento.
Di nuovo in Management Studio collegare nuovamente il database. Nella finestra allegare rimuovere il file di registro dall'elenco dei file.
Il DB si allega e crea un nuovo file di registro vuoto. Dopo aver verificato che tutto sia a posto, è possibile eliminare il file di registro rinominato.
Probabilmente non dovresti usarlo per i database di produzione.