星期五, 8月 30, 2013

[SQL] 備份至遠端儲存設備

沒有網域情況下,要從 Server A 備份資料至 Server B,要注意的重點為
  1. Server A 的 SQL Server 服務啟動帳戶在 Server B 要有同名的帳號密碼
  2. Server B 上要設定共用資料夾且必須具備該資料夾讀取權限
Step 1:設定同名帳號跟密碼
  • Server A SQL Server 服務帳戶為[SQLServer]
[SQL] 備份至遠端儲存設備-7
  • Server B 設定同名帳戶密碼
[SQL] 備份至遠端儲存設備-8

Step 2:建立 Server B 共用資料夾 (RemoteBackup)並設定讀寫權限

[SQL] 備份至遠端儲存設備-2

Step 3:測試 SQL Server 服務帳號是否有遠端儲存設備讀寫權限

利用 xp_cmdshell 來進行測試讀取權限,首先要開啟 xp_cmdshell
  • 方法 1:SSMS => instance name => 滑鼠右鍵 => Facet => 介面區組態 => 把XPCmdShellEnables 設為 True
[SQL] 備份至遠端儲存設備-1
  • 方法二:利用 T-SQL 語法開啟
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
  • 在 SSMS 內利用下述語法來確認讀寫權限
利用 DOS 指令 dir,查詢 ServerB RemoteBackup 資料夾,藉此檢查服務帳戶是否具有 read 權限
xp_cmdshell 'dir \\ServerBIP\RemoteBackup'     
[SQL] 備份至遠端儲存設備-5
利用 DOS 指令 MD 在 ServerB RemoteBackup 資料夾內建立 WriteDemo 資料夾,藉此檢查服務帳戶是否具有 write 權限
xp_cmdshell 'MD \\ServerBIP\RemoteBackup\WriteDemo' 
[SQL] 備份至遠端儲存設備-6
[SQL] 備份至遠端儲存設備-4

因為 xp_cmdshell 涉及資訊安全,利用它檢查服務帳戶權限後,記得把它關閉。
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE;
Step 4:在 Server A 的 SSMS 上進行備份並指定至 Server B 上的共用資料夾

備份路徑必須利用 UNC 命名,\\ServerIP\資料夾名稱 或 \\ServerName\資料夾名稱
BACKUP DATABASE [AdventureWorks2012] TO DISK = '\\ServerBIP\RemoteBackup\AdventureWorks2012.bak'
[SQL] 備份至遠端儲存設備-3

沒有留言:

張貼留言