Mengelola dan memantau AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menjelaskan cara mengelola peran pengguna AlloyDB Omni, memantau aktivitas server AlloyDB Omni, dan mengupdate atau menghapus penginstalan AlloyDB Omni.

Mengelola peran pengguna

AlloyDB Omni menggunakan kumpulan peran pengguna PostgreSQL yang telah ditentukan sebelumnya yang sama dengan yang disertakan AlloyDB, dengan perbedaan berikut:

  • AlloyDB Omni tidak memiliki peran alloydbiamuser.

  • AlloyDB Omni menyertakan peran superuser bernama alloydbadmin.

Seperti halnya AlloyDB, sebaiknya ikuti langkah-langkah berikut saat menyiapkan database:

  1. Tentukan atau impor database Anda menggunakan peran pengguna postgres. Dalam penginstalan baru, peran ini memiliki hak istimewa pembuatan database dan pembuatan peran, serta tidak memiliki sandi.

  2. Buat peran pengguna baru yang memiliki tingkat akses yang benar ke tabel aplikasi Anda, sekali lagi menggunakan peran pengguna postgres.

  3. Konfigurasi aplikasi Anda untuk terhubung ke database menggunakan peran akses terbatas yang baru ini.

Anda dapat membuat dan menentukan peran pengguna baru sebanyak yang Anda butuhkan. Jangan ubah atau hapus peran pengguna yang disertakan dengan AlloyDB Omni.

Untuk mengetahui informasi selengkapnya, lihat Mengelola peran pengguna AlloyDB.

Memantau AlloyDB Omni

Memantau penginstalan AlloyDB Omni berarti membaca dan menganalisis file log-nya.

AlloyDB Omni yang berjalan di Kubernetes juga memiliki kumpulan metrik dasar yang tersedia sebagai endpoint Prometheus. Untuk daftar metrik yang tersedia, lihat metrik AlloyDB Omni.

Server tunggal

AlloyDB Omni mencatat aktivitasnya di dua lokasi:

  • AlloyDB Omni mencatat aktivitas database di data/log/postgres, relatif terhadap direktori yang Anda tentukan dalam file konfigurasi dataplane.conf.

    Anda dapat menyesuaikan nama dan format file log ini melalui berbagai direktif log_* yang ditentukan di /var/alloydb/config/postgresql.conf. Untuk mengetahui informasi selengkapnya, lihat Pelaporan dan Logging.

  • AlloyDB Omni mencatat aktivitas penginstalan, startup, dan penonaktifannya di /var/alloydb/logs/alloydb.log.

Untuk memeriksa status server Anda yang sedang berjalan, lihat Memeriksa status AlloyDB Omni.

Kubernetes

Menemukan file log cluster database Anda

Anda dapat menemukan file postgresql.audit dan postgresql.log di sistem file pod database. Untuk mengakses file ini, ikuti langkah-langkah berikut:

  1. Tentukan variabel lingkungan yang berisi nama pod database.

    export DB_POD=`kubectl get pod -l alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`

    Ganti DB_CLUSTER_NAME dengan nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.

  2. Jalankan shell di pod database sebagai root.

    kubectl exec ${DB_POD} -it -- /bin/bash
  3. Temukan file log di direktori /obs/diagnostic/:

    • /obs/diagnostic/postgresql.audit
    • /obs/diagnostic/postgresql.log

Mencantumkan layanan pemantauan

v1.0

Saat Anda membuat cluster database, AlloyDB Omni akan membuat layanan pemantauan berikut untuk setiap CR instance cluster database di namespace yang sama:

al-INSTANCE_NAME-monitoring-system

Untuk mencantumkan layanan pemantauan, jalankan perintah berikut.

kubectl get svc -n NAMESPACE | grep monitoring

Ganti NAMESPACE dengan namespace tempat cluster Anda berada.

Contoh respons berikut menunjukkan layanan al-1060-dbc-monitoring-system, al-3de6-dbc-monitoring-system, dan al-4bc0-dbc-monitoring-system. Setiap layanan sesuai dengan satu instance.

