方案一:SQL自帶的資料庫備份計劃
一:基本思路
1:要實作異地備份,必須使用域使用者帳号來啟動SQL Server服務以及SQL Server Agent服務,因為本地系統帳戶無法通路網絡。
2:在異地機器中建立一個與SQL Server伺服器中啟動SQL Server服務的域使用者帳号同名帳号,且密碼保持相同。在異地機器中建立一個共享檔案夾,并設定合适權限。
注意:建立帳号針對的是工作組模式,如果是基于域模式,那就無須再建帳号
3:在SQL Server伺服器中建立異地備份的維護計劃,在“完全備份”和“事務日志備份”中,使用輸入異地共享檔案夾的UNC路徑。
4:配置好維護計劃中其它設定。 上面表述可能不太直覺,下面以實際實驗來示範如何做異地備份。實驗網絡模型很簡單,如下圖:
二:異地備份的示範
1:在SQL Server伺服器中以域使用者帳戶啟動SQL Server服務以及SQL Server Agent服務。
本實驗中直接使用administrator帳戶,可以根據實際環境切換其它域使用者帳戶。
2:在檔案備份伺服器中建立一個共享檔案夾,共享權限中删除everyone使用者,加入administrator使用者,權限設定如下圖。
3:在SQL Server伺服器中,打開企業管理器,建立資料庫維護計劃:
4:在維護計劃向導中,選擇計劃備份的資料庫,設定好資料庫優化資訊和檢查完整性等步驟。
5:在向導的“指定資料庫備份計劃”設定好排程計劃。
6:在“指定備份磁盤目錄”界面,手動輸入檔案備份伺服器共享檔案夾UNC路徑。
7:在“事務日志備份計劃”界面,根據實際環境決定如何備份。
8:按向導設定好其它步驟,完成異地備份維護計劃。 三:測試異地備份是否成功。
1:檢查共享檔案夾中備份檔案是否存在。
2:如果沒有備份成功,請檢視SQL Server日志,并檢查權限設定以及使用者名和密碼是否完全一緻,或者重新啟動兩台電腦!
方案二:采用檔案同步軟體、FTP等同步源伺服器的資料庫備份檔案至備份機
方案三:采用SQL定時作業
舉例:
--建立與YNiang的連接配接,其中garfield是登入YNiang的密碼
Exec master..xp_cmdshell 'net use //YNiang/Backup garfield /User:yy_domain/Administrator'
--備份資料庫miao,YNiang的共享目錄backup要完全共享控制
Backup Database [miao] to Disk = '//YNiang/Backup/miao.bak'
--斷開YNiang的連接配接
Exec master..xp_cmdshell 'net use //YNiang/Backup /delete'
方案三:
1:在目标機器上建共享檔案夾:remotebak,并使某使用者(如管理者)有寫權限,示例administrator,123456。
2:在源機器用指令方式建驅動器映射:
xp_cmdshell 'net use z: //目标機器IP/remotebak "123456" /user:目标機器IP/administrator'
3:每天自動備份(把以下代碼放在JOB裡,設定每天定時執行)
declare @shotname varchar(50),@newtime varchar(50),@sql varchar(8000set @newtime=convert(varchar(50),getdate(),120)
set @oldtime = convert(varchar(50),dateadd(dd,-10,getdate()),120)
select @shotname='sharewin'+left(@newtime,4)+substring(@newtime,6,2)+substring(@newtime,9,2)
set @sql = 'backup database sharewin to disk = '+'''z:/'[email protected] +'.bak'''
exec(@sql)
4:備份完成後删除映射:
xp_cmdshell 'net use z: /delete'