了解gcloud sql export sql和后续导入的行为

时间:2018-10-18 13:16:44

标签: google-cloud-sql gcloud

我有一个Google Cloud SQL实例,出于我的目的,我决定创建一种副本。为此,我决定导出实例数据库,创建第二个数据库,并将导出的第一个实例的备份导入第二个实例。

在开始之前,我检查了已使用的存储空间,发现它约为125GB。然后,我使用以下命令导出数据库:

gcloud sql export sql MY_INSTANCE gs://MY_BUCKET/2018-10-17/mysql/MY_DB.mysql.sql.gz --database=MY_DB

完成后,正如我所说,我将该备份导入了“副本实例”,并且……感到惊讶!使用的存储空间为180GB!

那怎么可能?为什么“副本实例”比第一个实例使用55GB?

先感谢那些会回答的人。

1 个答案:

答案 0 :(得分:2)

对此的一种可能解释是“ bin_log”大小。导入后,它确实会计入磁盘大小。

要查看您数据本身是否与我建议运行的大小相同,

SELECT
  ROUND(SUM(data_length + index_length) / 1024 / 1024/ 1024, 1) "DB Size in GB"
FROM
  information_schema.tables;

两个实例上进行比较,以比较尺寸以得到更准确的测量结果。

您还可以通过在两个实例中同时运行SHOW BINARY LOGS;来检查二进制日志的大小,进行求和并查看是否能解释差异。