建立資料庫叢集

本頁說明如何使用資料庫服務,在 Google Distributed Cloud (GDC) Air-gapped 中建立及管理資料庫。

授權與角色

使用者必須獲得授權,才能存取資料庫服務。如要透過 GDC 控制台和 Distributed Cloud CLI 存取資料庫服務,必須先完成授權。

下列角色會授予使用者權限:

專案檢視者 (project-viewer)
具備這個角色的使用者可以存取 GDC 控制台。
專案資料庫檢視者 (project-db-viewer)
具備這個角色的使用者可以查看資料庫叢集。
專案資料庫編輯者 (project-db-editor)
具備這個角色的使用者擁有 project-db-viewer 授予的功能,且可以編輯資料庫叢集。
專案 DB 管理員 (project-db-admin)
具備這個角色的使用者擁有 project-db-editor 授予的功能,且可以建立及刪除資料庫叢集。
專案 Bucket 物件檢視器 (project-bucket-object-viewer)
具備這個角色的使用者可以在 GDC 控制台的資料庫服務介面中使用儲存空間瀏覽器。這個介面可用於指定資料庫匯入的檔案,以及指定資料庫匯出作業產生的檔案目的地。
專案監控檢視者 (project-monitoring-viewer)
具備這個角色的使用者可以存取監控執行個體。如要進一步瞭解如何觀察資料庫服務指標,請參閱「觀察指標」。只有需要存取監控執行個體的使用者,才應獲授此角色。
專案維護政策管理員 (project-mp-admin)
具備這個角色的使用者同時擁有 project_mp_editorproject_mpb_editor 角色授予的權限,因此可以建立、編輯及刪除維護政策和維護政策繫結。
專案維護政策檢視者 (project-mp-viewer)
具備這個角色的使用者可以查看維護政策。
專案維護政策編輯者 (project-mp-editor)
具備這個角色的使用者擁有 project_mp_viewer 角色授予的功能,且可以建立、編輯及刪除維護政策。
專案維護政策繫結檢視者 (project-mpb-viewer)
具備這個角色的使用者可以查看維護政策繫結。
專案維護政策繫結編輯者 (project-mpb-editor)
具備這個角色的使用者擁有 project_mpb_viewer 角色授予的功能,也可以建立、編輯及刪除維護政策繫結。

可用的資料庫引擎

您可以在 GDC 環境中使用下列資料庫引擎:

資料庫 版本
AlloyDB Omni 15
Oracle 19
PostgreSQL 13、14、15

選擇資料庫引擎類型並建立資料庫叢集

如要為資料庫叢集啟用備份功能,請先建立 Distributed Cloud 儲存空間 bucket,或任何可透過 S3 相容端點存取的值區,然後建立名為 dbs-backup-repository 的備份存放區。如果使用 Distributed Cloud 以外的儲存空間值區,您有責任確保值區已正確加密。

以下是為資料庫服務備份建立的 BackupRepository 自訂資源範例:

apiVersion: backup.gdc.goog/v1
kind: BackupRepository
metadata:
  name: dbs-backup-repository
spec:
  secretReference:
    namespace: "object-storage-secret-ns"
    name: "object-storage-secret"
  endpoint: "https://objectstorage.google.gdch.test"
  type: S3
  s3Options:
    bucket: "fully-qualified-bucket-name"
    region: "us-east-1"
    forcePathStyle: true
  importPolicy: ReadWrite

具有專案資料庫管理員角色的使用者必須執行下列步驟。使用 GDC 控制台或 Distributed Cloud CLI 建立資料庫叢集:

主控台

  1. 在主選單中選擇「資料庫服務」
  2. 按一下「建立資料庫叢集」
  3. 在「Choose a database engine」對話方塊中,選擇資料庫引擎

  4. 在「Configure your cluster」(設定叢集) 對話方塊中,指定叢集 ID、密碼和資料庫版本。您可以啟用備份功能,並設定備份保留期限。

  5. 如果您選擇 PostgreSQL 資料庫引擎,可以為資料庫叢集啟用高可用性。如果啟用這項功能,資料庫服務會在與主要執行個體相同的可用區中,佈建待命執行個體,以防範故障。詳情請參閱「高可用性」。

  6. 在「設定主要執行個體」對話方塊中,指定資料庫叢集主要執行個體的 CPU、記憶體和儲存空間容量。建議您選擇足夠的記憶體來保存最大的資料表。

  7. 按一下「Create」(建立)。建立資料庫叢集可能需要幾分鐘的時間。 在「叢集總覽」頁面中檢查叢集狀態。叢集準備就緒時,狀態會從「建立中」變更為「就緒」

gdcloud

  1. 使用 Distributed Cloud CLI 前,請先安裝並初始化。然後向貴機構驗證

  2. 執行下列指令來建立資料庫叢集:

    gdcloud database clusters create CLUSTER_NAME \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    請替換下列變數:

    • CLUSTER_NAME 替換為新叢集的名稱。
    • DB_VERSION 替換為新叢集的版本字串。例如 POSTGRESQL_13ORACLE_19_ENTERPRISEALLOYDBOMNI_15
    • ADMIN_PASSWORD 替換成新叢集的管理員密碼。
  3. 如要進一步瞭解如何設定資料庫叢集的 CPU、記憶體和儲存空間資源、設定備份、啟用高可用性,以及其他可用選項,請執行下列指令:

    gdcloud database clusters create --help
    

API

如果是 AlloyDB 或 PostgreSQL 資料庫:

apiVersion: v1
kind: Secret
metadata:
  name: db-pw-DBCLUSTER_NAME
  namespace: USER_PROJECT
type: Opaque
data:
  DBCLUSTER_NAME: "BASE64_PASSWORD"
---
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: DBCluster
metadata:
  name: DBCLUSTER_NAME
  namespace: USER_PROJECT
spec:
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DBCLUSTER_NAME
    version: "DB_VERSION"
    resources:
      memory: DB_MEMORY
      cpu: DB_CPU
      disks:
      - name: DataDisk
        size: DB_DATA_DISK

如果是 Oracle 資料庫:

apiVersion: v1
kind: Secret
metadata:
  name: db-pw-DBCLUSTER_NAME
  namespace: USER_PROJECT
type: Opaque
data:
  DBCLUSTER_NAME: "BASE64_PASSWORD"
---
apiVersion: oracle.dbadmin.gdc.goog/v1
kind: DBCluster
metadata:
  name: DBCLUSTER_NAME
  namespace: USER_PROJECT
spec:
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DBCLUSTER_NAME
    version: "DB_VERSION"
    cdbName: GCLOUD
    resources:
      memory: DB_MEMORY
      cpu: DB_CPU
      disks:
      - name: DataDisk
        size: DB_DATA_DISK
      - name: LogDisk
        size: DB_LOG_DISK

請替換下列變數:

  • DBCLUSTER_NAME:資料庫叢集名稱。
  • USER_PROJECT:要建立資料庫叢集的使用者專案名稱。
  • BASE64_PASSWORD:資料庫管理員密碼的 base64 編碼。
  • DBENGINE_NAME:資料庫引擎的名稱。這是 alloydbomnipostgresql
  • 資料庫引擎版本。DB_VERSION
  • DB_MEMORY,例如 5Gi,這是分配給資料庫叢集的記憶體量。
  • DB_CPU:分配給資料庫叢集的 CPU 數量,例如 2
  • DB_DATA_DISK,例如 10 Gi
  • DB_LOG_DISK:分配給 Oracle 資料庫記錄磁碟的空間量 (僅限 Oracle)。