Delivery 1.0 Help

Migracja do RDS

TO JEST SZKIC

Na podstawie paybm test / accept

Założenia:

  1. Na RDS nie mamy superusera, co niesie ze sobą następujące kwestie:

    1. cześć komend (np. w zakresie uprawnień) jest niedostępna dla naszego użytkownika

      1. w szczególności nie możemy stworzyć innego superusera

    2. nie możemy zmienić części parametrów

    3. użytkownik administracyjny, którego tworzymy wraz z instancją (w BM nazwany ‘superuser’) ma uprawnienia do tworzenia innych użytkowników i baz, ale na każdy obiekt musi sam sobie nadać uprawnienia

    4. Przy okazji migracji do aws warto wyprostować np. uprawnienia na bazie

  2. migracje do aws można zrealizować na kilka sposobów

    1. dump + restore

      • plusem jest wykonanie “vacuum full“

      • minusem jest długi downtime

    2. replikacja logiczna

      • podstawową zaletą jest minimalny downtime

      • baza prowidera (czyli to co mamy onpremise) musi spełniać klika kryteriów - wszytstkie tabele muszą mieć klucz główny, wal_level = logical

      • replikacja logiczna nie replikuje DDL

Nie wszystkie tabele w paybm mają klucz główny, stąd wybór opcji 2.a.

Użytkownicy

  1. Na on premise wykonujemy

    pg_dumpall --clean -g > users sed -i 's/ NOSUPERUSER//g' users sed -i 's/ SUPERUSER//g' users sed -i 's/ NOREPLICATION//g' users sed -i 's/ REPLICATION//g' users sed -i 's/ GRANTED BY .*$/;/g' users psql -d postgres -U superuser -h paybm.cczlht3zdxig.eu-west-1.rds.amazonaws.com -f users
  2. Logujemy się do konsoli i wykonujemy

    select 'GRANT '||rolname||' TO superuser;' from pg_roles \gexec

    Wyskoczą błędy, które ingnorujemy (jako superuser tylko z nazwy nie mozemy sobie pewnych uprawnień przypisać)

Last modified: 30 May 2024