al-1060-dbc-monitoring-system   ClusterIP   10.0.15.227   <none>        9187/TCP   7d20h
al-3de6-dbc-monitoring-system   ClusterIP   10.0.5.205    <none>        9187/TCP   7d19h
al-4bc0-dbc-monitoring-system   ClusterIP   10.0.15.92    <none>        9187/TCP   7d19h

Versi < 1.0

Saat Anda membuat cluster database, AlloyDB Omni akan membuat layanan pemantauan berikut di namespace yang sama dengan cluster database:

  • DB_CLUSTER-monitoring-db

  • DB_CLUSTER-monitoring-system

Untuk mencantumkan layanan pemantauan, jalankan perintah berikut.

kubectl get svc -n NAMESPACE | grep monitoring

Ganti NAMESPACE dengan namespace tempat cluster Anda berada.

Contoh respons berikut menunjukkan layanan al-2953-dbcluster-foo7-monitoring-system dan al-2953-dbcluster-foo7-monitoring-db.

al-2953-dbcluster-foo7-monitoring-db           ClusterIP   10.36.3.243    <none>        9187/TCP   44m
al-2953-dbcluster-foo7-monitoring-system       ClusterIP   10.36.7.72     <none>        9187/TCP   44m

Melihat metrik Prometheus dari command line

Port 9187 diberi nama metricsalloydbomni untuk semua layanan pemantauan.

  1. Siapkan penerusan port dari lingkungan lokal Anda ke layanan pemantauan.

    kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomni
    

    Ganti kode berikut:

    • MONITORING_SERVICE: Nama layanan pemantauan yang ingin Anda teruskan—misalnya, al-1060-dbc-monitoring-system.

    • NAMESPACE: Namespace tempat cluster Anda berada.

    • MONITORING_METRICS_PORT: Port TCP lokal yang tersedia.

    Respons berikut menunjukkan bahwa layanan sedang diteruskan.

    Forwarding from 127.0.0.1:9187 -> 9187
    Forwarding from [::1]:9187 -> 9187
    
  2. Saat perintah sebelumnya berjalan, Anda dapat mengakses metrik pemantauan melalui HTTP di port yang Anda tentukan. Misalnya, Anda dapat menggunakan curl untuk melihat semua metrik sebagai teks biasa:

    curl http://localhost:MONITORING_METRICS_PORT/metrics
    

Melihat metrik menggunakan Prometheus API

Kunci label alloydbomni.internal.dbadmin.goog/task-type dan port metricsalloydbomni tersedia sebagai default untuk semua layanan pemantauan di AlloyDB Omni. Anda dapat menggunakannya bersama dengan satu ServiceMonitor resource kustom untuk memilih semua layanan untuk semua namespace di cluster database Anda.

Untuk mengetahui informasi selengkapnya tentang penggunaan Prometheus API, lihat dokumentasi Prometheus Operator.

Berikut adalah contoh kolom spec dari resource kustom ServiceMonitor yang menyertakan kunci label alloydbomni.internal.dbadmin.gdc.goog/task-type dan port metricsalloydbomni. Resource kustom ServiceMonitor memantau dan mengumpulkan semua layanan kubernetes di semua namespace

Untuk mengetahui informasi selengkapnya tentang definisi ServiceMonitor lengkap, lihat definisi resource kustom ServiceMonitor .

v1.0

    spec:
      selector:
        matchLabels:
          alloydbomni.internal.dbadmin.goog/task-type: monitoring
      namespaceSelector:
        any: true
      endpoints:
        - port: metricsalloydbomni

Versi < 1.0

    spec:
      selector:
        matchExpressions:
        - key: alloydbomni.internal.dbadmin.gdc.goog/task-type
          operator: Exists
          values: []
      namespaceSelector:
        any: true
      endpoints:
      - port: metricsalloydbomni

Mengupgrade AlloyDB Omni

Server tunggal

