核心思想:
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