备份文件和SQL数据库1C(在云中并加密)

在本文中,我想分享使用Effector Saver将文件和SQL 1C数据库备份到本地,网络和云存储(使用Google Drive示例)的经验。

该软件支付:2500卢布。
过渡到新版本(从3到4)的费用为:1250₽。

我为一位朋友写了说明,但我认为它将对您中的一个派上用场。

和往常一样,在评论中,您将教我一些新的知识=)

指令的末尾是一个显示任务速度的日志示例。

目的:
按计划自动创建加密备份,并向邮件发送错误报告。

逻辑备份:

  • 每日最后30件(保质期1个月)
  • 每月第一天持续24个(保质期2年)
  • 每年2月1日,最后10件(保质期10年)
  • 备份从备份帐户下上传到备份存储(本地或网络)
  • 备份上传到Goole Drive云(可能使用其自己的OAuth ID客户端/机密)
  • 电子邮件错误报告

一点解释

  • 本手册作为现成的使用示例提供,可以并且应该适应您的需求。
  • 任务可以同时运行,因为 支持并行任务,这大大减少了备份时间。
  • 根据任务执行额外的复制,即 复制已经创建的最后一个备份。 例如,如果要在10号执行附加复制,并且从10号开始对选定任务的备份以错误结束(并且我们没有干预),则该附加复制将为所选任务的上一次成功备份复制一个副本,在我们的示例中为9号。
  • 在该程序中,您可以使用.dt文件形式的1C工具配置数据库的卸载,并自动锁定/解锁数据库并弹出用户。 在本手册中,此方法不被视为备份.dt格式的不可靠方法。

1.安装和设置
安装,运行。
-工具>选项

  • 自动加载
    作为Windows服务运行(服务器)
    备用用户,您的密码

    备份用户的说明,该用户使用单独的帐户
    对于备份,我认为创建和使用单独的帐户(例如备份)很重要。 它可以是本地和域记帐。
    应该将管理员访问备份存储的权限配置为读取,并且仅允许记帐备份写入。 这样可以保护您的备份免受许多危险(坏头,病毒)的伤害。 而且,如果您需要对备份存储进行任何更改,则始终可以给自己临时访问权限,或者代表备份帐户运行任何资源管理器(例如Total Commander)以获得对存储的完全访问权限。

  • 座席参数
    允许流任务同时工作 :5
    我们从服务器功率和通道速度(用于上传到云)中选择Internet
    使用指定的临时文件目录
    \\ NAS \备份\ Temp

    网络路径说明
    希望使用此程序将网络文件夹放在计算机上。 实际上,对我们来说,它将是一个本地文件夹(如果速度允许,则为任何其他网络路径)。
    对Temp文件夹(临时文件目录)的访问应为:

    1. 用于备份写
    2. 从中运行MS SQL Server服务进行写入的记帐
    3. 管理员阅读

    不幸的是,该程序在设置SQL数据库备份时不会向用户报告其功能。 她认为SQL Server与她在同一台计算机上。 创建SQL数据库的备份后,临时文件夹的路径将从字面上传递到SQL Server,并且SQL Server将备份上传到其本地临时文件夹。 之后,他无法在其临时文件夹中找到备份,并抛出错误。

    为了解决此限制,我们选择临时文件夹的网络路径。 然后,SQL Server将接收网络路径,并将在该地址卸载备份。

    在未来的版本中,开发人员承诺考虑添加SQL备份任务的设置,在该设置中可以指定要卸载的网络路径,而不必将常规路径更改为临时文件夹。
  • 经理选项
    如果不需要的用户可以访问该程序,请设置密码。
  • 存档文件
    结束档案名称的选项 :yyyy.mm.dd_hh.nn.ss
    对于没有空格的美学和名称(旧习惯)
  • 办公室
    云中的OAuth应用程序数据-更新ClientID / ClientSecret数据

    这里没有必要进行更改,但是与往常一样,有一个小的BUT
    最近,由于超出OAuth限制,我在将备份上传到云时收到错误。 该错误只有一次,开发人员已解决此问题,但为什么要再次等待它。 我决定将我的OAuth放在Google云端硬盘上,然后再解决它。
    有关如何获取您的客户ID和机密的图片的说明,请参见以下网址https : //github.com/Cloudbox/Cloudbox/wiki/Google-Drive-API-Client-ID-and-Client-Secret

