问题描述
我们计划从 Cloudsql
迁移我们的 Public to Private IP
实例。由于我们要迁移到 Private IP
上的 SharedVPC
,Google 尚不支持现有实例,因此我们计划在 private IP
上创建带有 sharedVPC
的新实例,并且从旧实例恢复备份。
以下是我基于场景的查询。
- 有什么方法可以检查
Cloudsql instances
中现有数据库的大小? - 备份的存储位置。是
Cloud Storage
还是DB disk
? - 我们可以使用
Cloudsql instance with a private IP
从我的desktop
访问IAP tunneling
吗?
请澄清。
解决方法
我在这里向您提出问题:
1.有什么方法可以检查 CloudSQL 实例中现有数据库的大小?
是的,有。这取决于您使用的数据库引擎(mysql、postgres 或 mssql)
对于mysql,你可以运行:
SELECT table_schema "DB Name",ROUND(SUM(data_length + index_length) / 1024 / 1024,1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
对于postgres,您可以运行:
SELECT pg_size_pretty(pg_database_size('Database Name'));
对于mssql,您可以运行:
SELECT
database_name = DB_NAME(database_id),log_size_mb = CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8. / 1024 AS DECIMAL(8,2)),row_size_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8. / 1024 AS DECIMAL(8,total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2))
FROM sys.master_files WITH(NOWAIT)
WHERE database_id = DB_ID() -- for current db
GROUP BY database_id
2.备份存储在哪里?是 Cloud Storage 还是 DB 磁盘?
云存储。当您 make a Cloud SQL export 时,导出文件为 存储在云存储中。从 Cloud Storage,您可以下载/移动 到不同的位置。
3.我们可以使用 IAP 隧道从我的桌面使用私有 IP 访问 CloudSQL 实例吗?
不,用于 TCP 转发的 IAP 隧道又名 IAP 旨在与 Google Cloud 计算引擎实例一起使用。 引用 documentation:
IAP 的 TCP 转发功能允许用户连接到任意 TCP Compute Engine 实例上的端口。
还有 this feature request 用于扩展 IAP TCP 转发的功能以涵盖 Cloud SQL 实例。我建议然后为问题跟踪器加星标并分享您的反馈,以便增加线程相关性。
连接到仅使用私有 ip 的 Cloud SQL 实例的另一种方法是使用具有外部公共地址的堡垒主机,将所有 TCP 流量转发到您的 Cloud SQL 实例。
我希望你觉得这很有用。