Menyesuaikan penginstalan AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menjelaskan cara menyesuaikan penginstalan AlloyDB Omni, yang di-deploy melalui image container yang mendukung berbagai bentuk penyesuaian. Halaman ini menampilkan beberapa penyesuaian umum.

Mengaktifkan dan menonaktifkan telemetri AlloyDB Omni

Telemetri AlloyDB Omni menerapkan agen klien ringan yang hanya berjalan di image container AlloyDB Omni. Agen ini secara berkala mengumpulkan serangkaian metrik dasar yang bersifat pseudonim dan mengirimkannya ke endpoint yang dikelola Google.

Karena AlloyDB Omni adalah produk yang dapat didownload dan ditawarkan tanpa biaya, telemetri ini memberikan metrik informasi non-PII (informasi identitas pribadi) yang penting kepada Google terkait lingkungan deployment dan adopsi generik dari instance yang berjalan. Data ini membantu menginformasikan pengembangan produk dan mendukung penetapan prioritas.

Metrik yang dikumpulkan mencakup:

  • ID penginstalan unik (UUID yang dipseudonimkan)
  • Versi AlloyDB Omni dan versi utama PostgreSQL
  • Informasi sistem host seperti jumlah CPU, RAM, dan waktu aktif

Menonaktifkan pelaporan telemetri

Untuk mencegah agen telemetri berjalan dan melaporkan metrik penggunaan, tetapkan parameter konfigurasi PostgreSQL omni_enable_telemetry ke off. Anda dapat menonaktifkan agen telemetri dengan menyetel flag telemetri di file postgresql.conf atau dengan menyetel flag saat runtime menggunakan ALTER SYSTEM.

Tetapkan tanda telemetri di file postgresql.conf

Untuk mengubah file konfigurasi PostgreSQL di direktori data persisten penampung, ikuti langkah-langkah berikut:

  1. Temukan file postgresql.conf di direktori data database Anda ($PGDATA).
  2. Menonaktifkan telemetri AlloyDB Omni.

    omni_enable_telemetry = off
    
  3. Untuk menerapkan perubahan, mulai ulang container AlloyDB Omni. Agen telemetri berhenti mengumpulkan dan mengirim metrik penggunaan ke Google.

Menetapkan flag telemetri saat runtime menggunakan ALTER SYSTEM

Untuk menyetel tanda telemetri dan mempertahankan perubahan setelah dimulai ulang, ikuti langkah-langkah berikut:

  1. Hubungkan ke instance AlloyDB Omni menggunakan psql:

    psql -h HOST -U USER -d DATABASE
    

    Lakukan penggantian berikut:

    • HOST: nama host atau alamat IP instance AlloyDB Omni Anda—misalnya, 127.0.0.1.
    • USER: pengguna database yang ingin Anda gunakan untuk terhubung, misalnya, postgres.
    • DATABASE: database yang ingin Anda hubungkan—misalnya, postgres.
  2. Jalankan perintah berikut:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. Muat ulang konfigurasi atau mulai ulang instance. Dalam beberapa penyiapan container, Anda mungkin perlu memulai ulang instance untuk memastikan perubahan sepenuhnya diambil oleh pekerja latar belakang.

    SELECT pg_reload_conf();
    

    Agen telemetri berhenti mengumpulkan dan mengirim metrik penggunaan ke Google.

Mengaktifkan pelaporan telemetri

Jika sebelumnya Anda menonaktifkan telemetri AlloyDB Omni, Anda dapat mengaktifkannya kembali dengan menyetel flag omni_enable_telemetry ke on. Anda mengaktifkan agen telemetri dengan menyetel tanda di file postgresql.conf atau dengan menyetel tanda saat runtime menggunakan ALTER SYSTEM.

Tetapkan tanda telemetri di file postgresql.conf

  1. Temukan file postgresql.conf di direktori data database Anda ($PGDATA).
  2. Tetapkan baris berikut:

    omni_enable_telemetry = on
    
  3. Untuk menerapkan perubahan, mulai ulang container AlloyDB Omni.

Menetapkan flag telemetri saat runtime menggunakan ALTER SYSTEM

  1. Hubungkan ke instance AlloyDB Omni menggunakan psql.
  2. Jalankan perintah berikut:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. Untuk menerapkan perubahan, mulai ulang container AlloyDB Omni.

    docker restart CONTAINER_NAME
    

    Lakukan penggantian berikut:

    • CONTAINER_NAME: Nama penampung AlloyDB Omni Anda—misalnya, my-omni-1.

Memeriksa status telemetri AlloyDB Omni

