如何将 Cloud SQL prod 数据库与另一个 Cloud SQL 临时数据库同步?

d4n*_*nco 5 google-cloud-sql google-cloud-platform

目前,我的 Google 帐户中有一个 Cloud SQL 实例 (PostgreSQL),但我想创建一个临时数据库,以便可以在对产品 Cloud SQL 数据库进行架构更改之前执行一些测试。

prod 数据库通过一些简单的 ETL 过程自动接收来自不同数据源的数据,我不想在临时数据库上复制这些数据加载。这些自动化流程不应在暂存中运行,因为大多数时候它们对于测试目的来说是不必要的。我也不想创建与产品一样大的临时数据库。

考虑到我上面所说的以及我不使用不同的项目来设置暂存/生产环境,我有几个问题要问:

  1. 我意识到 GCP 中有一个克隆数据库的功能。我从未使用过它,但我想知道时不时克隆我的产品数据库来创建我的临时数据库是否是一个好习惯,因为进行备份和恢复可能很痛苦。

  2. 我可以以逻辑方式使用克隆功能(仅选择一些表进行克隆等)吗?还是完全依赖物理备份?

  3. 我想克隆一个巨大的数据库可能需要几个小时,所以我想知道是否有一种方法可以仅应用两个数据库之间的差异,这样我就不必每次都克隆整个数据库,类似于复制方法?

  4. 如果我对开发/测试/生产使用单独的项目。同步不同数据库环境的可用方法有哪些?

Nah*_*ela 4

1-克隆功能用于克隆实例。所以你克隆了整个数据库。

2-您不能只克隆一些表,但您可以使用以下方法导出所需的表:

gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz --database=[DATABASE_NAME] --table=[TABLE_NAME]
Run Code Online (Sandbox Code Playgroud)

3- 现在,您可以使用 SQL执行此操作,然后将查询保存为表并导出该表。

4- 有多种方法可以连接到 SQL 实例,例如psql客户端、使用标准 PostgreSQL 客户端-服务器协议的第三方工具、Cloud App Engine 等。