התקנה של PostGIS ל-AlloyDB Omni

בחירת גרסת התיעוד:

בדף הזה מוסבר איך להוסיף באופן ידני את התוסף PostGIS להתקנה קיימת של AlloyDB Omni. התוסף PostGIS מאפשר לאחסן נתונים גיאו-מרחביים, ליצור להם אינדקסים ולהריץ עליהם שאילתות.

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

מתקינים את AlloyDB Omni במערכת.

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

כדי להוסיף את התוסף PostGIS להתקנת AlloyDB Omni, פועלים לפי השלבים הבאים:

  1. כדי לבקש גישה למהדורת Preview, צריך למלא את הטופס הזה.
  2. מאתחלים את Red Hat Subscription Manager במכונה הווירטואלית שבה התקנתם את שרת AlloyDB Omni:

    sudo dnf install -y subscription-manager
    sudo subscription-manager register --username "RHSM_USER" --password "RHSM_PASS" --auto-attach --force
    

    מחליפים את מה שכתוב בשדות הבאים:

    • RHSM_USER: המשתמש ב-Red Hat Subscription Manager.
    • RHSM_PASS: הסיסמה של Red Hat Subscription Manager.
  3. מפעילים את מאגר CodeReady Builder:

    sudo subscription-manager repos --enable="codeready-builder-for-rhel-9-$ARCH-rpms"
    

    מחליפים את ARCH בארכיטקטורת RHEL שרוצים להשתמש בה, לדוגמה, x86_64.

  4. מוסיפים את מאגר ה-Yum של PostgreSQL:

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
  5. מתקינים את שרת PostgreSQL ואת חבילות הפיתוח:

    sudo dnf install -y "postgresql17-server"
    

    מחליפים את OMNI_VERSION במספר הגרסה של AlloyDB Omni, שהוא 17.

  6. מתקינים את התוסף PostGIS:

    sudo dnf install -y postgis35_17
    
  7. יוצרים את הקישורים הסימבוליים הנדרשים כדי שהתוספים יהיו בנתיבים הצפויים:

    set -e
    PGVER="17"
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/share/extension"
    
    for file in /usr/pgsql-${PGVER}/share/extension/*; do
        target="/usr/lib/postgresql/${PGVER}/share/extension/$(basename "$file")"
        if [[ ! -e "$target" ]]; then
          sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
          echo "Created extension link for $(basename "$file")"
        else
          echo "Target $target already exists."
        fi
    done
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/lib"
    
    for file in /usr/pgsql-${PGVER}/lib/*; do
        target="/usr/lib/postgresql/${PGVER}/lib/$(basename "$file")"
        if [[ ! -e "$target" ]]; then
          sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
          echo "Created lib link for $(basename "$file")"
        else
          echo "Target $target already exists."
        fi
      fi
    done
    
  8. מתחברים למסד הנתונים באמצעות התוסף PostGIS:

    /usr/lib/postgresql/17/bin/psql -h localhost -U postgres
    
  9. הפעלת PostGIS:

    CREATE EXTENSION IF NOT EXISTS POSTGIS;
    
  10. מוודאים ש-PostGIS מותקן ומופעל:

    SELECT postgis_full_version();
    

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

    postgres=# SELECT postgis_full_version();
    postgis_full_version
    --------------------------------------------------------------------------------------------------------------------------------
    POSTGIS="3.3.2 4975da8" [EXTENSION] PGSQL="150" GEOS="3.11.1-CAPI-1.17.1" PROJ="9.1.1" LIBXML="2.9.14" LIBJSON="0.16" LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)"
    (1 row)