自訂 AlloyDB Omni 安裝作業

選取文件版本:

本頁面說明如何自訂 AlloyDB Omni 安裝作業。AlloyDB Omni 是透過支援不同自訂形式的容器映像檔部署。本頁列出一些常見的自訂項目。

掛接外部資料目錄

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

Docker

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

Docker

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

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

請替換下列變數:

  • CONTAINER_NAME:您為容器使用的名稱。例如:my-omni-1。
  • NEW_PASSWORD:新容器建立後,指派給 postgres 使用者的密碼。
  • DATA_DIR:儲存資料的主機目錄路徑。
  • HOST_PORT:主機上的 TCP 通訊埠,容器應將自己的通訊埠 5432 發布至該通訊埠。如要在主體機器上使用 PostgreSQL 預設通訊埠,請指定 5432。
  • IMAGE_TAG:使用 16.3.0 取得最新 Debian 映像檔,或使用 16.3.0-ubi 取得最新 UBI 映像檔。

啟用 ulimit

ulimit 參數會指定 Docker 或 Podman 容器可使用的程序限制。為獲得最佳效能,建議您設定下列 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 -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

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

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

請替換下列變數:

  • CONTAINER_NAME:容器名稱。例如:my-omni-1。
  • NEW_PASSWORD:新容器建立後,指派給 postgres 使用者的密碼。
  • HOST_PORT:主機上的 TCP 通訊埠,容器應將自己的通訊埠 5432 發布至該通訊埠。如要在主體機器上使用 PostgreSQL 預設通訊埠,請指定 5432。
  • IMAGE_TAG:使用 AlloyDB Omni 取得最新 Debian 映像檔,或使用 AlloyDB Omni-ubi 取得最新 UBI 映像檔。

指定記錄驅動程式

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

Docker

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

Docker

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

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

請替換下列變數:

  • CONTAINER_NAME:容器名稱。例如:my-omni-1。
  • NEW_PASSWORD:新容器建立後,指派給 postgres 使用者的密碼。
  • HOST_PORT:主體機器上的 TCP 通訊埠,容器應將自己的通訊埠 5432 發布至該通訊埠。如要一併在主體機器上使用 PostgreSQL 預設通訊埠,請指定 5432。
  • IMAGE_TAG:使用 16.3.0 取得最新 Debian 映像檔,或使用 16.3.0-ubi 取得最新 UBI 映像檔。

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

掛接共用記憶體磁碟區

如果您打算搭配 AlloyDB Omni 使用 AlloyDB 資料欄引擎,建議您為 AlloyDB Omni 容器提供共用記憶體。具體方法因主機作業系統而異,如以下範例所示。

Linux

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

Docker

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

Docker

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

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

請替換下列變數:

  • CONTAINER_NAME:容器名稱。例如:my-omni-1。
  • NEW_PASSWORD:新容器建立後,指派給 postgres 使用者的密碼。
  • HOST_PORT:主機上的 TCP 通訊埠,容器應將自己的通訊埠 5432 發布至該通訊埠。如要一併在主體機器上使用 PostgreSQL 預設通訊埠,請指定 5432。
  • IMAGE_TAG:使用 16.3.0 取得最新 Debian 映像檔,或使用 16.3.0-ubi 取得最新 UBI 映像檔。

macOS

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

Docker

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

Docker

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

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

請替換下列變數:

  • CONTAINER_NAME:容器名稱。例如:my-omni-1。
  • NEW_PASSWORD:新容器建立後,指派給 postgres 使用者的密碼。
  • SHARED_MEMORY_SIZE:要在容器上為 /dev/shm 設定的大小,格式請參閱「執行容器」一文。舉例來說,如要指定 1 GB,請使用 1g 值。
  • HOST_PORT:主體機器上的 TCP 通訊埠,容器應將自己的通訊埠 5432 發布至該通訊埠。如要一併在主體機器上使用 PostgreSQL 預設通訊埠,請指定 5432。
  • IMAGE_TAG:使用 16.3.0 取得最新 Debian 映像檔,或使用 16.3.0-ubi 取得最新 UBI 映像檔。

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

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

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

啟用擴充功能

如要查看 AlloyDB Omni 支援的擴充功能清單,請參閱「支援的資料庫擴充功能」。雖然 AlloyDB Omni 未隨附 PostGIS 和 Orafce,但您可以按照下列操作說明安裝這兩項工具:

如要啟用已安裝的擴充功能,請使用標準 PostgreSQL CREATE EXTENSION 陳述式,詳情請參閱「啟用擴充功能」。