LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

服务器磁盘或SQL Server/MySQL数据库在线物理热备工具Restic

admin
2025年1月9日 22:4 本文热度 17

Restic 是一款用GO编写的开源备份程序。它支持主要的操作系统 Linux、macOS、Windows ,以及 FreeBSD、OpenBSD。它可将数据备份至不同的目标存储上,包括云存储。Restic 遵循五个设计原则:简单、快速、可验证、安全、高效。如今在 github 上已有 23k star,社区也持续在维护中。

实践是检验真理的唯一标准,既然那么好,我们就测试看看。

# CentOS 安装 Resticwget https://github.com/restic/restic/releases/download/v0.16.3/restic-0.16.3.tar.gztar -zxvf restic-0.16.3.tar.gzcd restic-0.16.3go run build.gomv restic /usr/bin/restic
# Windows 安装 Restic下载 https://github.com/restic/restic/releases/download/v0.16.3/restic_0.16.3_windows_amd64.zip解压 restic_0.16.3_windows_amd64.exe , 更名为 restic.exe , 移动到 %SystemRoot%\System32

安装完成后,第一步我们先确定我们的数据要存储到哪里,也就是先设置存储库(repository)。你可以备份至本地目录、sftp服务器、rest服务器、OpenStack Swift 容器、Amazon S3 存储桶、Google Cloud Storage、微软Azure Blob、阿里云OSS、腾讯云COS等。

Linux中物理热备MySQL

创建新的存储库(保存备份的目录),会创建响应的其他目录,这些目录存储备份、一些相应的元数据和加密密钥。要访问存储库,必须指定密码,一个存储库可以保存多个密钥。

​mkdir -p /opt/restic-repo/192.168.111.150restic init --repo /opt/restic-repo/192.168.111.150 #自定义密码,记住!ll /opt/restic-repo/192.168.111.150-r--------   1 root root  155 Feb 13 08:21 configdrwx------ 258 root root 8192 Feb 13 08:21 datadrwx------   2 root root    6 Feb 13 08:21 indexdrwx------   2 root root   78 Feb 13 08:21 keysdrwx------   2 root root    6 Feb 13 08:21 locksdrwx------   2 root root    6 Feb 13 08:21 snapshots

现在我要备份MySQL目录,指定的 repository 为刚创建的路径。需要输入刚才的密码噢

restic -r /opt/restic-repo/192.168.111.150 --verbose backup /data/mysql3306

备份完成后,可以通过 snapshots 查看目录中的所有备份记录

restic -r /opt/restic-repo/192.168.111.150 snapshots

即使MySQL正在运行中,也是可以进行热备的,不影响数据的写入。唯一不方便、但也比较安全的一点是:你不能直接查看到备份的明文数据。Restic可以排或包含指定的文件备份,可以对比备份记录的差异等。


Windows中逻辑备份MySQL至Linux存储库

inux简单测试过了,现在开始验证一下怎么在Windows中,将数据备份至Linux中的存储库。

在Windows中打开powershell,生成本机密钥(默认在用户目录),再将公钥添加到linux服务器中,这是为了避免在Windows操作输入密码。完成后,创建存储库,通过sftp指定Linux服务器及任意路径。

ssh-keygen -t rsacat C:\Users\<user>\.ssh\id_rsa.pub | ssh root@192.168.111.150 "mkdir -p ~/.ssh;cat >> ~/.ssh/authorized_keys"restic init --repo sftp:root@192.168.111.150:/opt/restic-repo/192.168.111.3

由于powershell的管道设计没shell好,容易出现问题,我们都尽量避免输入相应的restic存储库密码。在Windows中创建一个密码文件(E:\Backup\restic_passfile.conf),里面保存一个明文的存储库访问密码。万事俱备,接下来进行备份。

#备份MySQL.\mysqldump -h 127.0.0.1 -P3306 -uroot -pmysql --single-transaction -B devops | restic -r sftp:root@192.168.111.150:/opt/restic-repo/192.168.111.3 backup --password-file E:\Backup\restic_passfile.conf --stdin --stdin-filename devops.sql
#查看存储库restic -r sftp:root@192.168.111.150:/opt/restic-repo/192.168.111.3 snapshots

