热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FreeFileSync文件备份

需求目标实现sqlserver数据库文件本地异地备份,备份文件包括:【.bak】数据库的备份文件,包含日志与库数据文件;
需求目标

实现 sql server 数据库文件本地+异地备份,备份文件包括:

  • 【.bak】数据库的备份文件,包含日志与库数据文件;
  • 【.mdf】数据库数据文件,存放一个数据库的数据信息;
  • 【.ldf 】数据库日志文件,存放对该数据库的更新操作(增、删、改)的文件;

当然以下讲述的方案也可以实现其他文件的备份,按自己的实际需求情况部署配置即可,这里以上述需求目标为例来讲解部署配置相关操作。
backup

环境准备
  • 服务器操作系统 Windows Server 2012R2 及以上版本;
  • DB 数据库版本 SQL Server 2012R2 及以上版本;
  • 数据库GUI管理工具 SQL Server Management Studio(简称SSMS);

以上这些基础环境的安装部署此处省略,不作为本篇文章的重点,以下部署操作基于上面这些基础环境已经安装好,接下来我们展开本次重点讲解的【FreeFileSync 文件同步】方案;
img

资源下载
  • SQL Server en-us/zh-cn & (SSMS) en-us/zh-cn
  • Windows Server en-us/zh-cn
  • MSDN (itellyou.cn)
  • NEXT, ITELLYOU

备份流程

清楚需求目标后,整理备份流程12个环节,如下图所示:
img
查看原图:备份流程

备份原理:

  1. 主(Master)服务器环境部署的主数据库先执行本地数据备份作业,然后把 SQL Server 的【.bak】、【.ldf】和【.mdf】备份文件存储到 IIS 搭建的 FTP 服务器或者其他 FTP/SFTP 服务器环境;
  2. 从(Slave)服务器上面安装部署 FreeFileSync 工具,访问主服务器的FTP/SFTP服务器,并设置同步策略,形成作业计划并添加到 Windows 任务计划程序周期执行;

注意事项:

  • sql server 本地备份参考
    • 使用 Navicat Premium 实现本地数据库文件备份
    • SQL SERVER(使用SSMS)备份数据库文件
  • 部署 FTP/SFTP 服务器,新增 windows 账户并设置用户组,添加账户密码访问;
  • 查看主(Master)服务器搭建的 FTP(端口21) 或 SFTP(端口22) 服务器端口监听,命令 =》【netstat -an】;
  • 验证从(Slave)服务器与主服务器上 FTP 或 SFTP 服务器的网络访问性,命令 =》【telnet ip port】;
  • 防火墙开放 FTP/SFTP 对应的端口;

FreeFileSync 文件同步

FreeFileSync 首先是文件(本地或异地)同步功能,可以在指定的两个文件夹之间进行单向或双向的同步,点击程序窗口右上方的绿色齿轮图标可以设置相关参数;期间也可以自定义需要筛选的文件,有“包括”和“排除”两种过滤方式,按实际情况定义需要过滤的文件类型,此外就是比较不同文件夹中的文件是否相同的功能,不过这个功能比较适合同步之前使用,比较的结果会直接显示在列表中,方便查看,这样你就可以清楚的知道是否需要进行同步操作了,节省系统资源。

其次 FreeFileSync 还是开源、跨平台(Windows、macOS、Linux)和 免费(也有付费版)的工具,GUI 界面管理操作可视化,方便快捷,以下我们使用免费版来实践操作(免费版的功能已经足够目标需求的实现了 😊)
img

Download FreeFileSync

在这里插入图片描述

  • Download the Latest Version - FreeFileSync

imgDownload FreeFileSync 11.15 Windows
imgDownload FreeFileSync 11.15 macOS
imgDownload FreeFileSync 11.15 Linux
SourceDownload FreeFileSync 11.15 Source
imgSubscribe for FreeFileSync update notifications

选择对应系统环境的版本下载即可,此处我们操作部署的环境是 Windows,所以选择 FreeFileSync for Windows 版本下载,安装后界面如下:
在这里插入图片描述

FreeFileSync + IIS/FTP

准备环境:

  • 主(master)服务器采用 IIS 自带的 FTP 服务器;
  • 从(Slave)服务器安装 FreeFileSync for Windows 版本;
  • 从(Slave)服务器部署的 FreeFileSync 添加 Windows 任务计划程序;

IIS 配置操作:

  • 自行参考相关文档,注意不要全选配置( IIS按需添加 )即可;
  • 在 IIS 中配置默认文档 - Internet Information Services | Microsoft Docs

IIS 搭建 FTP 服务器:

  • 客户端 Windows下IIS搭建FTP服务器
  • 服务器端,使用【服务器管理器】安装;

FreeFileSync + SFTP

准备环境:

  • 主(master)服务器配置 SFTP 服务器;
  • 从(Slave)服务器安装 FreeFileSync for Windows版本;
  • 从(Slave)服务器部署的 FreeFileSync 添加 Windows 任务计划程序;

