Halaman ini menjelaskan cara menambahkan ekstensi orafce secara manual ke penginstalan AlloyDB Omni yang ada. Ekstensi orafce menyediakan fungsi dan operator yang mengemulasikan subset fungsi dan paket dari database Oracle. Ekstensi ini menyederhanakan migrasi aplikasi dari Oracle ke database yang kompatibel dengan PostgreSQL seperti AlloyDB Omni.
Sebelum memulai
Instal AlloyDB Omni di sistem Anda.
Menambahkan orafce ke penginstalan AlloyDB Omni Anda
Untuk menambahkan ekstensi orafce ke penginstalan AlloyDB Omni Anda, ikuti langkah-langkah berikut:
Temukan label versi AlloyDB Omni yang terinstal:
Docker
docker run --rm -it google/alloydbomni cat VERSION.txt
Podman
podman run --rm -it google/alloydbomni cat VERSION.txt
Outputnya mirip dengan hal berikut ini:
AlloyDB Omni version: 16.3.0
Catat nomor versi AlloyDB Omni karena Anda akan membutuhkannya pada langkah berikutnya.
Buat image Docker kustom yang menyertakan ekstensi orafce:
$ ~/alloydb-omni-orafce $ cd ~/alloydb-omni-orafce $ cat <<EOF > Dockerfile FROM google/alloydbomni:16.3.0-ubi RUN arch=$(uname -m) RUN dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-$(arch)/pgdg-redhat-repo-latest.noarch.rpm RUN dnf install -y orafce_16 # On RHEL-based systems, PostgreSQL extensions like Orafce and PostGIS are typically installed in /usr/pgsql-16/share/extension and /usr/pgsql-16/lib. # This step creates symbolic links to those files in the paths expected by AlloyDB Omni, # which lets AlloyDB Omni locate extension control files and shared libraries without duplicating data. RUN \ for file in /usr/pgsql-16/share/extension/*; do \ target="/usr/lib/postgresql/16/share/extension/$(realpath -m --relative-to=/usr/pgsql-16/share/extension/ "$file")"; \ if [ ! -e "$target" ]; then \ ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1); \ else \ echo "$target already exists"; \ fi; \ done && \ for file in /usr/pgsql-16/lib/*; do \ target="/usr/lib/postgresql/16/lib/$(realpath -m --relative-to=/usr/pgsql-16/lib/ "$file")"; \ if [ ! -e "$target" ]; then \ ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1); \ else \ echo "$target already exists"; \ fi; \ done EOF
Buat container baru dengan AlloyDB Omni bernama
my-omni-orafce
:docker build -t google/alloydbomni-with-orafce:latest docker run --name my-omni-orafce -e POSTGRES_PASSWORD=NEW_PASSWORD -d google/alloydbomni-with-orafce:OMNI_VERSION
Hubungkan ke database Anda dengan ekstensi orafce:
docker exec -it my-omni-orafce psql -h localhost -U postgres
Aktifkan orafce:
CREATE EXTENSION IF NOT EXISTS ORAFCE;
Konfirmasi bahwa orafce telah diinstal dan diaktifkan:
SELECT oracle.sysdate();
Outputnya mirip dengan hal berikut ini:
postgres=# SELECT oracle.sysdate(); sysdate --------------------- 2024-06-10 16:36:30 (1 row)