自訂 AlloyDB Omni 安裝作業

選取說明文件版本:

AlloyDB Omni 是透過 Docker 映像檔部署,因此可進行各種形式的自訂。本頁列出常用的自訂項目。

如要使用預設設定快速開始使用 AlloyDB Omni,請參閱快速入門導覽課程:AlloyDB Omni

事前準備

下表列出 AlloyDB Omni 的建議硬體和軟體設定。

作業系統/平台 建議的硬體設定 建議軟體設定
Linux
  • 支援 AVX2 的 x86-64 或 Arm (*) CPU
  • 為 AlloyDB Omni 分配的每個 CPU 提供 8 GB RAM
  • 20 GB 以上的磁碟空間
  • 以 Debian 為基礎的作業系統 (Ubuntu 等) 或 RHEL 9
  • Linux 核心版本 6.1 以上,或支援 MADV_COLLAPSE 和 MADV_POPULATE_WRITE 指令的 5.3 以下 Linux 核心版本
  • 已啟用 Cgroupsv2
  • Docker Engine 25.0.0 以上版本或 Podman 5.0.0 以上版本
  • macOS
  • 支援 AVX2 的 Intel CPU 或 M 系列晶片
  • 為 AlloyDB Omni 分配的每個 CPU 提供 8 GB RAM
  • 20 GB 以上的磁碟空間
  • Docker Desktop 4.30 以上版本
  • (*) Arm 支援功能處於預先發布階段。

    AlloyDB Omni 會在容器中執行。安裝 AlloyDB Omni 前,請先在電腦上安裝容器執行階段,例如 DockerPodman

    本文提供 Podman 指令,適用於在已停用安全增強式 Linux (SELinux) 的環境中執行的無根容器。

    單一伺服器

    掛接外部資料目錄

    根據預設,快速入門:安裝 AlloyDB Omni 中的指令會將資料庫資料儲存在 Docker 管理的區域。這樣做雖然方便入門,但會難以尋找及使用資料目錄。您可以改為設定繫結掛接,將資料目錄對應至磁碟上的已知位置。

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    更改下列內容:

    • :要在主機的容器登錄中指派給這個新 AlloyDB Omni 容器的名稱,例如 my-omniCONTAINER_NAME

    • NEW_PASSWORD:新容器的 postgres 使用者在建立後獲派的密碼。

    • DATA_DIR:您希望 AlloyDB Omni 用於資料目錄的檔案系統路徑。

    • HOST_PORT:主機上的 TCP 通訊埠,容器會將通訊埠 5432 發布至該通訊埠。如要在主機上使用 PostgreSQL 預設通訊埠,請指定 5432

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    更改下列內容:

    • :要在主機的容器登錄中指派給這個新 AlloyDB Omni 容器的名稱,例如 my-omniCONTAINER_NAME

    • NEW_PASSWORD:新容器的 postgres 使用者在建立後獲派的密碼。

    • DATA_DIR:您希望 AlloyDB Omni 用於資料目錄的檔案系統路徑。

    • HOST_PORT:主機上的 TCP 通訊埠,容器會將通訊埠 5432 發布至該通訊埠。如要在主機上使用 PostgreSQL 預設通訊埠,請指定 5432

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    更改下列內容:

    • :要在主機的容器登錄中指派給這個新 AlloyDB Omni 容器的名稱,例如 my-omniCONTAINER_NAME

    • NEW_PASSWORD:新容器的 postgres 使用者在建立後獲派的密碼。

    • DATA_DIR:您希望 AlloyDB Omni 用於資料目錄的檔案系統路徑。

    • HOST_PORT:主機上的 TCP 通訊埠,容器會將通訊埠 5432 發布至該通訊埠。如要在主機上使用 PostgreSQL 預設通訊埠,請指定 5432

    啟用 ulimit

    ulimit 參數會指定 Docker 容器可用的程序限制。為達到最佳效能,建議您設定下列 ulimit:

    • nice=-20:-20:AlloyDB Omni 會調整程序優先順序,讓重要的 PostgreSQL 程序以較高的優先順序執行。優先順序越高,程序可分配到的可用 CPU 資源就越多。如要調整程序優先順序,請指定 --ulimit=nice=-20:-20,這會移除 AlloyDB Omni 容器的限制。

    • memlock=-1:-1:AlloyDB Omni 會執行自動記憶體管理。設定 --ulimit=memlock=-1:-1 可讓資料庫更妥善地控管記憶體網頁的換入和換出方式,進而提升效能。

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    指定記錄驅動程式

    根據預設,Docker 不會執行記錄檔輪替作業。這可能會占用大量磁碟空間,最終導致磁碟空間耗盡。您可以設定 Docker 使用其他記錄驅動程式。舉例來說,如要記錄到 journald:

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --log-driver=journald \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --log-driver=journald \
    -p HOST_PORT:5432 -d google/alloydbomni:15.5.5

    如要進一步瞭解 Docker 和記錄驅動程式,請參閱 Docker 的「設定記錄驅動程式」說明文件。

    您也可以使用 PostgreSQL 設定記錄功能。詳情請參閱 PostgreSQL 說明文件中的「錯誤回報和記錄」。

    掛接共用記憶體磁碟區

    如果您打算搭配 AlloyDB Omni 使用 AlloyDB 資料欄引擎,建議為 AlloyDB Omni 容器提供共用記憶體。視主機作業系統而定,方法會有所不同,如下列範例所示。

    Linux

    如要讓容器使用共用記憶體,請掛接 /dev/shm

    Docker

      docker run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        -v /dev/shm:/dev/shm \
        -d google/alloydbomni:15.5.5

    Podman

      podman run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        -v /dev/shm:/dev/shm \
        -d google/alloydbomni:15.5.5

    macOS

    如要讓容器使用共用記憶體,請加入 --shm-size 旗標:

    Docker

      docker run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        --shm-size=SHARED_MEMORY_SIZE \
        -d google/alloydbomni:15.5.5

    SHARED_MEMORY_SIZE 替換為要為容器中的 /dev/shm 設定的大小,格式如「執行容器」一文所述。舉例來說,如要指定 1 GB,請使用 1g 值。

    Podman

      podman run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        --shm-size=SHARED_MEMORY_SIZE \
        -d google/alloydbomni:15.5.5

    SHARED_MEMORY_SIZE 替換為要為容器中的 /dev/shm 設定的大小,格式如「執行容器」一文所述。舉例來說,如要指定 1 GB,請使用 1g 值。

    建議您將共用記憶體大小設為至少等於資料庫的 google_job_scheduler.max_parallel_workers_per_job 旗標值乘以 250 的百萬位元組數。如要進一步瞭解資料欄引擎,請參閱「在 AlloyDB Omni 中設定資料欄引擎」。

    舉例來說,如果 google_job_scheduler.max_parallel_workers_per_job 資料庫旗標設為預設值 2,啟動資料庫伺服器時,請考慮新增 --shm-size=500m 以上的旗標。

    如要進一步瞭解 --shm-size 標記,請參閱「執行容器」。