使用 RPM 安裝 AlloyDB Omni

選取說明文件版本:

您可以在支援 RHEL 9 執行階段的任何 Linux 電腦或 Bare Metal 伺服器上,執行 AlloyDB Omni 的單一執行個體安裝作業。

事前準備

安裝 AlloyDB Omni 前,請先閱讀「規劃 AlloyDB Omni 安裝作業」。

建立 AlloyDB Omni 儲存資料的目錄

如果您使用的儲存系統會一併執行 AlloyDB Omni 和其他應用程式,可以在裝置的現有檔案系統中建立 AlloyDB Omni 目錄。否則,您可以在專用裝置上建立新的檔案系統。

現有檔案系統

如要在現有檔案系統中建立目錄,請執行下列指令:

mkdir -p DATA_DIR

請替換下列變數:

  • DATA_DIR:儲存資料的主機目錄路徑。

專用裝置

如要在專屬檔案系統中建立目錄,請執行下列步驟:

  1. 在主機上建立要掛接磁碟的目錄。

    mkdir -p MOUNT_POINT

    請替換下列變數:

    • :應包含 AlloyDB Omni 執行個體的頂層目錄路徑。MOUNT_POINT
  2. 建立 gpt 分割表和檔案系統,並掛接磁碟裝置。

    EXT4

    parted -s DEVICE_PATH mklabel gpt
    parted -s DEVICE_PATH mkpart primary 0% 100%
    mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
    echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
    mount MOUNT_POINT

    請替換下列變數:

    • DEVICE_PATH:作業系統指派給磁碟裝置的路徑。
    • FS_LABEL:檔案系統的標籤。xfs 的長度上限為 12 個字元。
    • PARTITION_PATH:用於儲存檔案系統資料的磁碟分割區路徑。

    XFS

    parted -s DEVICE_PATH mklabel gpt
    parted -s DEVICE_PATH mkpart primary 0% 100%
    dnf install xfsprogs
    mkfs.xfs -L FS_LABEL -f PARTITION_PATH
    echo -e "LABEL=FS_LABEL\tMOUNT_POINT\txfs\tdefaults\t0 0" | tee -a /etc/fstab
    mount MOUNT_POINT

    請替換下列變數:

    • DEVICE_PATH:作業系統指派給磁碟裝置的路徑。
    • FS_LABEL:檔案系統的標籤。ext4 的長度上限為 16 個字元。
    • PARTITION_PATH:用於儲存檔案系統資料的磁碟分割區路徑。
  3. 在這個檔案系統中建立資料目錄。建議您在掛接點內建立 DATA_DIR 做為子目錄,例如 MOUNT_POINT/18

    mkdir -p DATA_DIR

    DATA_DIR 替換為主機目錄路徑,以便儲存資料庫相關資料,例如 MOUNT_POINT/18

設定 SELinux 政策

安裝必要的 policycoreutils-python-utils 套件,以便在安裝 AlloyDB Omni RPM 套件時,將 SELinux 政策設為允許 AlloyDB Omni 資料庫服務。