Petunjuk ini hanya berlaku untuk AlloyDB Omni versi 15.2.0 dan yang lebih baru.

Sebelum memulai

Mesin Anda harus menginstal AlloyDB Omni CLI versi 1.2 atau yang lebih baru terinstal.

Melakukan upgrade

Untuk mengupgrade penginstalan AlloyDB Omni, jalankan perintah berikut:

sudo alloydb database-server upgrade

Kubernetes

Langkah-langkah yang Anda lakukan untuk mengupgrade AlloyDB Omni di Kubernetes bergantung pada versi AlloyDB Omni yang Anda jalankan, dan versi yang Anda upgrade.

Menentukan nomor versi saat ini

Untuk memeriksa versi AlloyDB Omni yang digunakan oleh cluster database Anda, jalankan perintah ini:

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE -o jsonpath='{.status.primary.currentDatabaseVersion}'

Ganti kode berikut:

  • DB_CLUSTER_NAME: nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.

  • NAMESPACE: namespace Kubernetes dari cluster database Anda.

Jika Anda menjalankan AlloyDB Omni Operator versi 1.0.0 atau yang lebih baru, perintah ini akan mencetak versi AlloyDB Omni yang digunakan oleh cluster database Anda.

Untuk memeriksa versi AlloyDB Omni Operator yang diinstal di cluster Kubernetes Anda, jalankan perintah ini:

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n NAMESPACE -o jsonpath='{.status.primary.currentControlPlaneAgentsVersion}'

Jika Anda menjalankan AlloyDB Omni Operator versi 1.0.0 atau yang lebih baru, perintah ini akan mencetak nomor versi AlloyDB Omni Operator yang berjalan di cluster Kubernetes Anda.

Jika Anda menjalankan AlloyDB Omni Operator versi yang lebih lama dari 1.0.0, Anda tidak dapat melakukan upgrade di tempat untuk cluster database atau AlloyDB Omni Operator. Sebagai gantinya, Anda harus mengikuti petunjuk di Mengupgrade dari AlloyDB Omni Operator versi sebelum 1.0.0.

Jika tidak, lanjutkan ke bagian berikutnya.

Menentukan nomor versi target

Jika Anda menjalankan AlloyDB Omni Operator versi 1.0.0 atau yang lebih baru, langkah berikutnya bergantung pada versi AlloyDB Omni yang ingin Anda upgrade. Hal ini memerlukan pemahaman tentang nomor versi AlloyDB Omni.

Nomor versi AlloyDB Omni memiliki tiga bagian:

  • Nomor versi utama kompatibilitas PostgreSQL-nya
  • Nomor versi minor kompatibilitas PostgreSQL-nya
  • Nomor versi patch rilis AlloyDB Omni ini

Misalnya, AlloyDB Omni versi 15.5.2 adalah versi patch 2 dari AlloyDB Omni yang mendukung PostgreSQL versi 15.5.

Jika Anda ingin mengupgrade ke versi AlloyDB Omni yang mendukung PostgreSQL versi yang lebih baru, Anda harus mengupgrade AlloyDB Omni Operator itu sendiri, bersama dengan cluster database Anda. Setiap kumpulan rilis AlloyDB Omni yang mendukung versi minor PostgreSQL tertentu memiliki nomor versi AlloyDB Omni Operator terkait, yang dapat Anda temukan di catatan rilis untuk versi AlloyDB Omni.

Jika Anda hanya ingin mengupgrade ke versi patch AlloyDB Omni yang lebih baru, Anda hanya dapat mengupgrade cluster database, tanpa perlu mengupgrade AlloyDB Omni Operator itu sendiri. Anda dapat langsung ke petunjuk di Mengupgrade cluster database.

Jika tidak, lanjutkan ke bagian berikutnya.

Mengupgrade AlloyDB Omni Operator

