【Navicat实现 SQL Server 异地 定时备份】
背景
最近项目提出走外网服务对接接口,配外网后因服务器直接被暴露在互联网环境中,导致被病毒侵入两次;由此思考两种措施,一是预防侵入,二是快速数据还原,因此利用可利用局域网另一台机器做异地定时备份处理;
1. 共享文件夹设置
首先确保服务器和备机在同一局域网下,由此设置共享文件夹,详情请见windows电脑文件夹共享设置步骤分享
2. Navicat设置定时任务
可参考:
Navicat备份sqlserver数据库
Navicat Premium 自动备份mysql和sqlserver
- 新建查询,保存
脚本如下,
USE master
GO-- 先建立网络连接
EXEC xp_cmdshell 'net use \\备机IP\共享目录 密码 /user:用户名'
GODECLARE @ls_dbname VARCHAR(100)
DECLARE @ls_command VARCHAR(255)-- 设置备份文件路径为网络路径
SET @ls_dbname = '\\备机IP\共享目录\数据库名.bak'-- 删除已存在的同名备份文件
SET @ls_command = 'DEL "' + @ls_dbname + '"'-- 执行删除命令(需要xp_cmdshell启用)
EXEC xp_cmdshell @ls_command-- 备份数据库
BACKUP DATABASE [数据库名] TO DISK = @ls_dbname
WITH INIT -- 覆盖现有备份文件
GO
- 点击自动运行,新建批作业,找到数据库,将查询拖动到已选择工作
- 设置任务计划,设置触发器,保存输入密码
- 点击测试,备份成功!
还原
参考:Navicat 17 还原SQL Server数据库BAK备份文件
- 新建同名数据库
- SQL备份,右键从文件备份,勾选FULL
这里一定注意要设置对应的目录和文件名
- 点击生成SQL, 还原
此步执行后,还原成功