Anda dapat memeriksa status agen telemetri AlloyDB Omni, termasuk apakah agen tersebut diaktifkan atau berjalan. Anda juga dapat memeriksa aktivitas agen telemetri.

Memeriksa apakah agen telemetri diaktifkan atau dinonaktifkan

Untuk memeriksa status setelan telemetri, ikuti langkah-langkah berikut:

  1. Membuat koneksi ke instance.
  2. Jalankan perintah berikut:
SHOW omni_enable_telemetry;

Output menampilkan on atau off, bergantung pada apakah Anda menonaktifkan atau mengaktifkan telemetri AlloyDB Omni.

Periksa apakah agen telemetri sedang berjalan

Untuk memeriksa apakah agen telemetri sedang berjalan, jalankan perintah berikut di host container:

docker top CONTAINER_NAME

Lakukan penggantian berikut:

  • CONTAINER_NAME: Nama penampung AlloyDB Omni Anda—misalnya, my-omni-1.

Jika telemetri diaktifkan dan berjalan, output akan berisi baris dengan teks postgres: omni telemetry worker.

Memeriksa aktivitas agen telemetri

Untuk memeriksa aktivitas agen telemetri, jalankan perintah berikut di host container:

docker logs CONTAINER_NAME 2>&1 | grep telemetry

Lakukan penggantian berikut:

  • CONTAINER_NAME: Nama penampung AlloyDB Omni Anda—misalnya, my-omni-1.

Jika agen telemetri berjalan, log akan berisi pesan yang mirip dengan berikut ini:

LOG:  [telemetry_agent_worker.cc:143]  Started telemetry worker
LOG:  [telemetry_agent_worker.cc:161]  Running telemetry reporting agent
telemetry_agent: Uploading telemetry data to https://cloud.google.com/log.

Memasang direktori data eksternal

Secara default, perintah di Panduan memulai: Menginstal AlloyDB Omni menyimpan data database di area yang dikelola oleh Docker atau Podman. Cara ini memudahkan Anda untuk memulai, tetapi menyulitkan Anda untuk menemukan dan menggunakan direktori data. Sebagai gantinya, Anda dapat menyiapkan pemasangan bind untuk memetakan direktori data ke lokasi yang diketahui di disk Anda.

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

Ganti variabel berikut:

  • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
  • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
  • DATA_DIR: jalur direktori host tempat data Anda disimpan.
  • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
  • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.

Memasang direktori data eksternal saat menggunakan SELinux

Jika SELinux diaktifkan dan mode disetel ke enforcing, upaya untuk memasang direktori data eksternal akan menghasilkan error izin. Untuk memasang direktori data eksternal saat menggunakan SELinux, selesaikan petunjuk berikut:

Docker

  1. Jika container AlloyDB Omni Anda sedang berjalan, hentikan.
    docker stop CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  2. Setel mode SELinux ke permissive. Hal ini memungkinkan Anda menjalankan penampung dan mengidentifikasi detail tentang akses yang diperlukan untuk memasang direktori data eksternal.
    setenforce 0
  3. Jalankan container Anda dengan direktori data eksternal.
    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
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.
  4. Jika belum diinstal, instal policycoreutils-python-utils melalui pengelola paket Anda. Paket ini menyediakan utilitas yang diperlukan untuk mengelola kebijakan SELinux.
  5. Untuk direktori data eksternal Anda, tetapkan konteks SELinux yang sesuai.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    Ganti variabel berikut:
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
  6. Gunakan ausearch untuk mendapatkan informasi tentang persyaratan izin tambahan.
    ausearch -c 'postgres' --raw > postgres.avc
  7. Buat profil keamanan SELinux berdasarkan container AlloyDB Omni dan informasi izin ausearch.
    docker inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  8. Muat modul SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  9. Aktifkan mmap.
    setsebool -P domain_can_mmap_files 1
  10. Hentikan dan hapus container AlloyDB Omni Anda.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  11. Setel mode SELinux ke enforcing.
    setenforce 1
  12. Buat ulang container AlloyDB Omni Anda.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    google/alloydbomni:IMAGE_TAG
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.

