sql >> Database teknologi >  >> RDS >> PostgreSQL

Migrer gradvist fra SQL Server til PostgreSQL

Alt, hvad du foreslår, er en opskrift på smerte og mislykkede migrationer. Folk vil skråle og fable om, hvor forfærdelig, langsom og upålidelig PostgreSQL er, hvis du prøver at bruge denne tilgang. Det ville være et godt politisk træk af en person, der ville beholde SQL Server, men ikke en god måde at migrere til PostgreSQL.

Der kommer en udenlandsk læse/skrive-dataindpakning til nyere Pg-versioner, men den vil i første omgang kun understøtte andre PostgreSQL-servere. At understøtte MS SQL ville være meget sværere på grund af behovet for at oversætte sqlstates og fejlmeddelelser, søgebetingelser og mere, så enhver indpakning ville uden tvivl være ret begrænset og have mindre end stor ydeevne. Som du siger, er FDW-understøttelse alligevel for umoden på dette tidspunkt.

Der er bare så mange ting, du mister ved at prøve at lave en hybrid som denne:

  • Ingen håndhævelse af fremmednøgleintegritet

  • Datatyper på hver side opfører sig muligvis ikke 100 % ens, så data kan være OK på den ene side og ikke på den anden. Tænk på tidsstempler/datoer.

  • Effektive joinforbindelser ville kræve en ekstremt sofistikeret udenlandsk dataindpakning - så det, der normalt vil ske, er, at hele bordet vil blive hentet og derefter slået sammen lokalt. Ydeevnen vil være forfærdelig.

  • At skrive forespørgsler bliver et mareridt, når du laver andet end den mest trivielle opgave. Funktionsnavne er forskellige osv.

  • Du mister eller svækker mange ACID-egenskaber og/eller skal bruge tofaset commit, hvilket er dårligt for ydeevnen.

Seriøst, gør ikke dette.

Synkronisering af DB'erne er sandsynligvis endnu værre - medmindre det er én vej, vil det være en opskrift på mistede opdateringer, slettede rækker, der dukker op igen og værre. To-vejs synkronisering er ekstremt hårdt.

Begynd at forberede dine apps til en flytning ved at gøre dem i stand til at køre på begge servere, men kun én ad gangen. Når du har fået appen klar til at køre på Pg, skal du begynde at udføre belastningstest og pålidelighedstest med en migreret kopi af live-dataene. tænk på at migrere, men hav planer for, hvordan du kan vende flytningen, hvis du finder problemer i sidste øjeblik, der tvinger dig til at forsinke.

Hvis du tilføjer helt nye dele til appen, kan det være rimeligt at have dem i Pg, hvis de slet ikke interagerer med de andre data i DB. Det er dog ret usandsynligt, og dine sysadmins vil stadig hade dig, når du fortæller dem, at du nu har brug for et atomisk øjebliksbillede på tværs af to separate databaser...



  1. MYSQL Dedupliker og fjern den dubletrække med mindst data

  2. Sådan løses ORA-06512 på linjenummer

  3. mysql distinkte værdier uden tom streng og NULL

  4. Brug af net/ssh/gateway til at etablere ssh-tunnel til mysql