Ripristina file bak in file di database mdf e ldf più piccoli


11

Ho un database legacy la cui mancanza di design da incubo non entrerò qui, ma i file sul server sono (relativamente) enormi. Io ho:

MyDatabase.mdf: 24,8 GB
MyDatabase.ldf: 114,6 GB

Ogni notte viene eseguito il backup di questo database in un file .bak e spedito al nostro server di report, dove viene ripristinato. Il file .bak è molto più piccolo a soli 1,8 GB.

Tuttavia, quando provo a ripristinarlo sul server di report, non riesce a causa di spazio insufficiente. Ci sono circa 100 GB gratuiti sul server e sta cercando di divorare l'intero 139,4 GB che i file hanno consumato sul server originale. A meno che la mia conoscenza della compressione non sia terribilmente sbagliata, sono abbastanza sicuro che il file da 1,8 GB non si stia espandendo del 7400%.

La mia domanda: esiste un modo per dire a SQL Server di ripristinare questo file di backup senza riservare lo spazio in anticipo? Non mi interessa nessuno dei registri; Ho solo bisogno che i dati siano lì. Capisco i database dal punto di vista dello sviluppo e dello schema, ma non sono affatto un tipo di DBA.

Questo è su SQL Server 2008 R2. Grazie per qualsiasi aiuto o suggerimento.

Risposte:


11

Il backup contiene due informazioni:

I dati effettivi nel backup sono 1,8 GB. Ma i metadati descrivono il layout dei file come sul server di produzione originale. Mentre sembra compressione, non è la compressione effettiva. Sono solo metadati e contenuti. il problema è che durante il RESTORE la macchina per la creazione di report crea un layout come descritto nei metadati, quindi 114,6 GB + 24,8 GB. Ora per la vera domanda: puoi ripristinarlo senza ricreare il layout del file DB originale? No. Tuttavia, c'è un'altra soluzione al tuo problema: riportare il DB originale sotto controllo. La riduzione del registro delle transazioni copre i passaggi che è necessario eseguire, dal momento che il registro è il principale punto dolente. Quindi distribuirei log shipping invece di backup / ripristino.


Grazie; la riduzione del registro delle transazioni ha funzionato perfettamente.
eouw0o83hf

1
Log shipping al posto dei backup dei log ??
Thomas Stringer

4
@Shark: log shipping invece di backup completi , come mezzo per consegnare il DB alla macchina di reportistica.
Remus Rusanu,

Oh okay, mi mancava completamente quella parte della domanda. Grazie per il chiarimento!!
Thomas Stringer

0

SQL Server 2012 consente di utilizzare solo il file mdf del database e di collegarlo a SQL Server: http://msdn.microsoft.com/en-us/library/ms174385.aspx . SQL Server crea un nuovissimo file ldf in cui è possibile specificare la dimensione. Poi:

  • utilizzare il modello di recupero semplice per impedire la crescita del file di registro o
  • utilizzare il modello di recupero completo ed eseguire backup regolari del registro delle transazioni. Ciò impedirà inoltre alla crescita del file di registro
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.