Halaman ini memberikan petunjuk untuk melakukan migrasi dari versi 15.5.2 dan yang lebih lama ke AlloyDB Omni versi terbaru.
Mulai AlloyDB Omni 15.5.4, Anda dapat mengontrol AlloyDB Omni dengan alat pengelolaan paket umum.
Jika Anda sudah menginstal AlloyDB Omni, ikuti petunjuk di halaman ini untuk bermigrasi ke penginstalan satu image baru.
Prasyarat
Sebelum Anda dapat mulai mengupgrade ke AlloyDB Omni versi terbaru, selesaikan prasyarat berikut, jika Anda belum melakukannya.
Mengupgrade ke AlloyDB Omni 15.5.2
Versi AlloyDB Omni terbaru yang mendukung AlloyDB Omni CLI adalah 15.5.2. Untuk memeriksa versi AlloyDB Omni, jalankan perintah berikut:
sudo alloydb version
Outputnya terlihat mirip dengan yang berikut ini:
AlloyDB Omni CLI version: 1.6
AlloyDB Omni database server version: 15.5.2
Jika output menampilkan versi database yang lebih lama dari 15.5.2, jalankan perintah berikut untuk mengupgrade:
sudo alloydb database-server upgrade
Mengumpulkan informasi tentang penginstalan yang ada
Jalankan perintah berikut:
cat /var/alloydb/config/dataplane.conf
Dari output perintah
cat
, catat nilai variabel berikut sebagai referensi Anda:DATADIR_PATH
—misalnya,/var/alloydb/main
ENABLE_ALLOYDB_AI
—misalnya,FALSE
PGPORT
—misalnya,5432
INSTANCE_TYPE
—misalnya,PRIMARY/READ_REPLICA
Menghapus indeks ScaNN yang dibuat dengan ekstensi postgres_ann
Ekstensi postgres_ann
diganti namanya menjadi alloyd_scann
. Jika telah menginstal ekstensi postgres_ann
dan membuat indeks ScaNN
menggunakan ekstensi tersebut, Anda harus menghapus semua indeks ScaNN
dan meng-uninstal ekstensi sebelum melakukan upgrade.
Untuk menangani dampak apa pun pada database Anda karena penggantian nama ekstensi postgres_ann
, selesaikan langkah-langkah berikut:
- Jalankan dan hubungkan ke AlloyDB Omni.
Identifikasi semua tabel yang menggunakan indeks
ScaNN
.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
Ganti
DATABASE_NAME
dengan nama database tempat Anda ingin menjalankan kueri.Simpan definisi dan parameter indeks sebagai DDL dump menggunakan utilitas seperti
pg_dump
untuk membuat ulang indeksScaNN
nanti.pg_dump -st TABLE_NAME DATABASE_NAME
Ganti kode berikut:
DATABASE_NAME
: nama database.TABLE_NAME
: nama tabel.
Menghapus Indeks
ScaNN
yang dibuat menggunakan indekspostgres_ann
.DROP INDEX INDEX_NAME;
Ganti
INDEX_NAME
dengan nama database tempat Anda ingin menjalankan kueri.Pastikan tidak ada database Anda yang menyertakan indeks
ScaNN
. Gunakan kueri SQL berikut untuk memverifikasi penghapusan: SQL berikut akan menampilkan set hasil kosong.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
Letakkan ekstensi
postgres_ann
menggunakan langkah-langkah berikut:- Pastikan ekstensi
postgres_ann
diinstal di database Anda.
select * from pg_extension;
- Hapus ekstensi
postgres_ann
.
DROP EXTENSION postgres_ann CASCADE;
- Pastikan ekstensi
postgres_ann
tidak lagi diinstal di database Anda.
select * from pg_extension;
- Pastikan ekstensi
Melakukan upgrade di tempat
Hentikan database yang ada:
sudo alloydb database-server stop
Mulai AlloyDB Omni satu gambar baru, dengan memasang direktori data yang ada sebelumnya:
docker run --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=PASSWORD \ -e PGDATA=/var/lib/postgresql/data \ -v /var/alloydb/main/data:/var/lib/postgresql/data \ -v /dev/shm:/dev/shm \ -p PGPORT:5432 \ --network=host \ --ulimit=nice=-20:-20 \ --ulimit=core=-1:-1 \ --log-driver=journald \ -d google/alloydbomni:15.5.5
Ganti kode berikut:
CONTAINER_NAME
: Nama untuk menetapkan penampung AlloyDB Omni baru ini di registry penampung mesin host Anda—misalnya,my-omni
.PASSWORD
: Sandi yang menetapkan penggunapostgres
penampung baru setelah pembuatannya.PGPORT
: Alamat IP port tempat AlloyDB Omni berjalan. Ini adalah nilai yang Anda catat di langkah 2 Mengumpulkan informasi tentang penginstalan yang ada.
Argumen untuk
docker run
adalah argumen yang digunakan di AlloyDB Omni versi sebelumnya, tetapi Anda dapat menyesuaikannya lebih lanjut. Lihat Menyesuaikan penginstalan AlloyDB Omni untuk mengetahui detailnya.Jika jenis instance database Anda adalah
PRIMARY
, jalankan perintah berikut untuk membuat pengguna berikut. Ini adalah nama pengguna yang saat ini tidak digunakan, tetapi dicadangkan untuk ekstensi mendatang.for name in alloydbagent alloydbexport alloydbiamgroupuser alloydbiamuser alloydbimportexport alloydbobservability alloydbsqllogical alloydbsuperuser; do echo docker exec -it CONTAINER_NAME psql -h localhost -U postgres alloydbadmin \ -c "CREATE ROLE ${name} NOLOGIN;" \ -c "CREATE TABLE ${name}_table();" \ -c "ALTER TABLE ${name}_table OWNER TO ${name};" done
Jika
ENABLE_ALLOYDB_AI
ditetapkan keTRUE
, ikuti petunjuk di Menginstal AlloyDB Omni dengan AlloyDB AI untuk menyiapkan AlloyDB AI.Hubungkan ke database untuk memverifikasi bahwa data tidak berubah:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres
Uninstal AlloyDB Omni CLI:
sudo alloydb database-server uninstall
Penguninstalan CLI AlloyDB Omni tidak memengaruhi data Anda yang disimpan di AlloyDB Omni.
Membuat ulang indeks ScaNN menggunakan ekstensi alloydb_scann
Setelah Anda mengupgrade AlloyDB Omni, ekstensi alloydb_scann
juga akan diinstal. Selesaikan langkah-langkah berikut untuk membuat ulang indeks ScaNN yang Anda hapus di bagian Menghapus indeks ScaNN yang dibuat dengan ekstensi postgres_ann
sebelum upgrade.
Buat ekstensi
alloydb_scann
menggunakan langkah-langkah berikut:- Untuk membuat ekstensi
alloydb_scann
, jalankan kueri berikut:
create extension alloydb_scann cascade;
- Pastikan ekstensi
alloydb_scann
berhasil dibuat.
select * from pg_extension;
- Untuk membuat ekstensi
Buat ulang indeks
ScaNN
untuk tabel Anda, lalu pulihkan definisi indeks DDLpg_dump
sebelumnya.- Buat indeks
ScaNN
pada tabel:
CREATE INDEX INDEX_NAME ON TABLE_NAME USING scann (VECTOR_COLUMN DISTANCE) WITH (num_leaves = NUM_LEAVES_VALUE);
Ganti kode berikut:
- INDEX_NAME: nama indeks.
- TABLE_NAME: nama tabel.
- VECTOR_COLUMN: nama kolom yang menyimpan data vektor.
- DISTANCE: fungsi jarak yang akan digunakan dengan indeks ini.
- NUM_LEAVES_VALUE: jumlah partisi yang akan diterapkan ke indeks.
- Pastikan indeks dibuat.
\d TABLE_NAME
- Direkomendasikan: Cadangkan data indeks Anda. Sebaiknya buat cadangan database dan indeks sebagai praktik terbaik.
- Buat indeks