SFTP 工具选型:

  • freeSSHd and freeFTPd - open source SSH and SFTP servers for Windows;
  • CoreFTPServer & mini-sftp-server (coreftp.com)
  • SFTP Server - Secure FTP server software for Windows with SFTP, FTPS, and HTTPS support (coreftp.com)

参考文档:

  • freeSSHd搭建 - 博客园 (cnblogs.com)
  • 迷你FTP服务器(Core FTP mini-sftp-server)
  • WINDOWS下的SFTP服务器安装搭建(OpenSSH;Core FTP Mini-Sftp Server;Core FTP Server;Sysax Mul)

从(Slave)服务器新建文件夹

在从服务器创建如下文件夹(除开系统盘C),比如在数据盘新建如下文件夹:
在这里插入图片描述

  • ffs_batch 存储 FreeFileSync 的批量作业计划;
  • History 存储 Master 服务器的备份文件的历史版本;
  • Logs 存储 FreeFileSync 作业的日志记录信息;

以上文件夹的配置不是唯一的,可以根据自己实际情况和 FreeFileSync 作业计划配置,

从(Slave)服务器添加 Windows 任务计划

在 FreeFileSync 的 GUI 中添加 Master 部署的 FTP/SFTP 服务器地址,并设置访问账号密码信息,如下所示:
在这里插入图片描述
接下来在【同步设置】里面依次配置相应的选项 =>【比较】,【过滤器】和【同步】
在这里插入图片描述
Master 服务器环境安装 SQL Server 的实例路径如下:
在这里插入图片描述
其中 Backup 文件夹就可以存储 SQL Server 本地【.bak】备份文件,而 DATA 文件夹里面存储 SQL Server 相关的【.mdf】+【.ldf】文件,把部署的 FTP & SFTP 服务器文件路径指向这俩文件夹的跟路径【D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL】,为了安全性考虑,可以在 Master 服务器新建用户组,并设置账号密码(注意密码复杂度设置)访问;

同步设置里面分别有:【比较】,【过滤器】和【同步】这三个选项,里面分别设置相应的模式即可,本人此处设置的模式依次如下图所示:

  • 同步设置 => 比较,此处选择【文件和时间大小】,勾选【忽略错误】。
    在这里插入图片描述
  • 同步设置 => 过滤器,排除掉其他文件夹和子文件,过滤规则参考:[排除文件 - 自由文件同步 (freefilesync.org)]。(https://freefilesync.org/manual.php?topic=exclude-files)
    在这里插入图片描述
  • 同步设置 => 同步,此处选择单向的镜像同步策略,删除文件选择【历史版本】,并配置上面创建的文件夹【History】,同时勾选【覆盖默认日志路径】切换为上面创建的文件夹【Logs】,修改【命名规则】为时间戳[文件夹] 模式,并设置右侧的版本保留时间。
    在这里插入图片描述
    由于此处是在VM里面部署的,只有一个虚拟C盘,文件结构如下:
    在这里插入图片描述
    最后把配置好的 FreeFileSync 批处理文件【.ffs_batch】保存到上图【ffs_batch】文件夹中,统一存储,方便后面添加 Windows 的任务计划程序中,实现定时作业备份;

FreeFileSync 批处理文件添加 Windows 的任务计划程序参考文档

  • 从服务器添加任务计划 FreeFileSync 添加 Windows 任务计划程序;

接下来我们看下测试 600M +的文件数据同步情况,如下图所示:
start file rsync
end file rsync

方案总结

以上文件同步方案中,主要是应用 FTP & SFTP 实现文件的传输,其中 FreeFileSync 充当 FTP & SFTP 的客户端,从而间接的做到 DB 数据库备份的目标,优缺点对比如下:

【FreeFileSync + FTP】模式

  • 优点:文件传输效率高;
  • 缺点:安全性低,文件未加密传输;

【FreeFileSync + SFTP】模式

  • 优点:安全性较高,文件加/解密传输;
  • 缺点:文件传输效率较低;

FTP 与 SFTP 的异同 => FTP与SFTP两者有什么区别

两种模式的共同特点

  • 基于 FTP & SFTP 协议的特性,可以做到跨机器,跨平台系统之间的访问;
  • FreeFileSync 支持 Windows,macOS,Linux;

综上所述,FreeFileSync + FTP/SFTP 文件同步备份方案,可以实现多平台之间的文件备份目标,局域网环境为了追求传输效率,可以采用【FreeFileSync + FTP】模式,公网环境建议【FreeFileSync + SFTP】模式,确保相对的安全性,以上两种模式务必设置账户密码访问。


推荐阅读
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 对hishop 商城 web.config加密,和解密码详细说明 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • asp中如何嵌入python的简单介绍
    本文目录一览:1、如何在IIS中执行Python脚本 ... [详细]
  • NetBPM的安装还是比较简单的,有比较详细的文档。1.当然是先下载运行程序了,netbpm-0.8.3.1.zip,官方网站ÿ ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
author-avatar
天极玩家_136
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有