Untuk mengupgrade AlloyDB Omni Operator, lakukan hal berikut:

  1. Tentukan variabel lingkungan yang diperlukan:

    export GCS_BUCKET=alloydb-omni-operator
    export OPERATOR_VERSION=OPERATOR_VERSION
    export HELM_PATH=$OPERATOR_VERSION/alloydbomni-operator-$OPERATOR_VERSION.tgz

    Ganti OPERATOR_VERSION dengan versi AlloyDB Omni Operator yang Anda upgrade—misalnya, 1.1.0.

  2. Download AlloyDB Omni Operator yang lebih baru:

    gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
    tar -xvzf alloydbomni-operator-${OPERATOR_VERSION}.tgz
  3. Terapkan definisi resource kustom AlloyDB Omni Operator yang lebih baru:

    kubectl apply -f alloydbomni-operator/crds
  4. Upgrade diagram Helm AlloyDB Omni Operator:

    helm upgrade alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m

Untuk menindaklanjuti upgrade AlloyDB Omni Operator dengan mengupgrade manifes Kubernetes dan cluster database Anda, ikuti petunjuk di bagian berikutnya segera setelah menyelesaikan langkah-langkah sebelumnya.

Mengupgrade cluster database

Untuk mengupgrade cluster database, update kolom berikut di bagian spec manifes yang menentukannya:

  • Tetapkan databaseVersion ke nomor versi lengkap AlloyDB Omni yang ingin Anda upgrade untuk cluster database ini.

  • Jika Anda juga telah mengupgrade AlloyDB Omni Operator, tetapkan controlPlaneAgentsVersion ke nomor versi lengkap AlloyDB Omni Operator yang telah Anda upgrade.

Jika Anda hanya mengupgrade versi patch AlloyDB Omni—misalnya, mengupdate databaseVersion dari 15.5.1 ke 15.5.2—langkah ini adalah semua yang perlu Anda lakukan.

Jika Anda mengupgrade versi minor kompatibilitas PostgreSQL—misalnya, mengupdate databaseVersion dari 15.4.1 ke 15.5.2—Anda juga harus mengupdate controlPlaneAgentsVersion. Dalam hal ini, pastikan Anda telah mengikuti langkah-langkah tambahan yang tercantum di Mengupgrade AlloyDB Omni Operator.

Sebagai contoh, cuplikan manifes berikut menentukan cluster database yang menjalankan AlloyDB Omni Operator versi 15.5.2, dengan AlloyDB Omni Operator versi 1.0.0:

apiVersion: alloydbomni.dbadmin.goog/v1 
kind: DBCluster
metadata:
  name: dbcluster-sample
spec:
  databaseVersion: 15.5.2
  controlPlaneAgentsVersion: 1.0.0

Dalam contoh ini, untuk mengupgrade cluster database agar menjalankan AlloyDB Omni versi 15.5.3, ubah databaseVersion: 15.5.2 menjadi databaseVersion: 15.5.3.

Mengupgrade dari AlloyDB Omni Operator versi sebelum 1.0.0

Jika Anda menjalankan AlloyDB Omni Operator versi yang lebih lama dari 1.0.0, mengupgrade penginstalan AlloyDB Omni berbasis Kubernetes akan melibatkan peng-uninstalan, lalu menginstal ulang AlloyDB Omni Operator setelah mencadangkan data Anda. Ikuti langkah-langkah berikut:

  1. Cantumkan semua cluster database Anda:

    kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
  2. Untuk setiap cluster database, gunakan perintah pg_dumpall untuk mengekspor semua datanya.

  3. Uninstal AlloyDB Omni Operator. Tindakan ini mencakup penghapusan semua cluster database Anda.

  4. Instal ulang AlloyDB Omni Operator. Anda dapat menggunakan perintah yang sama yang Anda gunakan untuk menginstal versi AlloyDB Omni Operator sebelumnya, tanpa perlu menentukan nomor versi baru.

  5. Buat ulang cluster database Anda. Anda dapat mengadaptasi file manifes yang sama yang Anda gunakan saat membuat cluster database sebelumnya. Anda mungkin perlu mengupdate file untuk mencerminkan perubahan API yang diperkenalkan oleh AlloyDB Omni Operator versi 1.0.0, seperti atribut databaseVersion yang menggantikan atribut version yang lebih lama.

  6. Gunakan pg_restore atau perintah \i di psql untuk mengimpor data yang sebelumnya diekspor ke cluster yang dibuat ulang.

