it-swarm-eu.dev

Jaký je doporučený způsob zálohování databáze MySQL / Amazon RDS na S3?

Mám na to dva účely:

  1. Mít zálohu mimo pracoviště v případě problému s Amazon Web Services v celém regionu.
  2. Kopírování dat o produkci z produkčního fakturačního účtu do fakturačního účtu beta.

V současné době se nezdá, že Amazon podporuje oba tyto případy použití.

Viděl jsem zmínku mysqldump a xtrabackup (viz forma příspěvek).

Viděl jsem také komplikovanější proces (zdokumentovaný zde )

  1. Nový server RDS ve zdrojovém fakturačním účtu (prod) se roztočí z poslední zálohy.
  2. Je spuštěna nová instance EC2, která má přístup k serveru RDS v kroku 1.
  3. mysqldump se používá k vytvoření zálohy této databáze.
  4. Záloha je zkopírována do umístění mimo lokalitu (S3?).
  5. V samostatném účtu nebo oblasti je spuštěn nový server RDS.
  6. Dump databáze je importován.

Tipy a návrhy jsou vítány.

32
Peter Stephens

Doporučený způsob zálohování RDS je automatické zálohy a snapshoty DB . Snímky DB jsou v zásadě stejné jako snímky EBS, které jsou uloženy v S3 za scénami, ale jsou k dispozici pouze ve stejné oblasti.

Pokud potřebujete odolnost proti chybám v různých regionech (dobrý plán!), Neexistuje způsob, jak obnovit data v jiná oblast , aniž byste to udělali „tvrdým způsobem“ z mysqldumpu. Vaše alternativy jsou zálohování pomocí mysqldump (pomalé a hrozné pro jakýkoli dataset přiměřené velikosti), nebo si vytvořte vlastní otrok na bázi EC2 v jiném regionu a zálohujte jej pomocí jakékoli dostupné metody (xtrabackup, snímky EBS atd.). Poté se však vrátíte ke správě svých vlastních instancí MySQL, takže můžete RDS úplně opustit.

RDS pro mé peníze neposkytuje absolutně žádné výhody v žádném případě a spoustu nevýhod ve výkonu, flexibilitě a spolehlivosti. Chtěl bych se zeptat, jakou hodnotu vám RDS poskytuje.

23
Aaron Brown

Měl jsem stejný problém. Mým řešením bylo napsat jednoduchý bash skript . Je však omezen na jeden region.

Zde je uvedený skript:

#!/bin/bash
NOWDATE=`date +%Y-%m-%d`
BACKUPNAME="$NOWDATE.sql.gz"

echo "Creating backup of database finances to $BACKUPNAME"
mysqldump –user=user –password=password database_name | gzip -9 > $BACKUPNAME

echo "Succesfully created database backup"

echo "Uploading backup to Amazon S3 bucket…"
s3cmd put $BACKUPNAME s3://path/to/file/$BACKUPNAME

echo "Successfully uploaded backup to S3"

echo "Deleting backup file…"
rm $BACKUPNAME

echo "Done"
10
Jeevan Dongre

AWS RDS nyní podporuje cross-region a cross-account kopírování snímků , což vám umožní splnit své cíle jednoduše pomocí RDS.

K získání záloh na S3 v tomto okamžiku musíte použít metodu skriptu výpisu. Schopnost používat S3-IA nebo Glacier by byla dobrá, pokud jde o úspory nákladů, protože náklady na zálohování RDS jsou na úrovni S3 Standard nebo vyšší (liší se podle db).

7
Mike Lapinskas