התקנת Orafce ל-AlloyDB Omni

בחירת גרסה של מאמר העזרה:

‫AlloyDB Omni לא כולל את תוסף Orafce, אבל אתם יכולים להוסיף אותו ידנית להתקנה קיימת של AlloyDB Omni כדי לספק פונקציות ואופרטורים נוספים ממסד הנתונים של Oracle. פשוט פועלים לפי ההוראות שבדף הזה.

לפני שמתחילים

מוודאים שהתקנתם את AlloyDB Omni במערכת.

שרת יחיד

הוספת Orafce להתקנה של AlloyDB Omni

כדי להוסיף את התוסף Orafce להתקנה של AlloyDB Omni:

  1. מוצאים את תוויות הגרסה של AlloyDB Omni שמותקנות:

    Docker

    docker run --rm -it  google/alloydbomni cat VERSION.txt

    Podman

    podman run --rm -it  google/alloydbomni cat VERSION.txt

    הפלט אמור להיראות כך:

    AlloyDB Omni version: 15.5.5
    

    שימו לב למספר הגרסה של AlloyDB Omni, כי תצטרכו אותו בשלב הבא.

  2. מגדירים את משתנה הסביבה OMNI_VERSION:
    OMNI_VERSION=VERSION

    מחליפים את VERSION בגרסה המלאה של שרת מסד הנתונים מהשלב הקודם, לדוגמה 15.5.5.

  3. יוצרים קונטיינר חדש של AlloyDB Omni שכולל את Orafce:

    Docker

      mkdir ~/alloydb-omni-orafce
      tee -a ~/alloydb-omni-orafce/Dockerfile << EOF
      ARG OMNI_VERSION
    
      FROM postgres:15-bookworm AS postgres
    
      RUN apt-get update && \
      apt-get install -y --no-install-recommends \
      postgresql-15-orafce && \
      apt-get purge -y --auto-remove && \
      rm -rf /var/lib/apt/lists/*
    
      FROM google/alloydbomni:${OMNI_VERSION}
    
      COPY --from=postgres /usr/lib/postgresql/15/lib/orafce.so /usr/lib/postgresql/15/lib/orafce.so
      COPY --from=postgres /usr/share/postgresql/15/extension/orafce* /usr/lib/postgresql/15/share/extension/
    
      COPY --from=postgres /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/
      COPY --from=postgres /lib/x86_64-linux-gnu/ /lib/x86_64-linux-gnu/
      EOF
      cd ~/alloydb-omni-orafce
      sudo docker build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-orafce:$OMNI_VERSION .
      

    Podman

      mkdir ~/alloydb-omni-orafce
      tee -a ~/alloydb-omni-orafce/Dockerfile << EOF
      ARG OMNI_VERSION
    
      FROM postgres:15-bookworm AS postgres
    
      RUN apt-get update && \
      apt-get install -y --no-install-recommends \
      postgresql-15-orafce && \
      apt-get purge -y --auto-remove && \
      rm -rf /var/lib/apt/lists/*
    
      FROM google/alloydbomni:${OMNI_VERSION}
    
      COPY --from=postgres /usr/lib/postgresql/15/lib/orafce.so /usr/lib/postgresql/15/lib/orafce.so
      COPY --from=postgres /usr/share/postgresql/15/extension/orafce* /usr/lib/postgresql/15/share/extension/
    
      COPY --from=postgres /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/
      COPY --from=postgres /lib/x86_64-linux-gnu/ /lib/x86_64-linux-gnu/
      EOF
      cd ~/alloydb-omni-orafce
      sudo podman build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-orafce:$OMNI_VERSION .
      

    Docker

      mkdir ~/alloydb-omni-orafce
      tee -a ~/alloydb-omni-orafce/Dockerfile << EOF
      ARG OMNI_VERSION
    
      FROM postgres:15-bookworm AS postgres
    
      RUN apt-get update && \
      apt-get install -y --no-install-recommends \
      postgresql-15-orafce && \
      apt-get purge -y --auto-remove && \
      rm -rf /var/lib/apt/lists/*
    
      FROM google/alloydbomni:${OMNI_VERSION}
    
      COPY --from=postgres /usr/lib/postgresql/15/lib/orafce.so /usr/lib/postgresql/15/lib/orafce.so
      COPY --from=postgres /usr/share/postgresql/15/extension/orafce* /usr/lib/postgresql/15/share/extension/
    
      COPY --from=postgres /usr/lib/aarch64-linux-gnu/ /usr/lib/aarch64-linux-gnu/
      COPY --from=postgres /lib/aarch64-linux-gnu/ /lib/aarch64-linux-gnu/
      EOF
      cd ~/alloydb-omni-orafce
      sudo docker build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-orafce:$OMNI_VERSION .
      

    Podman

      mkdir ~/alloydb-omni-orafce
      tee -a ~/alloydb-omni-orafce/Dockerfile << EOF
      ARG OMNI_VERSION
    
      FROM postgres:15-bookworm AS postgres
    
      RUN apt-get update && \
      apt-get install -y --no-install-recommends \
      postgresql-15-orafce && \
      apt-get purge -y --auto-remove && \
      rm -rf /var/lib/apt/lists/*
    
      FROM google/alloydbomni:${OMNI_VERSION}
    
      COPY --from=postgres /usr/lib/postgresql/15/lib/orafce.so /usr/lib/postgresql/15/lib/orafce.so
      COPY --from=postgres /usr/share/postgresql/15/extension/orafce* /usr/lib/postgresql/15/share/extension/
    
      COPY --from=postgres /usr/lib/aarch64-linux-gnu/ /usr/lib/aarch64-linux-gnu/
      COPY --from=postgres /lib/aarch64-linux-gnu/ /lib/aarch64-linux-gnu/
      EOF
      cd ~/alloydb-omni-orafce
      sudo podman build --build-arg OMNI_VERSION=$OMNI_VERSION --tag google/alloydbomni-with-orafce:$OMNI_VERSION .
  4. יוצרים קונטיינר חדש עם AlloyDB Omni בשם my-omni-orafce:

    Docker

    docker run --name my-omni-orafce  -e POSTGRES_PASSWORD=NEW_PASSWORD  -d google/alloydbomni-with-orafce:OMNI_VERSION

    Podman

    podman run --name my-omni-orafce  -e POSTGRES_PASSWORD=NEW_PASSWORD  -d google/alloydbomni-with-orafce:OMNI_VERSION
  5. מתחברים למסד הנתונים באמצעות התוסף Orafce:

    Docker

    docker exec -it my-omni-orafce psql -h localhost -U postgres

    Podman

    podman exec -it my-omni-orafce psql -h localhost -U postgres
  6. מפעילים את Orafce:
    CREATE EXTENSION IF NOT EXISTS ORAFCE;
  7. מוודאים ש-Orafce מותקן ומופעל:
    SELECT oracle.sysdate();
    הפלט אמור להיראות כך:
    postgres=# SELECT oracle.sysdate();
         sysdate
    ---------------------
    2024-06-10 16:36:30
    (1 row)