导出数据库集群

在导出数据之前,您必须:

向 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. 从主菜单中选择数据库服务。
  2. 选择要导出的数据库集群。您将进入该集群的数据库集群概览页面。
  3. 点击 导出。系统会打开导出数据面板。
  4. 在导出数据面板中,指定要导出到的存储位置。
  5. 点击导出。屏幕上的消息会指示导出过程的状态。

gdcloud

  1. 在使用 gdcloud 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:用于存储导出文件的对象存储区的名称。