我有一个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?
先感谢那些会回答的人。
答案 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;
来检查二进制日志的大小,进行求和并查看是否能解释差异。