sql >> Databasteknik >  >> RDS >> PostgreSQL

Migrera gradvis från SQL Server till PostgreSQL

Allt du föreslår är ett recept på smärta och misslyckade migrationer. Folk kommer att gnälla och rave om hur hemskt, långsamt och opålitligt PostgreSQL är om du försöker använda detta tillvägagångssätt. Det skulle vara ett bra politiskt drag av någon som ville behålla SQL Server, men inte ett bra sätt att migrera till PostgreSQL.

Det kommer ett främmande läs/skrivdataomslag för nyare Pg-versioner, men det kommer till en början bara att stödja andra PostgreSQL-servrar. Att stödja MS SQL skulle vara mycket svårare på grund av behovet av att översätta sqlstates och felmeddelanden, sökvillkor och mer, så alla omslag skulle utan tvekan vara ganska begränsade och ha mindre än bra prestanda. Som du säger är FDW-stödet för omoget vid det här laget i alla fall.

Det finns bara så många saker du förlorar genom att försöka göra en hybrid som denna:

  • Inget verkställande av främmande nyckelintegritet

  • Datatyper på varje sida kanske inte beter sig 100 % på samma sätt så data kan vara OK på ena sidan och inte på den andra. Tänk på tidsstämplar/datum.

  • Effektiva sammanfogningar skulle kräva ett extremt sofistikerat utländskt dataomslag - så vad som vanligtvis händer är att hela tabellen hämtas och sedan sammanfogas lokalt. Prestanda kommer att vara hemskt.

  • Att skriva frågor blir en mardröm när du gör allt annat än den mest triviala uppgiften. Funktionsnamn skiljer sig osv.

  • Du förlorar eller försvagar många ACID-egenskaper och/eller måste använda tvåfas commit, vilket suger för prestanda.

Seriöst, gör inte det här.

Att synkronisera DB:erna är förmodligen ännu värre - om det inte är på ett sätt kommer det att bli ett recept för förlorade uppdateringar, raderade rader som dyker upp igen och ännu värre. Tvåvägssynkronisering är extremt svårt.

Börja förbereda dina appar för en flytt genom att låta dem köras på båda servrarna, men bara en åt gången. När du har fått appen redo att köras på Pg, börja göra lite belastningstestning och tillförlitlighetstestning med en migrerad kopia av livedata. fundera på att migrera, men ha planer för hur du ska vända flytten om du hittar problem i sista minuten som tvingar dig att skjuta upp.

Om du lägger till helt nya delar till appen kan det vara rimligt att ha dem i Pg om de inte alls interagerar med andra data i DB. Det är dock ganska osannolikt, och dina systemadministratörer kommer fortfarande att hata dig när du säger till dem att du nu behöver en atomär ögonblicksbild över två separata databaser...



  1. Oracle skapa tabell med kolumnkommentarer

  2. radera från databasen efter att webbläsaren stängts

  3. orakeluttryck av fel typ vid kontroll av variabel

  4. Hur föreslår du unika användarnamn för användare i PHP?