导出数据库集群

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

向 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:用于存储导出文件的对象存储桶的名称。