我有一个在 Google Cloud 上运行的系统。该系统有一个运行后端服务器虚拟机的数据库虚拟机和实例组。所有 VM 都使用cos-stable
VM 映像,并运行一个包含其逻辑的 docker 容器。
DB VM 运行一个包含 MariaDB 数据库的 docker 映像。
我想运行一个备份数据库并将其存储在存储桶中的日常作业。我不知道如何解决这个问题。我没有可以处理 cronjobs 的 VM,我不想让另一个 VM 一直在运行,只是为了日常备份。此外,我想使用 FUSE 将存储桶挂载到备份 VM,而不是使用 Google API 写入存储。
我可以在其中一个成本稳定的 VM 上设置 FUSE 和 cronjob 吗?如果没有,我可以拥有一个每天启动然后自行关闭的虚拟机吗?我在 Google Cloud Console 上找到的调度程序用于应用程序引擎或发布/订阅通知,而不是用于启动 VM。
理想情况下,您应该将数据库放在 Cloud SQL 上并利用其自动备份功能。
或者,您可以设置一个 cronjob 来运行 mysqldump 命令并备份它。
实现它的一种选择是:
使用适当的 MySQL 客户端和运行连接到 MariaDB 实例的mysqldump的备份脚本创建 VM 映像并将其保存到 Cloud Store 存储桶 - 您可以将此脚本设置为在启动时运行并在之后关闭实例
创建一个云函数以启动或启动将执行备份例程的 VM
创建一个Cloud Scheduler作业以在每天的特定时间触发您的 Cloud Function