Spesso mi è capitato di trovare installazioni di SQL Server fatte su un unico disco C:, perché magari il server era stato acquistato con pochi dischi e di conseguenza l’array creato utilizzando RAID 5 (per chi non ha dimestichezza con RAID, potete dare un’occhiata qui e qui) ed un unico volume.
Una installazione tipica di SQL Server necessita invece di un maggior numero di volumi logici (e quindi, dove possibile, di dischi fisici organizzati in array con il livello RAID opportuno), sia per questioni di performance (i files di database insieme al sistema operativo ed il suo file di paging non sono esattamente la condizione ideale), sia per questioni di affidabilità e sicurezza.
Che cosa si può fare in questi casi ?
Prima di tutto acquistare altri dischi, installarli e configurare uno o più array logici. Ricordate che per i dischi dove vanno solamente i data files di SQL Server è buona norma formattare con l’opzione /A:64K per impostare l’unità di allocazione a 64K (pari ad un extent, cioè l’unità minima di allocazione per SQL Server).
Quindi spostare il database sulle nuove unità logiche. Ci sono diversi modi per farlo(detach/attach, backup/restore, etc), ma quello più sicuro ed affidabile, che consente anche un ripristino veloce della condizione di partenza è questo:
USE master; GO ALTER DATABASE nome-database MODIFY FILE ( NAME = nome-database-datafile, FILENAME = N'E:\SQL Server Data Files\nome-database.mdf' ); GO ALTER DATABASE nome-database MODIFY FILE ( NAME = nome-database-logfile, FILENAME = N'L:\SQL Server Log Files\nome-database.ldf' ); GO
USE master; GO
ALTER DATABASE nome-database MODIFY FILE ( NAME = nome-database-datafile, FILENAME = N'E:\SQL Server Data Files\nome-database.mdf' ); GO
In questo modo, i vecchi files saranno ancora al loro posto e, se necessario, sarà possibile ripristinare la condizione di partenza semplicemente ripetendo i passi sopra elencati con le posizioni originali dei files di database.
Ovviamente, PRIMA di fare qualsiasi cosa, è buona norma fare un backup completo del database… non si sa mai !