管理資料庫

GDC Sandbox 提供資料庫服務,可測試及管理資料庫叢集。

建立資料庫

如要建立及管理資料庫叢集,請參閱「建立及管理資料庫叢集」。

可用的資料庫引擎

GDC Sandbox 支援 PostgreSQL 和 AlloyDB Omni 資料庫引擎。

列出可用的資料庫引擎和支援的版本:

gdcloud database engine list

詳情請參閱「gdcloud database engine list」。

使用 GDC 控制台或 Distributed Cloud CLI 建立資料庫叢集:

控制台

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

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

  5. 在「設定主要執行個體」對話方塊中,指定資料庫叢集主要執行個體的 CPU、記憶體和儲存空間容量。建議您選擇記憶體大小足以容納最大資料表的機器類型。

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

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_15 或 ALLOYDBOMNI_15)。如要查看所有可用版本,請執行 gdcloud database engine list。
    • ADMIN_PASSWORD,並輸入新叢集的管理員密碼。
  3. 如要進一步瞭解如何為資料庫叢集設定 CPU、記憶體和儲存空間資源、設定備份、啟用高可用性,以及其他可用選項,請執行下列指令:

    gdcloud database clusters create --help
    

API

  1. 建立 db-cluster-create.yaml 檔案,並加入以下內容:

    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
    

    請替換下列變數:

    • DBCLUSTER_NAME:資料庫叢集的名稱。
    • USER_PROJECT,這是要建立資料庫叢集的使用者專案名稱。
    • BASE64_PASSWORD:資料庫管理員密碼的 Base64 編碼。
    • DBENGINE_NAME:資料庫引擎的名稱。這是 alloydbomni 或 postgresql。
    • DB_VERSION:資料庫引擎版本。如要查看可用版本,請執行 gdcloud database engine list。
    • DB_MEMORY,分配給資料庫叢集的記憶體量,例如 5Gi。
    • DB_CPU,分配給資料庫叢集的 CPU 數量,例如 2。
    • DB_DATA_DISK:分配給資料庫叢集的空間大小,例如 10 Gi。
  2. kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
    

連線至資料庫

根據預設,資料庫叢集只允許來自使用者叢集和相同專案的連線。

如要從其他專案連線至專案中的所有資料庫叢集,請參閱「啟用跨專案連線」。

如要從 GDC Sandbox 組織外部的 IP 位址連線至資料庫,請按照「連線至資料庫叢集」一文中的操作說明啟用外部連線。

您可以使用 sshuttle,透過 psql 等本機資料庫用戶端連線至資料庫:

  1. 前往資料庫叢集的「Database Service」(資料庫服務) 頁面,然後找到「Connectivity」(連線) 部分。本頁面包含:

    • 管理員帳戶的密碼 (使用者名稱為 dbsadmin)
    • 資料庫叢集主要端點的主機名稱和通訊埠號碼
    • 用於連線至叢集的 psql 指令 (適用於 PostgreSQL 和 AlloyDB Omni 資料庫叢集)
    • 下載資料庫叢集憑證授權單位 (CA) 憑證的連結
  2. 在資料庫叢集的「Database Service」(資料庫服務) 頁面,前往「Connectivity」(連線) 部分,從 GDC 控制台下載 CA 憑證。

  3. 將用戶端設為使用 CA 憑證驗證資料庫。如果是 psql 用戶端,請將 PGSSLROOTCERT 環境變數設為憑證檔案的路徑,並將 PGSSLMODE 環境變數設為偏好設定:

        export PGSSLROOTCERT=path/to/accounts_cert.pem
        export PGSSLMODE="verify-full"
    
  4. 啟動安全通道。如「連線至執行個體」一文所述,如果您有 sshuttle 的執行個體正在執行,請終止該程序。

        sshuttle -r zone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME --no-latency-control \
        --ssh-cmd 'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap' \
        10.200.0.0/16 --dns
    

    請將下列項目替換為 GDC Sandbox 團隊提供的值:

    • GDC_SANDBOX_INSTANCE_NAME:GDC Sandbox 執行個體的名稱。
    • PROJECT_NAME:包含 GDC Sandbox 環境的專案。
    • ZONE:包含 GDC Sandbox 環境的可用區。
  5. 通道啟用後,請在其他終端機中使用 psql 執行指令

        PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

    請替換下列變數:

    • DB_PASSWORD:控制台 UI 中的密碼。
    • DB_HOSTNAME:控制台中的資料庫主機名稱。
    • DB_PORT:控制台中的資料庫通訊埠編號。
    • DB_USERNAME:控制台中的資料庫使用者名稱。