导出数据库集群

在导出数据之前,您必须执行以下操作:

向 Database Service 导出服务帐号授予对目标对象存储桶的写入权限。此角色绑定必须在与主题数据库集群相同的命名空间内创建。请参阅授予和获取存储权限。

创建数据库集群时,Database Service 系统会自动创建此服务帐号。如需查找包含由控制器维护的服务帐号的命名空间,请使用以下命令:

kubectl get dbclusters.postgresql <var>DATABASE_CLUSTER_NAME</var> -n <var>PROJECT_NAMESPACE</var> -o jsonpath='{.status.serviceAccounts.export}'

kubectl get dbclusters.postgresql <var>DATABASE_CLUSTER_NAME</var> -n <var>PROJECT_NAMESPACE</var> -o jsonpath='{.status.serviceAccounts.import}'

获得命名空间后,您要查找的服务帐号名称为 postgresql-export-DATABASE_CLUSTER_NAME。

将 DATABASE_CLUSTER_NAME 替换为您要从中导出数据的数据库集群的名称。

您可以使用 GDC 控制台或 Distributed Cloud CLI 将数据库集群导出到数据转储文件:

控制台

  1. 在主菜单中,选择 Database Service 。
  2. 选择要导出的数据库集群。系统随即会转到该集群的数据库集群概览 页面。
  3. 点击 导出。系统会打开导出数据 面板。
  4. 在导出数据 面板中,指定要导出到的存储位置。
  5. 点击导出 。屏幕上的消息会指示导出过程的状态。

gdcloud CLI

  1. 在使用 Distributed Cloud CLI 之前,请先 安装并初始化该 CLI。 然后,向您的组织进行身份验证。
  2. 运行以下命令,将数据库文件导出到转储文件:

    gdcloud database export sql DATABASE_CLUSTER \
         BUCKET_NAME/SAMPLE.dmp --project=PROJECT_NAME
    

    替换以下内容:

    • DATABASE_CLUSTER:要导出的数据库集群的名称。
    • BUCKET_NAME/SAMPLE.dmp:导出的 转储文件的目标位置。
    • PROJECT_NAME:数据库 集群所在项目的名称。

API

apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: Export
metadata:
  name: EXPORT_NAME
  namespace: USER_PROJECT
spec:
  dbclusterRef: DBCLUSTER_NAME
  exportLocation:
    s3Options:
      bucket: BUCKET_NAME
      key: dbs-export
    type: S3

替换以下变量:

  • EXPORT_NAME:导出操作的名称。
  • USER_PROJECT:要在其中创建要导出的数据库集群的用户项目的名称。
  • DBCLUSTER_NAME:数据库集群的名称。
  • BUCKET_NAME:用于存储导出文件的对象存储桶的名称。