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

时间:2019-01-28 18:01:52

标签: google-cloud-platform google-cloud-sql

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

prod数据库通过一些简单的ETL流程自动从不同的数据源接收数据,我不想将这些数据负载复制到登台数据库中。这些自动化流程不应在分阶段运行,因为大多数时候它们对于测试目的来说都是不必要的。我也不想创建一个与产品一样大的登台数据库。

考虑到我上面所说的内容,并且我没有使用不同的项目来设置暂存/产品环境,所以我要提出几个问题:

  1. 我已经意识到GCP中具有克隆数据库的功能。我从未使用过它,但是我不知道是否不时克隆prod数据库来创建我的登台数据库是否是一个好习惯,因为进行备份和还原会很麻烦。

  2. 是否可以以逻辑方式使用克隆功能(仅选择一些要克隆的表,等等)?还是完全依靠物理备份?

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

  4. 如果我将单独的项目用于dev / test / prod。有什么方法可以同步不同的数据库环境?

1 个答案:

答案 0 :(得分:1)

1-克隆功能适用于cloning instances。因此,您可以克隆整个数据库。

2-您不能仅克隆某些表,但可以使用以下方法export使用此表:

gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz --database=[DATABASE_NAME] --table=[TABLE_NAME]

3-现在,您可以执行此操作using SQL,然后将save the query作为一个表并导出该表。

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