Docker

  1. Jika container AlloyDB Omni Anda sedang berjalan, hentikan.
    docker stop CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  2. Setel mode SELinux ke permissive. Hal ini memungkinkan Anda menjalankan penampung dan mengidentifikasi detail tentang akses yang diperlukan untuk memasang direktori data eksternal.
    sudo setenforce 0
  3. Jalankan container Anda dengan direktori data eksternal.
    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
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.
  4. Jika belum diinstal, instal policycoreutils-python-utils melalui pengelola paket Anda. Paket ini menyediakan utilitas yang diperlukan untuk mengelola kebijakan SELinux.
  5. Jika direktori data eksternal Anda tidak berada dalam direktori utama, tetapkan konteks SELinux yang sesuai.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    Ganti variabel berikut:
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
  6. Gunakan ausearch untuk mendapatkan informasi tentang persyaratan izin tambahan.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. Buat profil keamanan SELinux berdasarkan container AlloyDB Omni dan informasi izin ausearch.
    docker inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  8. Muat modul SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  9. Aktifkan mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. Hentikan dan hapus container AlloyDB Omni Anda.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  11. Setel mode SELinux ke enforcing.
    sudo setenforce 1
  12. Buat ulang container AlloyDB Omni Anda.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    google/alloydbomni:IMAGE_TAG
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.

Podman

  1. Jika container AlloyDB Omni Anda sedang berjalan, hentikan.
    podman stop CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  2. Setel mode SELinux ke permissive. Hal ini memungkinkan Anda menjalankan penampung dan mengidentifikasi detail tentang akses yang diperlukan untuk memasang direktori data eksternal.
    setenforce 0
  3. Jalankan container Anda dengan direktori data eksternal.
    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
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.
  4. Jika belum diinstal, instal policycoreutils-python-utils melalui pengelola paket Anda. Paket ini menyediakan utilitas yang diperlukan untuk mengelola kebijakan SELinux.
  5. Untuk direktori data eksternal Anda, tetapkan konteks SELinux yang sesuai.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    Ganti variabel berikut:
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
  6. Gunakan ausearch untuk mendapatkan informasi tentang persyaratan izin tambahan.
    ausearch -c 'postgres' --raw > postgres.avc
  7. Buat profil keamanan SELinux berdasarkan container AlloyDB Omni dan informasi izin ausearch.
    podman inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  8. Muat modul SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  9. Aktifkan mmap.
    setsebool -P domain_can_mmap_files 1
  10. Hentikan dan hapus container AlloyDB Omni Anda.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  11. Setel mode SELinux ke enforcing.
    setenforce 1
  12. Buat ulang container AlloyDB Omni Anda.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.

Podman

  1. Jika container AlloyDB Omni Anda sedang berjalan, hentikan.
    podman stop CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  2. Setel mode SELinux ke permissive. Hal ini memungkinkan Anda menjalankan penampung dan mengidentifikasi detail tentang akses yang diperlukan untuk memasang direktori data eksternal.
    sudo setenforce 0
  3. Jalankan container Anda dengan direktori data eksternal.
    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
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.
  4. Jika belum diinstal, instal policycoreutils-python-utils melalui pengelola paket Anda. Paket ini menyediakan utilitas yang diperlukan untuk mengelola kebijakan SELinux.
  5. Untuk direktori data eksternal Anda, tetapkan konteks SELinux yang sesuai.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    Ganti variabel berikut:
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
  6. Gunakan ausearch untuk mendapatkan informasi tentang persyaratan izin tambahan.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. Buat profil keamanan SELinux berdasarkan container AlloyDB Omni dan informasi izin ausearch.
    podman inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  8. Muat modul SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  9. Aktifkan mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. Hentikan dan hapus container AlloyDB Omni Anda.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container Anda. Contoh, my-omni-1.
  11. Setel mode SELinux ke enforcing.
    sudo setenforce 1
  12. Buat ulang container AlloyDB Omni Anda.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    Ganti variabel berikut:
    • CONTAINER_NAME: nama yang Anda gunakan untuk container. Contoh, my-omni-1.
    • NEW_PASSWORD: sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
    • DATA_DIR: jalur direktori host tempat data Anda disimpan.
    • HOST_PORT: Port TCP di mesin host yang harus dipublikasikan oleh container sendiri sebagai port 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
    • IMAGE_TAG: gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi9 untuk image UBI terbaru.

Aktifkan ulimit

Parameter ulimit menentukan batas proses yang dapat digunakan oleh container Docker atau Podman. Untuk performa optimal, sebaiknya tetapkan ulimit berikut:

  • nice=-20:-20: AlloyDB Omni menyesuaikan prioritas proses untuk memungkinkan proses PostgreSQL penting berjalan dengan prioritas yang lebih tinggi. Prioritas yang lebih tinggi memberikan alokasi CPU yang tersedia lebih besar untuk proses. Untuk menyesuaikan prioritas proses, tentukan --ulimit=nice=-20:-20, yang menghapus batasan untuk container AlloyDB Omni.

  • memlock=-1:-1: AlloyDB Omni melakukan pengelolaan memori otomatis. Menetapkan --ulimit=memlock=-1:-1 memungkinkan database mengontrol dengan lebih baik cara penukaran halaman memori, yang dapat menghasilkan performa yang lebih baik.

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

