PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Sekwencja klucza podstawowego PostgreSQL utracona po migracji za pomocą AWS DMS

Po tym, jak @a_koń_bez_nazwy wskazał mi właściwy kierunek i rozmawiałem z AWS, jestem w stanie odpowiedzieć na własne pytanie, przynajmniej jeśli korzystasz z usługi migracji bazy danych AWS (DMS).

Problem polega na tym, że DMS skupia się tylko na samych danych, a nie na schemacie (co wydaje mi się poważnym przeoczeniem, zwłaszcza jeśli używasz tej samej technologii baz danych, ale to inna kwestia). Tak więc sam schemat nie jest migrowany. Dokumentacja tak naprawdę nie wyjaśnia tego.

Aby rozwiązać ten problem:

  1. Zatrzymaj (jeśli nadal istnieje) istniejącą migrację AWS DMS
  2. Upuść istniejącą migrowaną bazę danych i utwórz nowy pusty schemat do użycia
  3. Wykonaj kroki opisane tutaj https://docs.aws. amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html zainstalować i skonfigurować narzędzie Amazon Schema Conversation Tool (SCT)
  4. Po nawiązaniu połączenia z obiema bazami danych wykonaj kroki opisane tutaj https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html aby "przekonwertować" twój schemat (zrobiłem cały "publiczny" schemat dla tej bazy danych, aby upewnić się, że wszystko jest uwzględnione
  5. Utwórz lub zmodyfikuj migrację AWS DMS, upewniając się, że Tryb przygotowywania tabeli docelowej =„OBCIĄŻAJ” i wyłączaj klucze obce w docelowej bazie danych. Jeśli modyfikujesz, upewnij się, że po wyświetleniu pytania „RESTART” nie wznawiaj

To, czego jeszcze nie testowałem, to jak poradzić sobie z faktem, że migruję żywą bazę danych. Tak więc sekwencje mogą być nieaktualne w docelowej bazie danych po zakończeniu migracji. Wierzę, że mogę później przejść do SCT i migrować tylko sekwencje, ale jeszcze tego nie testowałem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konfigurowanie klucza obcego z innym typem danych

  2. Jak przechowywać DateTimeOffset w PostreSQL?

  3. Zwróć wiersze, które mają maksymalnie jedną kolumnę w Postgresql

  4. Python zrzuty json umieszcza obiekt w obiekcie przy powrocie row_to_json

  5. Szef kuchni i postgres; jak określić hasło?