AlloyDB Omni 通过 Docker 映像进行部署,可以实现各种形式的自定义。本页面介绍了一些常用的自定义设置。
如需使用默认配置快速开始使用 AlloyDB Omni,请参阅快速入门:AlloyDB Omni。
准备工作
下表列出了适用于 AlloyDB Omni 的推荐硬件和软件配置。
操作系统/平台 | 推荐的硬件配置 | 推荐的软件配置 |
---|---|---|
Linux |
|
|
macOS |
|
|
(*) Arm 支持处于预览版阶段。 |
AlloyDB Omni 在容器中运行。在安装 AlloyDB Omni 之前,请先在您的机器上安装容器运行时,例如 Docker 或 Podman。
单个服务器
装载外部数据目录
默认情况下,快速入门:安装 AlloyDB Omni 中的命令会将数据库数据存储在由 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.4
替换以下内容:
CONTAINER_NAME
:用于在宿主机的容器注册表中分配这一新 AlloyDB Omni 容器的名称,例如my-omni
。NEW_PASSWORD
:创建新容器后为新容器的postgres
用户分配的密码。DATA_DIR
:您希望 AlloyDB Omni 用于其数据目录的文件系统路径。HOST_PORT
:容器应将自己的端口 5432 发布到的宿主机上的 TCP 端口。如需也在宿主机上使用 PostgreSQL 默认端口,请指定5432
。
启用 ulimit
ulimit 参数用于指定 Docker 容器可以使用的各种进程限制。为了实现最佳性能,AlloyDB Omni 会调整进程优先级,以便关键 PostgreSQL 进程能够以更高的优先级运行,也就是说,可分配给进程的可用 CPU 更多。如需允许这种情况,请指定 -20:-20
,这会去除对 AlloyDB Omni 容器的限制。
docker run --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 \
-p HOST_PORT:5432 -d google/alloydbomni:15.5.4
指定日志记录驱动程序
默认情况下,Docker 不会执行日志轮换。这可能会占用大量磁盘可用空间,并最终导致磁盘可用空间耗尽。您可以将 Docker 配置为使用其他日志记录驱动程序。例如,如需将日志记录到 journald,请运行以下命令:
docker run --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 -d google/alloydbomni:15.5.4
如需详细了解 Docker 和日志记录驱动程序,请参阅 Docker 文档配置日志记录驱动程序。
您还可以使用 PostgreSQL 配置日志记录。如需了解详情,请参阅 PostgreSQL 文档错误报告和日志记录。
装载共享内存卷
如果您计划将 AlloyDB 列式引擎与 AlloyDB Omni 搭配使用,我们建议您为 AlloyDB Omni 容器提供共享内存。具体操作方法因主机操作系统而异,如以下示例所示。
Linux
如需向容器提供共享内存,请装载 /dev/shm
:
docker run --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-p HOST_PORT:5432 \
-v /dev/shm:/dev/shm \
-d google/alloydbomni:15.5.4
macOS
如需向容器提供共享内存,请添加 --shm-size
标志:
docker run --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-p HOST_PORT:5432 \
--shm-size=SHARED_MEMORY_SIZE \
-d google/alloydbomni:15.5.4
将 SHARED_MEMORY_SIZE
替换为要在容器上为 /dev/shm
设置的大小,采用运行容器中所述的格式。例如,如需指定 1 GB,请使用值 1g
。
我们建议将共享内存大小设置为至少等于数据库的 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
标志,请参阅运行容器。