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