2.准备
-工具>存储管理>创建
  • 本地/网络文件夹
    这里的一切都清楚了,按照我们的备份逻辑(在本文开头),为方便起见,我们创建了三个存储库
    \\ NAS \备份\ Everyday
    \\ NAS \备份\ EveryMonth
    \\ NAS \备份\每年
  • Google云端硬盘
    创建与Google Cloud驱动器的连接。
    让我们根据逻辑命名:Everyday
    单击授权按钮,输入用户名/密码,准备好。

    如果在服务器或另一台计算机上远程配置它
    然后,您可以通过其他方式执行授权。 我们关闭登录和密码输入窗口-出现授权错误-单击“ 用户模式”按钮,然后单击“ 获取确认码”链接,授权链接将在浏览器中打开。 将链接复制到计算机,登录到计算机,确认访问权限,获取密钥,然后将其复制回用户模式下的“ 应用程序授权”窗口的字段,然后单击“确定”。

    同样,选择云中文件夹的路径:
    备份/每天

    我们通过复制为创建每月和每年的副本提供额外的云存储(创建>复制)
    结果,我们得到了3个云存储:
    每天(Google云端硬盘)
    每月(Google云端硬盘)
    每年(Google云端硬碟)
    这样就完成了仓库管理设置。

3.创建备份任务

3.1。 任务>添加任务>备份文件和数据库(SQL)
  • 关键参数
    在存档中包含SQL数据库的备份 (例如,Microsoft SQL Server)
  • Microsoft SQL基础
    我们注册所有详细信息。
    我们检查TCP 1433端口是否在MS SQL服务器上打开。
    点击: 检查
  • 档案储存
    -添加存储\\ NAS \备份\ Everyday
    自动删除过时的备份 :30
    - 每天添加存储(Google云端硬盘)
    自动删除过时的备份 :30
  • 存档文件
    存档文件名:数据库名
    档案名称结尾 :yyyy.mm.dd_hh.nn.ss
    存档
    格式 :7z
    压缩 :无压缩

    为什么不压缩?
    备份SQL数据库时,应考虑2个选项

    1.使用SQL Server工具压缩数据库。 -快速,但压缩比7z差。
    如果选择此选项,则需要:
    -选择:无压缩(因为压缩已压缩的.bak文件无用)
    -在MS SQL Server的属性中包括 :数据库选项>压缩备份。

    2.使用7z进行数据库压缩-速度较慢,但​​压缩效果优于SQL。
    如果选择此选项,则需要:
    -选择:最大压缩
    -在MS SQL Server的属性中, 禁用 :数据库参数>压缩备份。

    在SQL备份中,我使用第一个选项,尽管它压缩得更糟,但是卸载要在几分钟(甚至几秒钟)内完成。 但是第二种选择可能会持续数小时。

    在该程序的未来版本中,开发人员承诺考虑将压缩MS SQL数据库的选项添加到任务的属性中,以免遇到MS SQL服务器的属性。

    加密档案
    加密文件名
    设置密码(写下来,如果您忘记了,将无法还原备份)
  • 启动时间表:
    按计划运行 :启用
    每日03:00
  • 中止任务:启用
    2小时 0分钟

3.2。 任务>添加任务>备份文件和数据库(文件)
  • 关键参数
    在存档中包含文件
  • 档案
    文件的路径:选择1C文件库所在的文件夹的路径,例如“ D:\ Bases”
    如果我们要备份子目录中的所有数据库,请选择:
    保存文件的名称,目录...
    1Cv8.1CD
    包括子目录(递归)

    如果要备份子目录中的选定数据库,请选择:
    保存文件的名称,目录...
    布\ 1Cv8.1CD
    贸易\ 1Cv8.1CD
  • 档案储存
    -添加存储\\ NAS \备份\ Everyday
    自动删除过时的备份 :30
    - 每天添加存储(Google云端硬盘)
    自动删除过时的备份 :30
  • 存档文件
    存档文件名:数据库名
    档案名称结尾 :yyyy.mm.dd_hh.nn.ss
    存档
    格式 :7z
    压缩最大
    加密档案
    加密文件名
    设置密码(写下来,如果您忘记了,将无法还原备份)
  • 启动时间表:
    按计划运行 :启用
    每日03:00
  • 中止任务:启用
    2小时 0分钟

