sql >> Databasteknik >  >> RDS >> Mysql

Hur man migrerar MySQL från Amazon EC2 till ditt on-prem datacenter utan driftstopp

Sedan starten har det skett ett ökande antal migreringar till en molnbaserad miljö. När allt kommer omkring kan datormoln ge många fördelar för företag, särskilt de som arbetar med big data.

Men när efterfrågan ökar ökar kostnaderna också, och du kan hamna i en situation där de månatliga molnkostnaderna blir för höga och de negativa effekterna snart överväger fördelarna med att arbeta i molnet. Eller så kanske du har krav på säkerhet eller efterlevnad som kräver att du har mer direkt kontroll över dina system. Detta kan i slutändan göra ett fall för dig att migrera tillbaka till en lokal miljö.

AWS tillhandahåller övervaknings- och hanteringsverktyg för att köra vårt system i molnet samtidigt som vi har synlighet och kontroll för optimering. Men när vi är redo för en lokal lösning kan det vara utmanande att migrera vår data och återskapa alla verktyg för att hantera våra system på rätt sätt.

I den här bloggen kommer vi att diskutera hur du kan migrera dina system från AWS till ett lokalt datacenter och hur ClusterControl kan hjälpa till att effektivisera processen.

Koncept

Innan vi hoppar in, låt oss täcka några grundläggande begrepp om Amazon Cloud och ClusterControl.

AWS

Amazon Web Services (AWS) är en Infrastructure as a Service-plattform som består av ett stort antal oberoende och halvoberoende tjänster. Syftet med Infrastructure as a Service-plattformen är att erbjuda, på råvarubasis, tjänster som tidigare krävde köp av kapitalintensiva infrastrukturkomponenter såsom avancerade servrar, nätverksroutrar och switchar, och för större företag, även deras egna datacenter.

RDS

Amazon Relational Database Service (RDS) gör det enkelt att konfigurera, driva och skala en relationsdatabas i molnet. Det ger kostnadseffektiv och storleksändringsbar kapacitet samtidigt som den automatiserar tidskrävande administrationsuppgifter som hårdvaruförsörjning, databasinstallation, patchning och säkerhetskopiering.

Amazon RDS är tillgänglig på flera databasinstanstyper och ger dig sex välbekanta databashanteringssystem att välja mellan, inklusive Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database och SQL Server.

EC2

Amazon Elastic Compute Cloud (EC2) är en tjänst som ger säker och storleksändringsbar beräkningskapacitet i molnet. Den är utformad för att göra webbskala molnberäkning enklare för utvecklare.

Amazon EC2:s enkla webbgränssnitt låter dig få och konfigurera kapacitet med minimal friktion. Det ger dig fullständig kontroll över dina datorresurser och låter dig köra på Amazons beprövade datormiljö.

ClusterControl

ClusterControl är ett omfattande hanteringssystem för databaser med öppen källkod som automatiserar driftsättning, hanteringsfunktioner och hälso- och prestandaövervakning från en enda ruta.

ClusterControl stöder distribution, hantering, övervakning och skalning för olika databastekniker i alla miljöer.

Varför migrera till On-Prem?

Som vi tidigare nämnt är de vanligaste orsakerna till att migrera från AWS till en lokal miljö kostnader, säkerhet, efterlevnad eller att köra lokala applikationer. I AWS vet du inte vad som händer under huven på infrastrukturen. Du vet bara om allt fungerar. Om du upplever dåliga prestanda eller avvikelser är den enda lösningen att komma i kontakt med Amazons support.

Exempel på migreringsscenario

I AWS har du två olika produkter relaterade till den här bloggen:EC2 och RDS.

Den största skillnaden mellan dem är att i EC2 har du SSH-åtkomst till servern och måste hantera databasen själv. RDS är en värdbaserad databastjänst och du har bara tillgång till databasinstansen.

I RDS, eftersom du inte har SSH-åtkomst, måste du skapa en dump och importera den till den nya servern, eller konfigurera replikering och marknadsföra repliken till den nya primära. För båda alternativen är processen manuell. Du kan också lägga till en lastbalanserare för att förbättra denna process. Vi täckte denna uppgift i dessa bloggar:Del 1 och Del 2.

Så, låt oss fokusera på migreringen från EC2.

I vårt exempel, låt oss se hur man migrerar MySQL från AWS EC2 till ett lokalt datacenter. Vi kommer att använda en MySQL-replikeringsmiljö, men dessa steg bör fungera för andra teknologier som PostgreSQL.

Vi antar att du har din huvudsakliga MySQL-databas som körs på en EC2-instans. I det lokala datacentret antar vi också att du har ClusterControl installerad och en ny databasserver att migrera till.

I AWS-hanteringskonsolen bör du ha något liknande i EC2 avsnittet instanser:

Först måste du importera din nuvarande primära nod som körs på EC2 till ClusterControl. För denna importprocess måste du öppna port 3306 genom att redigera säkerhetsgruppen som är kopplad till EC2-instansen.

Efter detta, inom ClusterControl, gå till avsnittet Importera:

