Migracja do RDS
TO JEST SZKIC
Na podstawie paybm test / accept
Założenia:
Na RDS nie mamy superusera, co niesie ze sobą następujące kwestie:
cześć komend (np. w zakresie uprawnień) jest niedostępna dla naszego użytkownika
w szczególności nie możemy stworzyć innego superusera
nie możemy zmienić części parametrów
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
Przy okazji migracji do aws warto wyprostować np. uprawnienia na bazie
migracje do aws można zrealizować na kilka sposobów
dump + restore
plusem jest wykonanie “vacuum full“
minusem jest długi downtime
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
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 usersLogujemy się do konsoli i wykonujemy
select 'GRANT '||rolname||' TO superuser;' from pg_roles \gexecWyskoczą błędy, które ingnorujemy (jako superuser tylko z nazwy nie mozemy sobie pewnych uprawnień przypisać)