sql >> Database >  >> RDS >> MariaDB

Een kloon maken van uw MySQL- of PostgreSQL-databasecluster

Als je een productiedatabase beheert, is de kans groot dat je je database hebt moeten klonen naar een andere server dan de productieserver. De basismethode voor het maken van een kloon is het herstellen van een database vanaf een recente back-up naar een andere databaseserver. Een andere methode is door te repliceren vanuit een brondatabase terwijl deze nog actief is. In dat geval is het belangrijk dat de oorspronkelijke database niet wordt beïnvloed door enige kloonprocedure.

Waarom zou je een database moeten klonen?

Een gekloonde databasecluster is handig in een aantal scenario's:

  • Problemen met uw gekloonde productiecluster oplossen in de veiligheid van uw testomgeving terwijl u destructieve bewerkingen op de database uitvoert.
  • Patch/upgrade-test van een gekloonde database om het upgradeproces te valideren voordat het wordt toegepast op het productiecluster.
  • Valideer back-up en herstel van een productiecluster met behulp van een gekloonde cluster.
  • Valideer of test nieuwe applicaties op een gekloond productiecluster voordat u deze implementeert op het live productiecluster.
  • Kloon de database snel voor audit- of informatienalevingsvereisten, bijvoorbeeld tegen het einde van het kwartaal of het jaar, waarbij de inhoud van de database niet mag worden gewijzigd.
  • Er kan met tussenpozen een rapportagedatabase worden gemaakt om gegevenswijzigingen tijdens het genereren van rapporten te voorkomen.
  • Migreer een database naar nieuwe servers, nieuwe implementatieomgeving of een nieuw datacenter.

Als u uw database-infrastructuur in de cloud uitvoert, zijn de kosten van het bezitten van een host (gedeelde of speciale virtuele machine) aanzienlijk lager in vergelijking met de traditionele manier om ruimte in een datacenter te huren of een fysieke server te bezitten. Bovendien kan het grootste deel van de cloudimplementatie eenvoudig worden geautomatiseerd via provider-API's, clientsoftware en scripting. Daarom kan het klonen van een cluster een veelvoorkomende manier zijn om uw implementatieomgeving te dupliceren, bijvoorbeeld van dev naar staging naar productie of vice versa.

We hebben deze functie nog niet door iemand op de markt zien aangeboden, dus het is ons een voorrecht om te laten zien hoe het werkt met ClusterControl.

Een MySQL Galera-cluster klonen

Een van de coole functies in ClusterControl is dat je snel een bestaande MySQL Galera-cluster kunt klonen, zodat je een exacte kopie hebt van de dataset op het andere cluster. ClusterControl voert het klonen online uit, zonder enige vergrendeling of downtime naar het bestaande cluster. Het lijkt op een uitschaalbewerking voor clusters, behalve dat beide clusters onafhankelijk van elkaar zijn nadat de synchronisatie is voltooid. Het gekloonde cluster hoeft niet noodzakelijk dezelfde clustergrootte te hebben als het bestaande. We zouden kunnen beginnen met een cluster met één knooppunt en dit in een later stadium uitbreiden met meer databaseknooppunten.

In dit voorbeeld hebben we een cluster genaamd "Staging" dat we zouden willen klonen als een ander cluster genaamd "Production". Het uitgangspunt is dat het staging-cluster de benodigde gegevens al heeft opgeslagen die binnenkort in productie gaan. Het productiecluster bestaat uit nog eens 3 nodes, met productiespecificaties.

Het volgende diagram vat de uiteindelijke architectuur samen van wat we willen bereiken:

Het eerste dat u moet doen, is een wachtwoordloze SSH instellen vanaf de ClusterControl-server naar de productieservers. Voer op de ClusterControl-server het volgende uit:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Voer het root-wachtwoord van de doelserver in als daarom wordt gevraagd.

Klik in de ClusterControl-databaseclusterlijst op de knop Clusteractie en kies Cluster klonen. De volgende wizard verschijnt:

Geef de IP-adressen of hostnamen van het nieuwe cluster op en zorg ervoor dat u al het groene vinkje naast de opgegeven host. Het groene pictogram betekent dat ClusterControl verbinding kan maken met de host via SSH zonder wachtwoord. Klik op de knop "Clone Cluster" om de implementatie te starten.

