Dimensione database e file LDF

di il
3 risposte

Dimensione database e file LDF

Buongiorno a tutti, sono nuovo su SQL Server per cui scusatemi se probabilmente posto una questione per voi banale.

Problema ho un database su un server di produzione che devo ripristinare e svuotare su un server differente, in pratica ripartire con il database vergine.

Utilizzo SQL Server 2022 Express Edition with Advanced Services.

Per l'importazione procedo come segue:

Procedo poi a svuotarlo e resettare gli indici nella maniera corretta con questa questa query:

Come si vede qui sopra i due file (database e LDF) sono rimasti della medesima dimensione di quando il database era pieno pur avendolo svuotato.

Allora procedo nel seguente modo selezionando Files:

  1. eseguita questa operazione il file LDF (WEBLICProd_0) ha dimensione 1k.
  2. Eseguendo invece SHRINK => Files sul database ottengo la dimensione del database a 5K (vedi immagine sotto).

Le mie domande, più che altro conferme: sono corrette le operazioni che ho eseguito per disporre del mio database dopo l'importazione da quello di produzione,  però completamente vuoto e con le dimensioni iniziale corrette cioè vergini ?

Grazie in anticipo.

3 Risposte

  • Re: Dimensione database e file LDF

    https://learn.microsoft.com/it-it/sql/relational-databases/tables/duplicate-tables?view=sql-server-ver16

    Stai facendo un restore da backup (con i dati).

    Devi esportare la struttura del database.

  • Re: Dimensione database e file LDF

    Salve,

    a mio parere, cosi' come l'hai effettuato, e' un'attivita' non molto ortodossa... i db di produzione dovrebbero restare "di produzione", anche per la natura magari riservata dei dati contenuti, al di la' del fatto che tu poi ne abbia svuotato le tabelle per poi compattarlo...

    come gia' @sihsandrea, solitamente si utilizzano script DDL per la creazione e DML per il caricamento base delle tabelle necessarie, perche' e' NECESSARIO poter disporre di questi script, che andrebbero anche tenuti in un source control system etc...

    al di la' di cio', si, si puo' fare il restore di un db di produzione sulla stessa o altra istanza di SQL Server... se lo fai sulla stessa abbi l'accortezza di gestire e verificare correttamente nel tab Files che i files restorati non sovrascrivano niente, questo nella colonna Restore As della "griglia" dei files...
    correttamente hai "svuotato" tabelle, e hai compresso il db restorato.
    Il restore del db originale ti ha pero' anche incluso i db users presenti nell'originale al momento del backup, e qui andrebbe verificato cosa eventualmente rimuovere o rimappare se necessario.

    Non hai in questo modo neanche utilizzato le impostazioni database di base dell'istanza di destinazione... Il comando CREATE DATABASE... utilizza come modello di generazione il database di sistema [model], con le impostazioni eventualmente li' configurate, quali collation, impostazioni di compatibility level, tutte le altre opzioni configurabili a livello di db, users e/o altri oggetti li' manualmente impostati, mentre il restore ovviamente non utilizza questa funzionalita'.

    Comunque, si, funzionalmente e per attivita' "spot" o di emergenza e' una modalita' fattibile.

    salutoni romagnoli
    – 
    Andrea

  • Re: Dimensione database e file LDF

    Asql, volevo sottolineare anche io che svuotare le tabelle senza sapere se contengono dati funzionali è sbagliato. Alstom_code e level_alstom_code potrebbero essere tra queste. Avrebbe un senso prendere il contenuto della tabella non la struttura. Come dire piuttosto che tutti i cap d'italia mi interessa la tabella cap…

    Soprattutto è sbagliato copiare un progetto frutto di un pensiero altrui. Come dire “io non so pensare lo faccio fare agli altri”.

    Ok prendere spunto, ma un progetto deve essere il frutto delle proprie riflessioni.

Devi accedere o registrarti per scrivere nel forum
3 risposte