Backup/Restore 在 CloudSQL 实例上

Backup/Restore on CloudSQL instances

我们计划从 Public to Private IP 迁移 CloudSQL 个实例。由于我们正在迁移到 SharedVPC 上的 Private IP,现有实例尚未得到 Google 的支持,因此我们计划在 [=] 上创建具有 private IP 的新实例16=] 并从旧实例恢复备份。 以下是我基于场景的查询。

  1. 有什么方法可以检查 CloudSQL instances 中现有数据库的大小?
  2. 备份的存储位置。是 Cloud Storage 还是 DB disk
  3. 我们可以使用 IAP tunneling 从我的 desktop 访问 CloudSQL instance with a private IP 吗?

请澄清。

在这里我向您提出问题:

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,2))
    , 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.Where备份保存了吗?是云存储还是数据库盘?

云存储。当你make a Cloud SQL export时,导出文件是 存储在云存储中。从云存储,您可以 download/move 它到另一个位置。

3。我们可以使用 IAP 隧道从我的桌面使用私有 IP 访问 CloudSQL 实例吗?

不,用于 TCP 转发的 IAP 隧道 aka IAP 旨在与 Google 云计算引擎实例一起使用。 引用 documentation:

IAP's TCP forwarding feature allows users to connect to arbitrary TCP ports on Compute Engine instances.

还有 this feature request 扩展 IAP TCP 转发功能以覆盖云 SQL 实例。然后我会建议给问题跟踪器加注星标并分享您的反馈,以便线程相关性增加。

另一种连接到仅具有私有 ip 的云 SQL 实例的方法是使用具有外部 public 地址的堡垒主机,将所有 TCP 流量转发到您的云 SQL实例.

我希望你觉得这有用。