如果打算在Windows中使用压缩,可安装gzip。打开网址 https://gnuwin32.sourceforge.net/packages/gzip.htm 下载 Binaries 解压,拷贝 bin\gzip.exe 到 C:\Windows\System32\。

[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("UTF-8").\mysqldump -h 127.0.0.1 -P3306 -uroot -pmysql --single-transaction -B devops | gzip --rsyncable -c | restic -r sftp:root@192.168.111.150:/opt/restic-repo/192.168.111.3 backup --password-file E:\Backup\restic_passfile.conf --stdin --stdin-filename devops.sql.gz

类似的,你可以在Linux或Windows中,使用数据库相关的逻辑备份工具mongodump、pg_dump 等。

更多Restic 相关命令:

restic -r /opt/restic-repo/192.168.111.3 snapshots # 查看快照restic -r /opt/restic-repo/192.168.111.3 stats  # repo 统计restic -r /opt/restic-repo/192.168.111.3 stats b5365ec9  # 指定 repo 统计restic -r /opt/restic-repo/192.168.111.3 ls b5365ec9  #列出文件信息restic -r /opt/restic-repo/192.168.111.3 list snapshots # blobs|packs|index|snapshots|keys|locks]restic -r /opt/restic-repo/192.168.111.3 diff 4c6d8ea3 188e8af2 # 对比快照restic -r /opt/restic-repo/192.168.111.3 forget 188e8af2 #删除快照restic -r /opt/restic-repo/192.168.111.3 restore 4c6d8ea3 --target /tmp/ #MySQL恢复文件


Windows中物理备份SQLServer至腾讯云COS

现在开始验证一下怎么在Windows中,将SQLServer备份至腾讯云对象存储COS!Restic 支持备份亚马逊s3存储桶,但国内的云厂商是没有明确说明的,如何设置呢?

我们知道访问云上存储桶的命令,大多数云厂商设置的参数基本都差不多,我们只要将restic支持的AWS相关参数的值,改为国内对应云厂商的存储桶参数值就好。restic备份至阿里云存储桶OSS已经有人测试过了,我这里就测试如何备份至腾讯云对象存储COS。

这里需要restic的几个环境变量AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION、RESTIC_PASSWORD(或RESTIC_PASSWORD_FILE)、RESTIC_REPOSITORY,主要也是避免在命令行中显式输入而报错。如果在Linux中,可以通过 export 设置变量值,在Windowspowershell中,我们设置并执行如下命令:

$Env:AWS_ACCESS_KEY_ID='XXXXXXXXXXXXX'$Env:AWS_SECRET_ACCESS_KEY='XXXXXXXXXXXXX'#$Env:AWS_DEFAULT_REGION='ap-guangzhou'#$Env:RESTIC_PASSWORD_FILE='E:\restic_passfile.conf'$Env:RESTIC_PASSWORD='XXXXXXXXXXX'$Env:RESTIC_REPOSITORY='s3:https://cos.ap-guangzhou.myqcloud.com/mycos/backup/restic/'

接下来的restic命令使用就非常简单了,省去了参数的输入。在 Windows 上,使用--use-fs-snapshot选项将在创建备份时使用 Windows 的卷影复制服务 (VSS)。Restic 将为包含要备份的文件的每个卷透明地创建 VSS 快照。文件是从 VSS 快照而不是常规文件系统中读取的。这允许备份在备份期间被另一个进程独占锁定的文件。在SQLServer中,使用VSS支持需要启动SQL Server VSS Writer 服务。

restic initrestic --use-fs-snapshot backup E:\MSSQL\Datarestic --use-fs-snapshot backup E:\MSSQL\Data\devops.bakrestic --use-fs-snapshot backup E:\MSSQL\Data\devops.mdfrestic --use-fs-snapshot backup E:\MSSQL\Data --exclude="tempdb.*" --compression maxrestic snapshotsrestic stats 024b70c7restic forget 024b70c7restic restore 024b70c7 --target E:/MSSQL/

restic 的优势在于物理热备份,然而当今大多数企业都使用云计算,这类备份工具反而没有那么好用了。不过,对于一些临时的数据或文件迁移,restic也是不错的一种选择。对于使用命令行管理不方便的,可下周一个简单的跨平台Restic GUI——restic-browser。


阅读原文:原文链接


该文章在 2025/1/10 11:07:20 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved