首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用基于VSS的备份解决方案安全备份MySQL

如何使用基于VSS的备份解决方案安全备份MySQL
EN

Server Fault用户
提问于 2010-11-28 21:30:40
回答 2查看 7.8K关注 0票数 4

我的一个客户端正在Windows 2008系统上运行MySQL。它们的常规备份使用StorageCraft的ShadowCopy执行,后者使用VSS服务对打开的文件执行备份。

一些调查表明,MySQL并不完全是VSS感知的,需要在阴影操作之前锁定表,然后再解锁。http://forum.storagecraft.com/Community/forums/p/548/2702.aspx上有一篇文章指出了需要执行的步骤,但是用户在执行这些步骤时遇到了一些困难,而且从来没有发布过后续解决方案。具体来说,他们成功地编写了一个批处理文件来锁定数据库,但是,一旦批处理文件从MySQL返回,它就会丢弃连接,从而放弃锁。

我正在寻找一种方法,可以发送MySQL命令FLUSH TABLES WITH READ LOCK,然后执行备份,然后在备份完成后发送UNLOCK TABLES

或者,我可以将MySQL数据存储文件夹排除在备份之外,并将mysqldump备份安排到一个文件夹中,然后由VSS进行备份。

请给我一些建议好吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-02-15 12:08:59

作为MySQL指令的“系统”或"!“只在linux下工作,您只能停止您的服务,获取您的vss快照并启动服务。

系统命令允许从mysql内部获取vss快照,这样您就不会丢失锁。我相信它是用于LVM快照备份。

票数 3
EN

Server Fault用户

发布于 2019-10-21 04:46:39

迟了回答,但我想我找到了办法。至少,当我以这种方式恢复复制时,它没有抱怨InnoDB日志序列在未来,也没有指责我不正确地关闭服务器--尽管它确实认为发生了一次崩溃,并使用二进制日志进行了恢复。YMMV,在您依赖备份之前测试它们。

编辑:也不确定这对ShadowProtect有多大帮助,但也许可以看看是否可以从命令行启动备份进程,并将其作为预定的任务运行。如果您想在本地使用VSS,这肯定会有所帮助。

下面是我使用的批处理文件,称为flush_lock_vss.bat -M和L驱动器,分别用于数据和二进制日志:

代码语言:javascript
复制
@echo off

echo FLUSH TABLES WITH READ LOCK;

vssadmin create shadow /for=m: >&2
vssadmin create shadow /for=l: >&2

echo UNLOCK TABLES;
echo \q

将此输入输入到mysql进程中-当然,以管理员的身份运行它:

代码语言:javascript
复制
C:\where\you\are> flush_lock_vss | C:\path\to\mysql-install\bin\mysql.exe -u username --password=TotallySecretPwd!

您将看到vssadmin命令的输出,但是FLUSHUNLOCK命令将被发送到您的MySQL实例。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/206784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档