MSSQL 資料庫備份到網路磁碟機

  • 529
  • 0
  • SQL
  • 2021-03-23

MSSQL 資料庫備份 網路磁碟機

資料庫常常磁碟空間不足而且又有備份需求時,

把資料庫備份到網路磁碟機應該是比較方便的選擇,

但實際上無法用一般的備份維護計畫來選取網路儲存裝置,

需要使用以下語法來讓SQL連到網路磁碟機達到備份目的,

以下是實際操作的語法,其中的網域名稱讓我卡了一會兒。

1.啟用xp_cmdshell

-- To allow advanced options to be changed.  
EXEC sp_configure 'show advanced options', 1  
GO  
-- To update the currently configured value for advanced options.  
RECONFIGURE  
GO  
-- To enable the feature.  
EXEC sp_configure 'xp_cmdshell', 1  
GO  
-- To update the currently configured value for this feature.  
RECONFIGURE  
GO  

2.執行備份

-- 宣告
DECLARE @ConnectDriveCmd varchar(100)
DECLARE @DisconnectDriveCmd varchar(100)
DECLARE @TargetDriveName varchar(100)

-- 初始化(IP,目錄,密碼,帳號)
SET @ConnectDriveCmd = 'net use z: \\[IP]\[目錄] [密碼] /user:[IP]\[帳號]'
SET @DisconnectDriveCmd = 'net use z: /d'
SET @TargetDriveName = 'z:\\Bak_' + DATENAME(Weekday,GETDATE()) + '_Full.BAK'

-- 連接網路磁碟機
EXEC Master..xp_cmdShell @ConnectDriveCmd

-- 備份資料庫([資料庫名])
BACKUP DATABASE [資料庫名] TO DISK = @TargetDriveName
WITH NOFORMAT, INIT,  NAME = N'Bak-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10  

-- 中斷網路磁碟機
EXEC Master..xp_cmdShell @DisconnectDriveCmd

GO

 

PS5