Ho un database SQL Server da 1,4 TB che sta lottando enormemente con l'I / O del disco. Abbiamo installato un nuovo array SSD nel server che risolverà tutti i nostri problemi, stiamo solo discutendo il modo migliore per spostare il database. Idealmente, se possiamo farlo senza tempi di inattività, è meglio. Ma se la scelta è tra due giorni di scarso rendimento (ad es. Durante la copia dei dati) rispetto a due ore di inattività, quest'ultimo potrebbe essere preferibile.
Finora, le soluzioni che abbiamo trovato sono:
Semplice copia. Porta offline il DB, copia i file, modifica le posizioni in SQL Server e riportalo online. I dati approssimativi stimano che ci vorranno fino a cinque ore, il che non è davvero accettabile, ma è la soluzione più semplice.
Copia a livello di blocco. Usando un'utilità simile a rsync, copiamo i file in background mentre il DB è attivo. Quando siamo pronti per la migrazione, portiamo il DB offline, eseguiamo una copia differenziale attraverso questa utility, quindi puntiamo il server SQL verso i nuovi file e lo portiamo online. Il tempismo qui non è noto. Non sappiamo quanto tempo ci vorrà per fare un'analisi differenziale di 1,4 TB e copiarla. La nostra altra preoccupazione è che la copia a livello di blocco lascerà i file in alcuni stati illeggibili da SQL Server e avremo tempo perso.
Migrazione SQL. Crea un nuovo file di dati SQL da 1,4 TB sul nuovo disco e disabilita la crescita automatica su tutti gli altri file. Quindi eseguire DBBC SHRINKFILE (-file_name-, EMPTYFILE) su tutti gli altri file di dati a turno. Una volta che tutti i dati sono stati trasferiti, ad un certo punto prenderò una finestra pianificata per spostare il file MDF sull'SSD e rimuovere gli altri file non utilizzati. Mi piace perché riduce al minimo i tempi di fermo. Ma non ho idea di quanto tempo ci vorrà e se causerà un degrado delle prestazioni mentre sta accadendo.
Non abbiamo alcun tipo di ambiente di carico e prestazioni per testarlo. Posso verificare che le strategie funzioneranno nel nostro ambiente di gestione temporanea, ma non l'impatto e non le prestazioni.
don't know how long it will take to do a differential analysis of 1.4TB
almeno quanto basta per leggere quei dati. Non credo che l'idea rsync risparmi molto se non altro. rsync è fatto per far fronte a reti lente.