sql >> Databáze >  >> RDS >> Mysql

Perl:Jak zkopírovat/zrcadlit vzdálené tabulky MYSQL do jiné databáze? Možná i jiná struktura?

Dva termíny, které hledáte, jsou buď "replikace “ nebo „ETL“.

Za prvé, replikační přístup.

Předpokládejme, že váš administrátorský server má tabulky T1, T2, T3 a váš veřejný server má tabulky TP1, TP2.

Takže to, co chcete udělat (protože máte různé struktury tabulky, jak jste řekl), je:

  1. Vezměte tabulky z veřejného serveru a vytvořte přesné kopie těchto tabulek na serveru správce (TP1 a TP2).

  2. Vytvořte spouštěč v původních tabulkách administrátorského serveru k naplnění dat z T1/T2/T3 do kopie TP1/TP2 administrátorského serveru.

  3. Budete také muset provést počáteční naplnění dat z T1/T2/T3 do kopie TP1/TP2 administrátorského serveru. Hurá.

  4. Nastavte "replikaci " z TP1/TP2 administrátorského serveru na TP1/TP2 veřejného serveru

Jiný přístup je napsat program (takové programy se nazývají ETL - Extract-Transform-Load), který bude extrahovat data z T1/T2/T3 na admin serveru ("E" část "ETL"), masírovat data do formátu vhodného pro načítání do tabulek TP1/TP2 ("T" část "ETL"), přenos (přes ftp/scp/whatnot) těchto souborů na veřejný server a druhou polovinu programu ("L") část načte soubory do tabulek TP1/TP2 na veřejném serveru. Obě poloviny programu by spouštěl cron nebo plánovač dle vašeho výběru.

Existuje článek s velmi dobrým příkladem, jak začít budovat Perl/MySQL ETL:http://oreilly.com/pub/a/databases/2007/04/12/building-a-data-warehouse -with-mysql-and-perl.html?page=2

Pokud nechcete stavět svůj vlastní, zde je seznam open source ETL systémů, žádný z nich jste nikdy nepoužili, takže žádné názory na jejich použitelnost/kvalitu:http://www.manageability.org/blog/stuff/open-source-etl



  1. Doporučené postupy pro ukládání bankovních informací v databázi

  2. Vytvoření databázového poštovního účtu (SSMS)

  3. Jak mohu použít hash hesla s PDO, aby byl můj kód bezpečnější?

  4. NHibernate IPreUpdateEventListener, IPreInsertEventListener se neukládá do DB