[SQL Server] 移動資料庫檔案

有使用SQL SERVER的大大也知道SQL SERVER的資料庫其實只是一個檔案(感覺好虛).

最近公司要把資料庫檔案移到新硬碟, 寫下了一些T-SQL順便筆記一下步驟:
  1. 首先把要移動的資料庫離線(OFFLINE), 例如我的資料庫是dbABC
    ALTER DATABASE dbABC SET OFFLINE WITH ROLLBACK IMMEDIATE
    WITH ROLLBACK IMMEDIATE 跟據這裡的解釋是說把所有在跑的transaction全部ROLLBACK.
     
  2. 如果發現不行的話, 可以用下面的指令把佔用database的process殺掉:
    exec sp_who2 (把所有資料庫在跑的sessions列出來)
    kill <process_id> (幹掉它)
     
  3. 移動資料庫檔案及log file到新硬碟去:
    ALTER DATABASE GEE MODIFY FILE ( NAME = ABC , FILENAME = 'D:\dbABC.mdf')
    ALTER DATABASE GEE MODIFY FILE ( NAME = ABC_log , FILENAME = 'D:\dbABC_log.ldf')
     
  4. 重新啟動資料庫:
    ALTER DATABASE GEE SET ONLINE
     
  5. 喝淡定紅茶

Popular posts from this blog

[SQL SERVER] 找出LOCK方法懶人包

[SQL Server] 解決log檔(ldf file)過度膨脹的實戰經驗

[Windows7] 跨距磁碟區, 等量磁碟區, 鏡像磁碟區之區別