Me-roll back upgrade

Petunjuk ini hanya berlaku untuk AlloyDB Omni versi 15.2.1 hingga 15.5.2. Petunjuk ini tidak berlaku untuk deployment AlloyDB Omni berbasis Kubernetes.

Untuk me-roll back AlloyDB Omni ke versi yang diinstal sebelumnya, jalankan perintah ini:

sudo alloydb database-server rollback

Meng-uninstal AlloyDB Omni

Server tunggal

Untuk meng-uninstal AlloyDB Omni, jalankan perintah berikut:

sudo alloydb database-server uninstall

Direktori data Anda akan tetap ada di sistem file setelah Anda meng-uninstal AlloyDB Omni. Anda dapat memindahkan, mengarsipkan, atau menghapus direktori ini, bergantung pada apakah dan bagaimana Anda ingin menyimpan data setelah meng-uninstal AlloyDB Omni.

Kubernetes

Menghapus cluster database

Untuk menghapus cluster database, tetapkan isDeleted ke true di manifesnya. Anda dapat melakukannya dengan perintah berikut.

kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=merge

Ganti DB_CLUSTER_NAME dengan nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.

Meng-uninstal AlloyDB Omni Operator

Untuk meng-uninstal AlloyDB Omni Kubernetes Operator dari cluster Kubernetes Anda, lakukan langkah-langkah berikut:

  1. Hapus semua cluster database Anda:

    for ns in $(kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces -o=jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}'); do
    for cr in $(kubectl get dbclusters.alloydbomni.dbadmin.goog -n $ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do
    kubectl patch dbclusters.alloydbomni.dbadmin.goog $cr -n $ns --type=merge -p '{"spec":{"isDeleted":true}}'
    done
    done
  2. Tunggu hingga AlloyDB Omni Kubernetes Operator menghapus semua cluster database Anda. Gunakan perintah berikut untuk memeriksa apakah ada resource database yang tersisa:

    kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
  3. Hapus resource lain yang dibuat oleh AlloyDB Omni Kubernetes Operator:

    kubectl delete failovers.alloydbomni.dbadmin.goog --all --all-namespaces
    kubectl delete restores.alloydbomni.dbadmin.goog --all --all-namespaces
    kubectl delete switchovers.alloydbomni.dbadmin.goog --all --all-namespaces
  4. Uninstal AlloyDB Omni Kubernetes Operator:

    helm uninstall alloydbomni-operator --namespace alloydb-omni-system
  5. Bersihkan rahasia, deskripsi resource kustom, dan namespace yang terkait dengan AlloyDB Omni Kubernetes Operator:

    kubectl delete certificate -n alloydb-omni-system --all
    kubectl get secrets --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,ANNOTATION:.metadata.annotations.cert-manager\.io/issuer-name | grep -E 'alloydbomni|dbs-al' | awk '{print $1 " " $2}' | xargs -n 2 kubectl delete secret -n
    kubectl delete crd -l alloydb-omni=true
    kubectl delete ns alloydb-omni-system

Mengubah ukuran cluster database berbasis Kubernetes

Untuk mengubah ukuran CPU, memori, atau penyimpanan cluster database berbasis Kubernetes, update kolom resources dari manifes yang menentukan pod-nya. AlloyDB Omni Operator akan segera menerapkan spesifikasi baru ke pod database Anda.

Untuk mengetahui informasi selengkapnya tentang sintaksis manifes AlloyDB Omni Operator, lihat Membuat cluster database.

Batasan berikut berlaku untuk mengubah resource cluster database yang sedang berjalan:

  • Anda hanya dapat meningkatkan ukuran disk jika storageClass yang ditentukan mendukung perluasan volume.
  • Anda tidak dapat mengurangi ukuran disk.