AlloyDB Omni 是透過 Docker 映像檔部署,因此可進行各種形式的自訂。本頁列出常用的自訂項目。
如要使用預設設定快速開始使用 AlloyDB Omni,請參閱快速入門導覽課程:AlloyDB Omni。
事前準備
下表列出 AlloyDB Omni 的建議硬體和軟體設定。
作業系統/平台 | 建議的硬體設定 | 建議軟體設定 |
---|---|---|
Linux |
|
|
macOS |
|
|
(*) Arm 支援功能處於預先發布階段。 |
AlloyDB Omni 會在容器中執行。安裝 AlloyDB Omni 前,請先在電腦上安裝容器執行階段,例如 Docker 或 Podman。
本文提供 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-omni
。CONTAINER_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-omni
。CONTAINER_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-omni
。CONTAINER_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
標記,請參閱「執行容器」。