De implementatiestappen zijn:

  1. Een nieuw cluster maken bestaat uit één knooppunt.
  2. Synchroniseer het nieuwe cluster met één knooppunt via SST. De donor is een van de bronservers.
  3. De resterende nieuwe nodes worden toegevoegd aan het cluster nadat de donor van het gekloonde cluster is gesynchroniseerd met het cluster.

Als je klaar bent, wordt er een nieuwe MySQL Galera-cluster weergegeven onder het clusterdashboard van ClusterControl zodra de implementatietaak is voltooid.

Merk op dat het klonen van het cluster alleen de databaseservers kloont en niet de hele stapel van het cluster. Dit betekent dat andere ondersteunende componenten die verband houden met het cluster, zoals load balancers, virtueel IP-adres, Galera-arbiter of asynchrone slave, niet door ClusterControl worden gekloond. Als u desondanks wilt klonen als een exacte kopie van uw bestaande database-infrastructuur, kunt u dat met ClusterControl bereiken door die componenten afzonderlijk te implementeren nadat het klonen van de database is voltooid.

Een databasecluster maken van een back-up

Een andere soortgelijke functie die door ClusterControl wordt aangeboden, is "Cluster maken van back-up". Deze functie is geïntroduceerd in ClusterControl 1.7.1, specifiek voor Galera Cluster- en PostgreSQL-clusters waar men een nieuw cluster kan maken van de bestaande back-up. In tegenstelling tot het klonen van clusters, brengt deze bewerking geen extra belasting voor het broncluster met een afweging van het gekloonde cluster zal niet de huidige status hebben als het broncluster.

Als u een cluster wilt maken van een back-up, moet u een werkende back-up hebben gemaakt. Voor Galera Cluster worden alle back-upmethoden ondersteund, terwijl voor PostgreSQL alleen pgbackrest niet wordt ondersteund voor de implementatie van nieuwe clusters. Vanuit ClusterControl kan eenvoudig een back-up worden gemaakt of ingepland onder ClusterControl -> Back-ups -> Back-up maken. Klik in de lijst met de gemaakte back-up op Back-up herstellen, kies de back-up uit de lijst en kies "Cluster maken van back-up" bij de hersteloptie:

In dit voorbeeld gaan we een nieuw PostgreSQL Streaming Replication-cluster implementeren voor staging-omgeving, op basis van de bestaande back-up die we hebben in het productiecluster. Het volgende diagram illustreert de uiteindelijke architectuur:

Het eerste dat u moet doen, is een wachtwoordloze SSH instellen vanaf de ClusterControl-server naar de productieservers. Voer op de ClusterControl-server het volgende uit:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Als u Cluster maken van back-up kiest, opent ClusterControl een dialoogvenster met de implementatiewizard om u te helpen bij het instellen van het nieuwe cluster:

Er wordt een nieuwe PostgreSQL Streaming Replication-instantie gemaakt op basis van de geselecteerde back-up, die wordt gebruikt als de basisgegevensset voor het nieuwe cluster. De geselecteerde back-up moet toegankelijk zijn vanaf de knooppunten in het nieuwe cluster of zijn opgeslagen in de ClusterControl-host.

Als u op "Doorgaan" klikt, wordt de standaard wizard voor implementatie van databaseclusters geopend:

Houd er rekening mee dat het gebruikerswachtwoord voor root/admin voor dit cluster hetzelfde moet zijn als het PostgreSQL admin/root wachtwoord zoals opgenomen in de back-up. Volg de configuratiewizard dienovereenkomstig en ClusterControl voert de implementatie vervolgens uit in de volgende volgorde:

  1. Installeer de benodigde software en afhankelijkheden op alle PostgreSQL-knooppunten.
  2. Start het eerste knooppunt.
  3. Stream en herstel back-up op het eerste knooppunt.
  4. Configureer en voeg de rest van de knooppunten toe.

Als u klaar bent, wordt er een nieuw PostgreSQL-replicatiecluster weergegeven onder het clusterdashboard van ClusterControl zodra de implementatietaak is voltooid.

Conclusie

Met ClusterControl kunt u met slechts een aantal klikken een databasecluster klonen of kopiëren naar meerdere omgevingen. Je kunt het vandaag gratis downloaden. Gelukkig klonen!
  1. Afbeeldingen opslaan en ophalen in Postgresql met Java

  2. Hoe de tabelnaam van sqlite DB weer te geven -- Android

  3. Krijg het aantal dagen in een maand in PostgreSQL

  4. Alle uitgeschakelde beperkingen in SQL Server retourneren (T-SQL-voorbeeld)