Ganti variabel berikut:

  • CONTAINER_NAME: Nama yang Anda gunakan untuk container. Contoh, my-omni-1.
  • NEW_PASSWORD: Sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
  • HOST_PORT: Port TCP di mesin host yang harus digunakan container untuk memublikasikan portnya sendiri 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
  • IMAGE_TAG: Gunakan AlloyDB Omni untuk image Debian terbaru atau AlloyDB Omni-ubi untuk image UBI terbaru.

Menentukan driver logging

Secara default, Docker dan Podman tidak melakukan rotasi log. Tindakan ini dapat menghabiskan banyak ruang disk, dan akhirnya menyebabkan ruang disk habis. Untuk menggunakan driver logging yang berbeda, Anda dapat menentukan kolom --log-driver. Misalnya, untuk mencatat ke 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

Ganti variabel berikut:

  • CONTAINER_NAME: Nama yang Anda gunakan untuk container. Contoh, my-omni-1.
  • NEW_PASSWORD: Sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
  • HOST_PORT: Port TCP di mesin host yang harus digunakan container untuk memublikasikan portnya sendiri 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
  • IMAGE_TAG: Gunakan 16.9.0 untuk image Debian terbaru atau gunakan 16.9.0-ubi untuk image UBI terbaru.

Untuk mengetahui informasi selengkapnya tentang driver logging, lihat dokumentasi Docker tentang Mengonfigurasi driver logging dan Podman tentang podman-run.

Selain itu, Anda dapat mengonfigurasi logging menggunakan PostgreSQL. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi rotasi log AlloyDB Omni.

Memasang volume memori bersama

Jika Anda berencana menggunakan columnar engine AlloyDB dengan AlloyDB Omni, sebaiknya sediakan memori bersama untuk penampung AlloyDB Omni. Metode untuk melakukannya berbeda-beda, bergantung pada sistem operasi host Anda, seperti yang ditunjukkan pada contoh berikut.

Linux

Untuk menyediakan memori bersama bagi container, pasang /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

Ganti variabel berikut:

  • CONTAINER_NAME: Nama yang Anda gunakan untuk container. Contoh, my-omni-1.
  • NEW_PASSWORD: Sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
  • HOST_PORT: Port TCP di mesin host yang harus digunakan container untuk memublikasikan portnya sendiri 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
  • IMAGE_TAG: Gunakan 16.9.0 untuk image Debian terbaru atau gunakan 16.9.0-ubi untuk image UBI terbaru.

macOS

Untuk menyediakan memori bersama bagi container, sertakan tanda --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

Ganti variabel berikut:

  • CONTAINER_NAME: Nama yang Anda gunakan untuk container. Contoh, my-omni-1.
  • NEW_PASSWORD: Sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
  • SHARED_MEMORY_SIZE: Ukuran yang akan ditetapkan untuk /dev/shm di container, dalam format yang dijelaskan di Menjalankan container. Misalnya, untuk menentukan satu gigabyte, gunakan nilai 1g.
  • HOST_PORT: Port TCP di mesin host yang harus digunakan container untuk memublikasikan portnya sendiri 5432. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
  • IMAGE_TAG: Gunakan 16.9.0 untuk image Debian terbaru atau 16.9.0-ubi untuk image UBI terbaru.

Sebaiknya setel ukuran memori bersama ke sejumlah megabyte yang sama dengan setidaknya nilai database Anda untuk tanda google_job_scheduler.max_parallel_workers_per_job, dikali 250. Untuk mengetahui informasi selengkapnya tentang mesin berbasis kolom, lihat Mengonfigurasi mesin berbasis kolom di AlloyDB Omni.

Misalnya, jika tanda database google_job_scheduler.max_parallel_workers_per_job ditetapkan ke nilai defaultnya, yaitu 2, pertimbangkan untuk menambahkan tanda --shm-size=500m atau yang lebih besar saat memulai server database Anda.

Untuk mengetahui informasi selengkapnya tentang flag --shm-size, lihat Menjalankan container.

Mengaktifkan ekstensi

Daftar ekstensi yang tersedia di AlloyDB Omni dapat dilihat di Ekstensi database yang didukung. Meskipun PostGIS dan Orafce tidak disertakan dengan AlloyDB Omni, keduanya dapat diinstal dengan mengikuti petunjuk:

Ekstensi yang diinstal diaktifkan menggunakan pernyataan CREATE EXTENSION PostgreSQL standar seperti yang dijelaskan dalam Mengaktifkan ekstensi.