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 mencakup peran pengguna super bernama
alloydbadmin
.
Seperti AlloyDB, sebaiknya ikuti langkah-langkah berikut saat menyiapkan database:
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.Buat peran pengguna baru yang memiliki tingkat akses yang benar ke tabel aplikasi Anda, sekali lagi menggunakan peran pengguna
postgres
.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 apa pun 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 serangkaian metrik dasar yang tersedia sebagai endpoint Prometheus. Untuk mengetahui 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 konfigurasidataplane.conf
.Anda dapat menyesuaikan nama dan format file log ini melalui berbagai direktif
log_*
yang ditentukan dalam/var/alloydb/config/postgresql.conf
. Untuk mengetahui informasi selengkapnya, lihat Pelaporan Error dan Pencatatan Log.AlloyDB Omni mencatat aktivitas penginstalan, startup, dan penutupannya di
/var/alloydb/logs/alloydb.log
.
Untuk memeriksa status langsung server Anda, 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:
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 yang sama dengan yang Anda deklarasikan saat Anda membuatnya.Jalankan shell di pod database sebagai root.
kubectl exec ${DB_POD} -it -- /bin/bash
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 menampilkan 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.
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
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 resource kustom ServiceMonitor
untuk memilih semua layanan untuk semua namespace di cluster database Anda.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan 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
Komputer Anda harus menginstal AlloyDB Omni CLI versi 1.2 atau yang lebih baru.
Lakukan 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. Nama cluster database yang sama dengan yang Anda deklarasikan saat Anda membuatnya.NAMESPACE
: namespace Kubernetes cluster database Anda.
Jika Anda menjalankan Operator AlloyDB Omni versi 1.0.0 atau yang lebih baru, perintah ini akan mencetak versi AlloyDB Omni yang digunakan oleh cluster database Anda.
Untuk memeriksa versi Operator AlloyDB Omni 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 Operator AlloyDB Omni versi 1.0.0 atau yang lebih baru, perintah ini akan mencetak nomor versi Operator AlloyDB Omni yang berjalan di cluster Kubernetes Anda.
Jika Anda menjalankan versi AlloyDB Omni Operator yang lebih lama dari 1.0.0, Anda tidak dapat melakukan upgrade di tempat pada cluster database atau AlloyDB Omni Operator. Sebagai gantinya, Anda harus mengikuti petunjuk di Mengupgrade dari Operator AlloyDB Omni 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 selanjutnya bergantung pada versi AlloyDB Omni yang ingin Anda upgrade. Selanjutnya, 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 versi PostgreSQL yang lebih baru, Anda harus mengupgrade Operator AlloyDB Omni itu sendiri, bersama dengan cluster database Anda. Setiap set rilis AlloyDB Omni yang mendukung versi minor PostgreSQL tertentu memiliki nomor versi Operator AlloyDB Omni terkaitnya sendiri, yang dapat Anda temukan di catatan rilis untuk versi AlloyDB Omni.
Jika hanya ingin mengupgrade ke versi patch AlloyDB Omni yang lebih baru, Anda dapat mengupgrade cluster database saja, tanpa perlu mengupgrade Operator AlloyDB Omni itu sendiri. Anda dapat langsung melihat petunjuk di Mengupgrade cluster database.
Jika tidak, lanjutkan ke bagian berikutnya.
Mengupgrade Operator AlloyDB Omni
Untuk mengupgrade Operator AlloyDB Omni, lakukan langkah berikut:
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 Operator AlloyDB Omni yang Anda upgrade—misalnya,1.1.0
.Download Operator AlloyDB Omni yang lebih baru:
gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
tar -xvzf alloydbomni-operator-${OPERATOR_VERSION}.tgz
Terapkan definisi resource kustom Operator AlloyDB Omni yang lebih baru:
kubectl apply -f alloydbomni-operator/crds
Upgrade diagram Helm Operator AlloyDB Omni:
helm upgrade alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \ --namespace alloydb-omni-system \ --atomic \ --timeout 5m
Untuk menindaklanjuti upgrade Operator AlloyDB Omni dengan mengupgrade manifest Kubernetes dan cluster database, ikuti petunjuk di bagian berikutnya segera setelah menyelesaikan langkah-langkah sebelumnya.
Mengupgrade cluster database
Untuk mengupgrade cluster database, perbarui kolom berikut di bagian spec
manifes yang menentukannya:
Tetapkan
databaseVersion
ke nomor versi lengkap AlloyDB Omni yang ingin Anda gunakan untuk mengupgrade cluster database ini.Jika Anda juga telah mengupgrade Operator AlloyDB Omni, tetapkan
controlPlaneAgentsVersion
ke nomor versi lengkap Operator AlloyDB Omni yang telah Anda upgrade.
Jika Anda hanya mengupgrade versi patch AlloyDB Omni—misalnya, mengupdate databaseVersion
dari 15.5.1
ke 15.5.2
—maka langkah ini adalah satu-satunya yang perlu Anda lakukan.
Jika Anda mengupgrade versi minor kompatibilitas PostgreSQL—misalnya, memperbarui databaseVersion
dari 15.4.1
ke 15.5.2
‐maka Anda juga harus
memperbarui controlPlaneAgentsVersion
. Dalam hal ini, pastikan Anda telah mengikuti
langkah-langkah tambahan yang tercantum dalam Mengupgrade Operator AlloyDB Omni.
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 Operator AlloyDB Omni versi sebelum 1.0.0
Jika Anda menjalankan versi AlloyDB Omni Operator yang lebih lama dari 1.0.0, maka mengupgrade penginstalan AlloyDB Omni berbasis Kubernetes melibatkan penghapusan dan penginstalan ulang AlloyDB Omni Operator setelah mencadangkan data Anda. Ikuti langkah-langkah berikut:
Mencantumkan semua cluster database Anda:
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
Untuk setiap cluster database, gunakan perintah
pg_dumpall
untuk mengekspor semua datanya.Uninstal Operator AlloyDB Omni. Hal ini termasuk menghapus semua cluster database Anda.
Instal ulang Operator AlloyDB Omni. Anda dapat menggunakan perintah yang sama dengan yang Anda gunakan untuk menginstal versi sebelumnya dari AlloyDB Omni Operator, tanpa perlu menentukan nomor versi baru.
Buat ulang cluster database Anda. Anda dapat menyesuaikan 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 atributversion
yang lebih lama.Gunakan
pg_restore
atau perintah\i
dipsql
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. Penetapan harga tersebut tidak berlaku untuk deployment AlloyDB Omni berbasis Kubernetes.
Untuk melakukan rollback 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 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 Anda setelah meng-uninstal AlloyDB Omni.
Kubernetes
Menghapus cluster database
Untuk menghapus cluster database, tetapkan isDeleted
ke true
dalam 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 yang sama dengan yang Anda deklarasikan saat Anda membuatnya.
Meng-uninstal Operator AlloyDB Omni
Untuk meng-uninstal Operator Kubernetes AlloyDB Omni dari cluster Kubernetes Anda, lakukan langkah-langkah berikut:
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
Tunggu hingga Operator Kubernetes AlloyDB Omni menghapus semua cluster database Anda. Gunakan perintah berikut untuk memeriksa apakah ada resource database yang tersisa:
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
Hapus resource lain yang dibuat oleh Operator Kubernetes AlloyDB Omni:
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
Uninstal Operator Kubernetes AlloyDB Omni:
helm uninstall alloydbomni-operator --namespace alloydb-omni-system
Bersihkan secret, deskripsi resource kustom, dan namespace yang terkait dengan Operator Kubernetes AlloyDB Omni:
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, perbarui kolom resources
dari manifes yang menentukan pod-nya. Operator AlloyDB Omni menerapkan spesifikasi baru ke pod database Anda dengan segera.
Untuk mengetahui informasi selengkapnya tentang sintaksis manifes Operator AlloyDB Omni, 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.