[SQL Server] 遠端備份-解決DB過大無法備份至本機問題

最近遇到一個case:

某個DB從來沒在刪資料,導致其所有的data files過大,Server裡所有磁碟已經不夠存放其DB的所有data files。

我們需要將他備份,保存去別的地方,並刪除此DB過舊的資料再shirnk,解決DB過大導致Disk空間不夠的問題

而第一步就遇到困境,因為此Server已經沒有足夠的磁碟存放備份檔....


 

一直以來以為備份資料庫只能備份到本機的Disk...

但因為此Server的Disk已經全部沒有足夠空間存放備份檔,

搜尋了網路的資料後發現原來Backup可以備份到遠端電腦,只要在Path地方改成本機可以連去遠端的Network Path即可。

假設我們想將此DB備份到ServerB某個Disk的Eva Folder,如下面的語法:

BACKUP DATABASE [Eva] 
TO  DISK = N'\\ServerB\Eva\Eva.bak' WITH NOFORMAT, NOINIT,  
NAME = N'Eva-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO


跑之後發現此Server沒有ServerB的權限,因為ServerB的Eva Folder沒有開everyone的read/write權限
(或是自己額外create一個Login,但因為我這邊只是暫時要備份DB過去而已,平常還是以備份到本機為主,故在此case我選擇使用everyone較為方便)

故,我們進去ServerB 裡面,更改Eva的資料夾權限後:

再跑一次上面的script,即可去ServerB的Eva Folder裡查看,已備份成功:

最後,記得把ServerB的Eva Folder everyone的權限拿掉以確保安全。