我们设置了每日备份的主要任务,然后转到其他

4.任务>添加任务>附加复制
  • 关键参数
    备份任务-来源 :选择所需任务
    存储...来源 :选择存储\\ NAS \备份\ Everyday
  • 档案储存
    -添加存储\\ NAS \备份\ EveryMonth
    自动删除过时的备份 :24
    -添加存储EveryMonth(Google云端硬盘)
    自动删除过时的备份 :24
  • 存档文件
    存档文件名:数据库名
    档案名称结尾 :yyyy.mm.dd_hh.nn.ss
    存档
    格式 :7z
    压缩 :无压缩
    加密档案
    加密文件名
    设置密码(写下来,如果您忘记了,将无法还原备份)
  • 启动时间表:
    按计划运行 :启用
    每月一次 所有月份均为第一天。
    05:00
  • 中止任务:启用
    2小时 0分钟

以此类推,我们为年度计划创建“ 附加复制”任务,以提高速度,复制上一个每月任务,并更改其中的名称,存储和时间表
  • 档案储存
    -添加存储\\ NAS \备份\每年
    自动删除过时的备份 :12
    - 每年添加存储(Google云端硬盘)
    自动删除过时的备份 :12
  • 启动时间表:
    按计划运行 :启用
    每月一次 2月1日(年关闭)
    05:00

我们配置了其他备份任务,然后继续通过电子邮件生成报告

5.任务>添加任务>发送报告
  • 关键参数
    天数 ::1
  • 我们选择所有任务,为所有我们选择记录过滤器:错误日志记录
  • 邮件选项
    填写邮件的详细信息。 发送报告的位置和主题。
  • 启动时间表:
    按计划运行 :启用
    日报
    07:00

仍然需要依次运行所有任务并检查错误。

重达52GB(mdf)的MS SQL数据库的备份日志示例:
===========================================
: Base1
:
: SRVTS0
: 4.5 / 2
: ,
: 11.11.2019 4:01:08
: 11.11.2019 5:13:57
:
===========================================
11.11.2019 4:01:08 - MSSQL "Base1" ...
11.11.2019 4:01:08 - SQL Server version 11
11.11.2019 4:22:15 -
11.11.2019 4:22:15 - ...
11.11.2019 4:22:15 - 7z, , c
11.11.2019 4:26:50 - 1 , 0
11.11.2019 4:26:50 -
11.11.2019 4:26:52 - 5,41 GB "EveryDay (Google )" ...
11.11.2019 4:26:54 - "Base1_2019.11.11_04.26.52.7z" 5,41 GB (1 1)
11.11.2019 5:13:57 -
11.11.2019 4:26:52 - 5,41 GB "\\NAS\Backup\EveryDay" ...
11.11.2019 4:26:52 - "Base1_2019.11.11_04.26.52.7z" 5,41 GB (1 1)
11.11.2019 4:28:13 -

从日志中可以看出,同时下载到存储和云。
27分钟后,到保管库的备份已完成。 从任务开始1小时12分钟后,它被上传到云中。
假设同时同时又执行了4个数据库备份任务,其大小分别为38GB,28GB,6GB和5GB(mdf)。
所有任务同时在4:00开始,并在5:15:00之前成功完成。

结论:

当然,除了本文已经描述的那些缺陷以外,还有一些细微的缺陷:

  • 无法以文本文件(即文本文件,而不是mdb等)的形式导出和导入设置和任务,以便您可以轻松打开和编辑
  • OAuth设置没有可视化保存,它始终为空并且不清楚是否已配置
  • 无法快速打开/关闭任务(您需要打开每个任务并按照时间表进行操作)。 尽管主窗口直观地要求双击复选标记。

但总的来说,我对结果感到非常满意。 我发现该程序非常有用。

写关于您的备份算法的信息,这些算法可能会对您有很大帮助,并且可能对其他人有用。
UPD1:感谢Filex ,添加了有关软件成本的信息

Source: https://habr.com/ru/post/zh-CN474944/


All Articles