Där kan du välja databasteknik, i det här exemplet MySQL Replication, och du måste ange användaren, nyckeln eller lösenordet och porten för att ansluta till din server via SSH. Du måste också ange namnet på ditt nya kluster.

 

När du har ställt in SSH-åtkomstinformationen måste du definiera databasinformation som t.ex. databasadministratörsuppgifterna, porten och basedir. Du kan också aktivera funktionerna ClusterControl Node AutoRecovery och Cluster AutoRecovery för det nya klustret.

Då måste du lägga till din server genom att använda IP-adressen eller värdnamnet och trycka på Importera.

När det är klart kan du övervaka statusen för importjobbet från ClusterControl-aktivitetsmonitor.

När uppgiften är klar kommer du att se din databasnod i huvudet ClusterControl-skärm:

Se till att aktivera binloggenerering i din nuvarande huvuddatabas.

Nu kan du lägga till din framtida nya primära nod som en ny replik från din nuvarande primära databas. För detta, gå till ClusterControl -> Välj Cluster -> Cluster Actions -> Add Replication Slave.

Här måste du lägga till värdnamnet eller IP-adressen för den nya repliken server och om du vill att ClusterControl ska installera programvaran åt dig.

Se till att du har anslutning från AWS till portarna 3306 och 9999 på den lokala servern.

ClusterControl stegar repliken med data genom att ta en het säkerhetskopia av den primära, strömma den till repliken och återställa den där. När den har återställts är repliknoden ansluten till den primära noden så att den kan komma ikapp händelser och synkroniseras. Observera att för stora databaser som körs med viss belastning, kanske du vill undvika den extra belastningen av denna operation på den primära noden. I så fall är det möjligt att bygga replikanoden först från en befintlig säkerhetskopia och sedan ansluta repliken, så att den kommer ikapp den primära noden.

Efter den här uppgiften bör du ha något sånt här:

Du kan också verifiera din topologi i avsnittet ClusterControl Topology.

Sedan måste du marknadsföra repliken till primär (ClusterControl -> Välj Cluster -> Nod Actions -> Promote Slave) och ändra slutpunkten i din applikation.

För att förbättra denna topologi kan du lägga till en lastbalanserare för att hantera trafiken från applikationsservern till databasen. När du använder en lastbalanserare behöver du inte ändra slutpunkten från din applikation under migreringen; lastbalanseraren kommer att ändra den primära noden på ett transparent sätt.

Det finns många sätt att utföra den här uppgiften, och du bör kunna anta en strategi som denna för din miljö, beroende på din infrastruktur, säkerhet, etc.

Av säkerhetsskäl bör du överväga att använda ett VPN mellan AWS och den lokala miljön.

I fallet med en multi-master topologi som Galera Cluster behöver du bara lägga till de noder som du vill ha på plats, men var försiktig med latensen. Du kan till exempel använda olika Galera-segment för att minska nätverksanvändningen.

Överväganden för migrering

Slutligen, här är några överväganden att ta hänsyn till om du vill lämna AWS och börja använda din egen miljö:

  • Övervakning:Glöm inte att använda ett övervakningssystem. Du måste veta vad som händer i ditt system hela tiden!
  • Katastrofåterställningsstrategi:Du bör överväga en bra DRP. I allmänhet bör du ha informationen på tre olika fysiska platser:Primär, Replika och backup.
  • Hög tillgänglighet:Nuförtiden är hög tillgänglighet ett måste i de flesta produktionsmiljöer, så du måste tänka på den bästa högtillgänglighetslösningen beroende på din infrastruktur.
  • Skalning:Du bör kunna skala om det behövs i framtiden eller för en specifik händelse.
  • Återställning:Om du vill migrera från AWS till en lokal miljö, kom ihåg att något kan gå fel (som i alla typer av migrering), så du bör ha en återställningsplan.
  • Anta att du är ute efter någon form av hybridmiljö, med instanser som körs på AWS och on-prem. I så fall är ClusterControl en utmärkt passform för övervakning, hantering av tillgänglighet, säkerhetskopiering, skalning och mer. Ge det ett försök!

Avsluta

Ibland är det helt enkelt inte det bästa att arbeta i molnet, och du kan behöva migrera tillbaka till en lokal lösning. Vi hoppas att den här bloggen har försett dig med lite användbar information om att migrera din MySQL-baserade data till ditt lokala datacenter från AWS och hur ClusterControl levererar de verktyg du behöver för att korrekt hantera dina system.

När du har slutfört din migrering, höj nivån på ditt övervakningssystem med proaktiva strategier som prediktiv varning. Kolla in vårt nyligen uppdaterade inlägg om databasövervakning med ClusterControl för att lära dig mer.

För fler uppdateringar om databashanteringstips och bästa praxis, se till att prenumerera på vår blogg, RSS-flöde och följ oss på LinkedIn och Twitter.


  1. SQL Server-säkerhetskopiering/återställning kontra ta bort/fästa

  2. Hur får man effektiv Sql Server-deadlock-hantering i C# med ADO?

  3. SQL ROWNUM hur man returnerar rader mellan ett specifikt intervall

  4. Datumkolumnaritmetik i PostgreSQL-fråga