Devo davvero conservare i file .LDF?


9

Ogni mese realizziamo un'istantanea di fine mese del nostro database di produzione. Queste istantanee di fine mese sono strettamente a scopo di reportistica, non sono mai stati inseriti inserimenti, aggiornamenti o cancellazioni. Ognuna di queste istantanee ha un file .MDFe .LDF.

Voglio eliminare i .LDFfile e liberare spazio sul server. Ci sono dei motivi per cui devo conservare i .LDFfile?

Una precisazione:

Il nostro database di produzione viene ricreato ogni notte dagli estratti di file da un altro sistema. Segnaliamo solo dal database di produzione ... non vengono mai effettuati aggiornamenti.

Processo notturno:
da quello che posso dire ...
Ogni notte le tabelle del databse vengono troncate
Le tabelle vengono popolate attraverso una serie di istruzioni di inserimento in blocco Gli
indici vengono ricostruiti

Risposte:


16

Non è necessario eliminare il file di registro. Se si sta tentando di ricollegare un file di dati senza il registro, SQL Server può ricrearlo tecnicamente, ma ci sono alcuni potenziali problemi, come se ci fossero transazioni aperte quando il database era staccato. In tal caso, si avrebbe una perdita totale di dati.

Consuma lo spazio e non eliminare i file di registro . Stai chiedendo problemi con quello.

Vedi questo articolo sui registri delle transazioni , in particolare la parte "Log Mismanagement".


9

Come indicato in un'altra risposta , non è possibile eliminare il file di registro. Quello che potresti fare è impostare il database su READ_ONLY. Con il database in READ_ONLY, non sono consentite modifiche e il file di registro non aumenta. È possibile ridurre le dimensioni del file di registro a una dimensione minima e raggiungere l'obiettivo di un footprint minimo. Per impostare il database in READ_ONLYesecuzione il seguente comando:

USE master;
GO
ALTER DATABASE databasename SET READ_ONLY;
GO

È possibile modificare nuovamente il database READ_WRITE, apportare le modifiche necessarie, quindi impostarlo su READ_ONLYogni volta che è necessario.

Il file di registro è ancora necessario per mantenere le proprietà ACID del database.


2

Il fatto è che puoi creare un database semplicemente usando il file mdf. È il comando sp_attach_single_file_db (Transact-SQL). Si noti che verrà rimosso in una versione futura di Microsoft SQL Server. Ma non è intelligente eliminare i file LDF. Shark ha ragione "Stai chiedendo problemi con quello." Un altro punto di vista: i tuoi file ldf sono enormi? Se lo sono, puoi fare qualcosa al riguardo.

  1. Impostare il database su Modello di recupero semplice . Puoi farlo solo se non desideri ripristinare le transazioni
  2. Invece di creare file MDF e LDF, creare un file di backup completo del database (.BAK). Sarà più piccolo di MDF + LDF

-3

Ecco la soluzione che ho trovato per ridurre i file LDF.

  1. Scollega database
  2. Rinomina il file LDF in * _old.ldf
  3. Collega database
  4. Rimuovere il riferimento al LDF mancante

Ciò ricrea un file LDF che ha una dimensione di 504 KB.

  1. Elimina * _old.ldf
  2. Svuota il cestino

Ciò ha recuperato una notevole quantità di spazio su disco sul server. Funziona per noi perché tutti questi database sono SOLO database di report statici. Nessun inserto, aggiornamento o eliminazione verrà mai eseguito su questi database.

AGGIORNAMENTO 2019-09-09: Sì, sono d'accordo che questa è una pessima idea. Ho smesso di farlo quasi immediatamente. Ho ricostruito tutti gli indici usando un fattore di riempimento di 100. Riduci solo i file .ldf. E ha cambiato tutti i database per essere SOLO LEGGI.


6
Caspita, questa è davvero una pessima idea. Cosa succede se il database non si stacca correttamente o viene perso o danneggiato da qualche parte tra 1 e 3? Sei fregato. Hai copie ZERO del tuo database.
Aaron Bertrand

3
Il modo corretto per farlo sarebbe: 1. Eseguire un backup COPY_ONLY del database. 2. Ripristinarlo sul server di report. 3. Impostare il ripristino su semplice e contrassegnare la copia ripristinata come sola lettura. 4. Ridurre manualmente il file di registro. Sì, nel frattempo hai bisogno di spazio, ma dovrai mantenere il tuo lavoro!
Aaron Bertrand
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.