安裝 AlloyDB Omni

  1. 在本機目錄中設定 YUM 存放區。

    sudo tee -a /etc/yum.repos.d/alloydbomni.repo << EOF
    [alloydbomni]
    name=alloydbomni
    baseurl=ALLOYDB_OMNI_URL
    enabled=1
    repo_gpgcheck=1
    gpgcheck=1
    gpgkey=https://dl.google.com/linux/linux_signing_key.pub
    EOF
    
    sudo yum makecache
    

    ALLOYDB_OMNI_URL 替換為您收到的 AlloyDB Omni 網址。

  2. 安裝 AlloyDB Omni RPM 套件。

    sudo dnf install alloydbomni18
  3. 初始化及設定 AlloyDB Omni 資料庫。

    sudo PGPASSWORD=POSTGRES_PASSWORD PGDATA=DATA_DIR /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb

    您可以選擇在 POSTGRES_INITDB_ARGS 變數中,以單一字串形式傳遞標準 initdb 選項。

  4. 如果您使用自訂資料目錄,請執行下列指令,設定 SELinux 允許 AlloyDB Omni 服務在該目錄中讀取及寫入資料。執行這個步驟前,請務必安裝 policycoreutils-python-utils 套件。

    /usr/sbin/semanage fcontext -a -t postgresql_db_t "DATA_DIR(/.*)?"
    
    sudo PWFILE=PASSWORD_FILE_PATH PGDATA=DATA_DIR /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    

    請替換下列變數:

    • POSTGRES_PASSWORD:您的密碼。
    • PASSWORD_FILE_PATH:路徑,其中只包含純文字密碼。
    • DATA_DIR:主機目錄路徑,用於儲存資料庫相關資料。例如:MOUNT_POINT/18

    您可以選擇在 POSTGRES_INITDB_ARGS 變數中,以單一字串的形式傳遞標準 initdb 選項。

  5. 如果您使用自訂資料目錄,且已啟用 SELinux,請執行下列指令來設定 SELinux,允許 AlloyDB Omni 服務在該目錄中讀取及寫入資料。這個步驟需要安裝 policycoreutils-python-utils 套件。

      sudo /usr/sbin/semanage fcontext -a -t postgresql_db_t "DATA_DIR(/.*)?"
      sudo /sbin/restorecon -R -F DATA_DIR
    /sbin/restorecon -R -F DATA_DIR
  6. 準備 AlloyDB Omni 資料庫。

    sudo PGPASSWORD=POSTGRES_PASSWORD /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
  7. 選用。如要以最佳化方式執行 AlloyDB Omni 服務,請執行下列指令。

    sudo /usr/lib/postgresql/18/bin/alloydbomni18-setup-host

    執行先前的指令會將下列系統設定設為建議值:

    系統設定 建議值
    /sys/kernel/mm/transparent_hugepage/shmem_enabled within_size
    /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_swap 511
    /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_shared 511
    /proc/sys/vm/nr_overcommit_hugepages 值等於 MemTotal 的大小 (以 MB 為單位)
    /proc/sys/vm/max_map_count 1073741824

    如要傳遞這些設定的自訂值,請在 alloydbomni18-setup-host 指令中加入 <system_setting>=<value> 格式的引數,如下列範例所示:

    sudo /usr/lib/postgresql/18/bin/alloydbomni18-setup-host /proc/sys/vm/max_map_count=2097152 /proc/sys/vm/nr_overcommit_hugepages=524288
    
  8. 啟動 AlloyDB Omni systemd 服務。

    sudo systemctl enable alloydbomni18
    
    sudo systemctl start alloydbomni18
    
  9. 檢查 AlloyDB Omni 服務是否順利執行。

    sudo systemctl status alloydbomni18

    以下是回應範例。確認狀態為有效 (執行中)。

        Loaded: loaded (/usr/lib/systemd/system/alloydbomni18.service; enabled; preset: disabled)
       Drop-In: /etc/systemd/system/alloydbomni18.service.d
         Active: active (running) since Wed 2025-11-19 07:37:31 UTC; 1 day 6h ago "
       Process: 120228 ExecStartPre=/usr/lib/postgresql/18/bin/alloydbomni18-check-db-dir ${PGDATA} (code=exited, status=0 SUCCESS)
      Main PID: 120231 (postgres)
         Tasks: 19 (limit: 203438)
        Memory: 161.7M (peak: 170.0M)
           CPU: 28min 10.149s
        CGroup: /system.slice/alloydbomni18.service
                ├─120231 /usr/lib/postgresql/18/bin/postgres -D /var/lib/postgresql/18/data
                ├─120232 "postgres: alloydb internal logger "
                ├─120233 "postgres: checkpointer "
                ├─120234 "postgres: background writer "
                ├─120237 "postgres: walwriter "
                ├─120243 "postgres: lux wal preallocator "
                ├─120244 "postgres: autovacuum launcher "
                ├─120246 "postgres: free buffer manager "
                ├─120247 "postgres: buffer control "
    

後續步驟