• Gregory,

    I work in a mid-sized company and have the luxury/challenge of being both the DBA and Storage Admin. We also use Netapp Storage mostly with FC in one datacenter and iSCSI in another. When you decide to move your databases to iSCSI LUNs here's my favorite way of doing it. You can move the datafiles ONLINE! I've used this method several times to move entire datafiles to new LUNs as an online operation.

    1. Create the new LUNs and attach them to the SQL Server using iSCSI or FC

    2. Add datafiles to the existing filegroup (create SQL data files on the freshly attached iSCSI or FC storage)

    3. Empty the existing data file into the newly attached one. This is an online operation. "DBCC SHRINKFILE(<FileName>, EMPTYFILE)"

    4. Voila! The datafiles have now been migrated to iSCSI or FC. 🙂

    4. Remove the old (now unused) files from the SQL filegroup.

    Brad Hoff, @SqlPhilosopher, has created a blog post describing the method in detail: http://www.sqlphilosopher.com/wp/2012/02/moving-a-filegroup-to-a-new-disk-array-with-no-downtime

    That will not work for is your transaction log file. For that:

    1. CHECKPOINT

    2. Take a tlog backup

    3. Shrink the transaction log (This will make the copy time for the log file minimal)

    4. Run ALTER DATABASE MODIFY FILE to change the location of the ldf file.

    5. Take database offline.

    6. Move the physical file from old location to new location.

    7. Bring database online.

    8. Expand the log file back to its original size.