Windows 下 PHP 应用的灾难恢复:构建基于 VSS(卷影复制)的 PHP 数据库一致性备份

好了,各位编程界的同仁,特别是那些还在 Windows 服务器上维护 PHP 应用的苦命开发,把手里的咖啡放下,把那个“我的数据库又挂了”的投诉邮件收起来。 今天我们不谈那些虚头巴脑的架构图,也不谈那些写在博客里“如何优雅地重启服务器”的鸡汤。我们要谈的是硬货,是能保你周末去钓鱼、让你半夜不尿尿的救命稻草——基于 VSS(卷影复制服务)的 PHP 数据库一致性备份。 我知道,听到“VSS”和“PHP”这两个词组合在一起,很多人的第一反应是:“这东西不是 .NET 的专利吗?PHP 不是靠 Linux 吃饭的吗?” 错!大错特错!PHP 在 Windows 上那可是如鱼得水,尤其是当你需要和 SQL Server 深度绑定的时候。只不过,这里有一个绕不过去的坎:文件锁定。 第一部分:PHP 在 Windows 上备份 SQL Server 的“至暗时刻” 想象一下,你的 PHP 脚本正努力地想把数据库文件(.mdf, .ldf)复制到备份服务器上。但不幸的是,此刻 SQL Server 正忙着呢,它紧紧地攥着那些文件的句柄,就像一个便秘的胖子攥着马桶盖不放。PHP 试着去复制,结果呢?P …