2013-06-10 9 views
6

Arbeiten Precident Um festzustellen, ich die folgende Bewertung:RDS MySQL Daten in eine Flat File in einem anderen MySQL neu laden - Std CLI Nicht

  • Amazon-RDS database to Dedicated server
  • Mysqldump of the AWS RDS
  • Ich habe jedoch nicht gefunden eine klare Lösung für meine Probleme in diesen, und nur ergänzende factoids überall - ich wollte eine umfassende spezifische Anleitung zum Verschieben von Daten in/um AWS RDS setzen.

    Ich habe eine Diskussion auf der Percona MySQL Performance Konferenz haben mit einem DBA-Berater, der mit RDS arbeitet, schlug er die folgende, und dies ist offenbar ein Problem häufig - ich zusätzliche Eingang in den Bemühungen wollte, dass jeder helfen .

** Dies ist wichtig für die RDS-Benutzer nach einem großen MySQL Beratungsunternehmen und die Anzahl der Hände beim Vortrag angehoben. **

  • Tor # 1. Holen Sie die Daten aus Ihrer RDS-Instanz. -Sie können nicht zwischen den Hauptversionen innerhalb von RDS wechseln. - Vielleicht möchten Sie es zu EC2 Instanz wie Percona, etc.
  • Wunschliste Ziel # 1a. Secondary, Clean/QA die Daten nach oben, wenn möglich,
  • Ziel # 3 - Holen Sie sich die Daten zurück in eine andere kleinere RDS oder andere Geschmack/Plattform.

Die Fakten:

  1. Ich habe einen großen (40-50GB-Datensatz in utf-8 in erster Linie, einig Latin-1) in MySQL 5.5.x (< 5.5.8). 1a. Der alte Admin setzt aus irgendeinem Grund unsere Instanzgröße auf 1000 GB dedizierten Speicher, der nur auffüllen soll. (?).
  2. Alle Tabellen sind jetzt, offensichtlich InnoDB - ein paar Tabellen sind ~ 14GB. Das ist ein anderes Problem.
  3. Multi-Codierung kann existieren: vielleicht UTF8; Latin-1 und Schwedisch-fkafkakfk?

So mit, dass diese Optionen, die ich mit gehen bin debattieren:

Option A: Gerade .SQL Dump; .SQL nachladen

  1. Kippe, in .SQL Standard das Schema-Anwendungen und Tabellen usw. en masse, neu zu laden.
  2. ** So wurde thininking Latin-1 für die Portabilität: mysqldump -u username -p --default-character-set=latin1 -N database > backup.sql mysql -u username -p --default-character-set=latin1 database < backup.sql**

Frage RE: Eine Option: - Vorschläge re: über Code, für Chunking, Integrität und sonst garantiert einen reibungslosen Dump und Reload? Zufälligkeiten für show information schema mit variabler Encodierungen (Algorithmus für den Umgang mit was latin1 nicht?)

Option B: Einzelne ASCII-Datei Dumps von Tabellen w/Schema + QA/Schema Verfeinerung

  1. Dump , in geradem ASCII (Charset? UTF-8? Ich muss vorsichtig sein?) diese Daten in separate Tabellen, vielleicht in Chunks für Daten QA.

    Würde fahren Sie mit der folgenden Ausgabe TSV DATA und SCHEMA:

    mysqldump --user=dbuser --password --tab=~/output/dir dbname

  2. Zweitens, durch einige Perl/Python laufen möglich verirrten Junk-Zeichen zu bereinigen; Kodierungsprobleme; usw. von 8 Jahren von 5 verschiedenen DBAs und ungefähr 12 verschiedenen Dateneingabeformaten/Dateitypen.

Fragen RE: Option B:

  • Meine Daten eine Menge Müll Zeichen hat, die auf die Daten wahr sind; Rohrleitung das beste?
  • Ich hatte schreckliche Fehler beim Laden in AWS RDS von TSV usw. von grundlegenden Dumps, Vorschläge jenseits dessen, was in ihren Daten geladen Whitepaper veröffentlicht wird?

Antwort

0

Ich würde stark Option C vorschlagen, die ein ETL-Tool zu verwenden ist, um die Daten zu bewegen. Ich habe die Community-Edition von Pentaho Data Integration sehr erfolgreich verwendet, um die Dinge zu tun, nach denen Sie fragen (vor allem die Bereinigung). Es ist mehr Arbeit als ein einfaches Dump und Laden, aber Sie haben eine sehr gute Kontrolle und können Dinge wie die Synchronisierung später wieder tun und so weiter.