导出数据

本页面介绍如何从 Cloud SQL 实例导出数据。

要将数据导出到 Cloud Storage,您必须已为实例的服务帐号设置了项目的 storage.objectAdmin IAM 角色。如需了解详情,请参阅适用于 Cloud Storage 的 Cloud Identity and Access Management

要了解导出数据的最佳做法,请参阅导入和导出数据的最佳做法

要了解导出数据的最佳做法,请参阅导入和导出数据的最佳做法

将 Cloud SQL 中的数据导出到 BAK 文件

准备工作

此过程需要您将文件导出到 Cloud Storage。要将数据导出到 Cloud Storage,您必须已为实例的服务帐号设置了项目的 storage.objectAdmin IAM 角色。如需有关 IAM 角色的帮助,请参阅适用于 Cloud Storage 的 Cloud Identity and Access Management

您可以在 Google Cloud Console 中实例的概览页面上找到实例的服务帐号名称。您可以使用 gsutil 工具检查存储分区,以验证 Cloud Storage 存储分区的角色:

gsutil iam get gs://[BUCKET_NAME]

详细了解如何搭配使用 IAM 和存储分区。

将数据导出到 Cloud Storage 中的 BAK 文件

如需将 Cloud SQL 实例上的数据库数据导出到 Cloud Storage 存储分区中的 BAK 文件,请执行以下操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击要从中导出数据的实例,以打开其概览页面。
  3. 点击按钮栏中的导出
  4. Cloud Storage 导出位置下,选择浏览以搜索用于导出的 Cloud Storage 存储分区或文件夹。
  5. 格式下,点击 BAK
  6. 用于导出的数据库下,使用下拉菜单选择要从中导出数据的数据库。
  7. 点击导出开始导出。
  8. 此时会打开导出数据库?对话框,提示大型数据库的导出过程可能需要一个小时或更长时间。在导出期间,您可在实例上执行的唯一操作是查看信息。导出一旦开始后就无法停止。如果此时适合开始导出,请点击导出。否则,请点击取消

gcloud

  1. 创建 Cloud Storage 存储分区(如果您尚未创建)。

    有关创建存储分区方面的帮助信息,请参阅创建存储分区

  2. 将文件上传到存储分区。

    有关将文件上传到存储分区方面的帮助信息,请参阅上传对象

  3. 描述要从中进行导出的实例:
      gcloud sql instances describe [INSTANCE_NAME]
      
  4. 复制 serviceAccountEmailAddress 字段。
  5. 使用 gsutil iam 向服务帐号授予该存储分区的 storage.objectAdmin IAM 角色。如需有关设置 IAM 权限的帮助,请参阅使用 IAM 权限
  6. 导出数据库:
      gcloud beta sql export bak [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.sql.gz \
                                  --database=[DATABASE_NAME]
      

    如需了解如何使用 gcloud beta sql export bak 命令,请参阅命令参考页面

  7. 如果您不需要保留之前设置的 IAM 角色,请立即撤消该角色。

REST

  1. 为导出创建一个存储分区:
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    此步骤非必需,但强烈建议执行此步骤,确保您不会访问任何其他数据。

  2. 为您的实例提供存储分区的 storage.objectAdmin IAM 角色。如需有关设置 IAM 权限的帮助,请参阅使用 IAM 权限
  3. 导出数据库:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • bucket_name:Cloud Storage 存储分区名称
    • path_to_dump_file:SQL 转储文件的路径
    • database_name_1:Cloud SQL 实例中数据库的名称
    • database_name_2:Cloud SQL 实例中数据库的名称
    • offload:启用导出分流。设置为 true 可使用导出分流

    HTTP 方法和网址:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    请求 JSON 正文:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_dump_file",
          "databases": ["database_name"]
          "offload": true | false
        }
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该会收到类似以下内容的 JSON 响应:

  4. 如果您不需要保留之前设置的 IAM 角色,请立即撤消该角色。
如需查看此请求的参数的完整列表,请参阅实例:导出页面。

后续步骤