我可以告诉 Google Cloud SQL 将我的备份恢复到一个完全不同的数据库吗?
Can I tell Google Cloud SQL to restore my backup to a completely different database?
因为有 SQL 的每晚备份,我们想知道如何将此备份恢复到同一 MySQL 服务器实例中的不同数据库的好方法。我们所有的生产数据库都有 prod_xxxx,所有的登台数据库都有 staging_xxxx(是的,不是很好,因为它们现在都在同一个 mysql 实例上)。
无论如何,我们很乐意将所有 tables/constraints/etc 和数据从 prod_incomingdb 恢复到 staging_incomingdb。这在云端可能吗 SQL?
我无法弄清楚夜间备份,因为它似乎可以恢复整个实例。我认为以上问题的答案是否定的。我确实发现我可以导出然后导入(虽然不是我想要的,因为我不想在白天导出我们的数据库,但现在,我们可以使用它并在以后自动执行夜间导出)。
由于这是一个生产实例,我建议您在开始之前执行备份,以避免任何数据损坏。
要在同一实例中克隆数据库,没有直接的方法来执行任务(这是 MySQL 上缺少的功能)。
为了在同一个 MySQL 云 SQL 实例中成功克隆数据库,我遵循了这条路径。
1.- 按照这些 steps
使用 Google 云控制台(Web UI)创建所需数据库的转储
*仅以 SQL 格式转储 所需数据库 非常重要,请勿转储 select 多个数据库。
完成该过程后,转储将在 Google 云存储桶中可用。
2.- 使用 linux.
将转储文件下载到 Compute Engine VM 或任何本地计算机
3.- 请替换 USE
子句中的数据库名称(旧的)。
我对下载的转储使用了这个 sed 命令来更改数据库的名称
sed -i 's/USE `employees`;/USE `emp2`;/g' employees.sql
*这可能需要几秒钟,具体取决于文件的大小。
4.- 将更新后的文件上传到云存储桶。
5.- 在您的 Cloud SQL 实例上创建一个新的空数据库,在这种情况下,我的目标实例称为 emp2
。
6.- 按照这些 steps
导入修改后的转储
因为有 SQL 的每晚备份,我们想知道如何将此备份恢复到同一 MySQL 服务器实例中的不同数据库的好方法。我们所有的生产数据库都有 prod_xxxx,所有的登台数据库都有 staging_xxxx(是的,不是很好,因为它们现在都在同一个 mysql 实例上)。
无论如何,我们很乐意将所有 tables/constraints/etc 和数据从 prod_incomingdb 恢复到 staging_incomingdb。这在云端可能吗 SQL?
我无法弄清楚夜间备份,因为它似乎可以恢复整个实例。我认为以上问题的答案是否定的。我确实发现我可以导出然后导入(虽然不是我想要的,因为我不想在白天导出我们的数据库,但现在,我们可以使用它并在以后自动执行夜间导出)。
由于这是一个生产实例,我建议您在开始之前执行备份,以避免任何数据损坏。
要在同一实例中克隆数据库,没有直接的方法来执行任务(这是 MySQL 上缺少的功能)。
为了在同一个 MySQL 云 SQL 实例中成功克隆数据库,我遵循了这条路径。
1.- 按照这些 steps
使用 Google 云控制台(Web UI)创建所需数据库的转储*仅以 SQL 格式转储 所需数据库 非常重要,请勿转储 select 多个数据库。
完成该过程后,转储将在 Google 云存储桶中可用。
2.- 使用 linux.
将转储文件下载到 Compute Engine VM 或任何本地计算机3.- 请替换 USE
子句中的数据库名称(旧的)。
我对下载的转储使用了这个 sed 命令来更改数据库的名称
sed -i 's/USE `employees`;/USE `emp2`;/g' employees.sql
*这可能需要几秒钟,具体取决于文件的大小。
4.- 将更新后的文件上传到云存储桶。
5.- 在您的 Cloud SQL 实例上创建一个新的空数据库,在这种情况下,我的目标实例称为 emp2
。
6.- 按照这些 steps
导入修改后的转储