sql server 備份資料庫到區域網內另一電腦上
阿新 • • 發佈:2021-12-30
核心思想:
1.備份資料庫到本地磁碟目錄
2.建立與目標伺服器的連結
3.拷貝備份檔案到目標伺服器
操作步驟:
1.目標伺服器IP:192.168.1.78,計算機名稱DESKTOP-V0QGHSD,設定E盤下dbback資料夾為共享資料夾,設定成功後可在計算機管理-->系統工具-->共享資料夾-->共享中檢視
2.本地伺服器存放備份檔案路徑為E盤dbback資料夾,建立儲存過程
-- ============================================= -- Project: TCX_32107 -- Author: taozi-- Create date: 2021年12月30日 -- Description: 備份資料庫到本地及區域網內另一臺電腦中,同時刪除本地7天前備份的檔案 -- Demo: 使用方法:在每個現場的資料庫伺服器上建立一個作業,呼叫此儲存過程,但需修改此過程內的一些引數 -- ============================================= ALTER PROCEDURE [dbo].[P_Sys_BackUpAndClearLog2] AS BEGIN SET NOCOUNT ON; declare @filepath nvarchar(50),@filename nvarchar(100),@filename_old nvarchar(100)--本地備份路徑、備份檔名、要刪除的檔名 declare @cmdshell nvarchar(100) declare @copy_sql nvarchar(100),@del_sql nvarchar(100) set @filepath = 'E:\dbback\'; set @filename = 'TCX_32107_Full_'+REPLACE(REPLACE(REPLACE(convert(varchar,getdate(),120),'-','_'),' ','_'),':','_') + '.bak'; set @filename_old = 'TCX_32107_Full_'+REPLACE(REPLACE(REPLACE(convert(varchar(10),dateadd(dd,-7,getdate()),120),'-','_'),' ','_'),':','_') + '*.bak'; --192.168.1.78:目標伺服器IP --DESKTOP-V0QGHSD:目標伺服器名稱 --dbback:目標伺服器共享名 --111:目標伺服器使用者密碼 --lct:目標伺服器使用者 set @cmdshell = 'net use \\192.168.1.78\dbback 111 /user:192.168.1.78\lct' set @copy_sql = 'copy '+@filepath+@filename+' \\192.168.1.78\dbback' set @del_sql = 'del '+@filepath+@filename; --sql原型(DESKTOP-V0QGHSD與192.168.1.78均可) --set @cmdshell = 'net use \\DESKTOP-V0QGHSD\dbback 111 /user:DESKTOP-V0QGHSD\lct' --set @copy_sql = 'copy E:\dbback\TCX_32107_Full_2021_12_30_16_50_56.bak \\DESKTOP-V0QGHSD\dbback' --備份到本地 backup database TCX_32107 to disk = @filename; --連結到網路伺服器 exec master..xp_cmdshell @cmdshell --拷貝到網路伺服器 exec master..xp_cmdshell @copy_sql --刪除連結 exec master..xp_cmdshell @cmdshell --刪除本地7天前的備份檔案 exec master..xp_cmdshell @del_sql END
3.執行儲存過程,備份檔案已拷貝到目標路徑
參考連結:https://blog.csdn.net/strong0511/article/details/50585109(主要是這個)
https://wenku.baidu.com/view/1c0405d328ea81c758f57882.html