SQL Server: come posso aumentare le dimensioni del registro delle transazioni?
-
06-07-2019 - |
Domanda
Come posso aumentare le dimensioni del registro delle transazioni? È anche possibile aumentare temporaneamente il registro delle transazioni?
Diciamo che ho il seguente scenario. Ho un'operazione di eliminazione troppo grande per il registro delle transazioni corrente. Non voglio:
- Aumenta il registro delle transazioni (posso rilevare la dimensione corrente ?, posso dire quanto è necessario il registro delle transazioni per la mia operazione?)
- (Esegui la mia operazione)
- Backup del registro delle transazioni
- Ripristina la dimensione del registro delle transazioni.
Soluzione
Risposta breve:
- SQL 2k5 / 2k8 Procedura: aumentare le dimensioni di un database (SQL Server Management Studio) (vale anche per il log), Come: Riduci un database (SQL Server Management Studio)
- SQL 2K Come aumentare le dimensioni di un database (Enterprise Manager) , Come ridurre un database (Enterprise Manager)
Risposta lunga: è possibile utilizzare ALTER DATABASE ... MODIFY FILE
per modificare le dimensioni dei file di database, inclusi i file LOG. È possibile cercare master_files/sysfiles
(2k) o <dbname>.sys.database_files
(2k5 / 2k8) per ottenere il nome logico del registro. E puoi usare DBCC SHRINKFILE
per ridurre un file (se possibile ).
posso dire quanto ho bisogno di registro delle transazioni per essere per il mio operazione?
Dipende da molti fattori (sono questi nuovi dati? è un aggiornamento? è una cancellazione? quale modello di recupero? hai compressione su SQL 2k8? ecc ecc.) ma di solito è più grande di quanto ti aspetti. Stimerei 2,5 volte la dimensione dell'aggiornamento che stai per eseguire.
Aggiornamento:
Perso, dici che è un ELIMINA. Una stima approssimativa è 1,5 volte la dimensione dei dati eliminati (inclusi tutti gli indici).
Altri suggerimenti
Il registro delle transazioni può essere configurato per espandersi secondo necessità. Hai impostato l'opzione per crescere automaticamente. Tuttavia, quando il registro delle transazioni diventa troppo grande (esaurendo lo spazio su disco) o rendendo inutilizzabile il server sql.
Backup del registro delle transazioni. SQL troncerà automaticamente le transazioni inattive
Quando ripristini il registro delle transazioni verrà ridotto
Per configurare l'autogrow:
- Fare clic con il pulsante destro del mouse sul database in Management Studio.
- Seleziona Proprietà
- Aggiorna valore di crescita automatica
La parte più importante è l'ultima riga del tuo scenario: " Ripristina la dimensione del registro delle transazioni. " Intendi ridurre il registro alla sua dimensione originale.
Questo è davvero pericoloso per molte ragioni, e le abbiamo descritte in un paio di storie su SQLServerPedia: