Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Perl:Jak skopiować/odbić zdalne tabele MYSQL do innej bazy danych? Może też inna struktura?

Dwa terminy, których szukasz, to „replikacja " lub "ETL".

Po pierwsze, podejście do replikacji.

Załóżmy, że Twój serwer administracyjny ma tabele T1, T2, T3, a serwer publiczny ma tabele TP1, TP2.

Więc to, co chcesz zrobić (ponieważ masz różne struktury tabel, jak powiedziałeś), to:

  1. Weź tabele z serwera publicznego i utwórz ich dokładne kopie na serwerze administracyjnym (TP1 i TP2).

  2. Utwórz wyzwalacz w oryginalnych tabelach serwera administracyjnego, aby wypełnić dane z T1/T2/T3 w kopii serwera administracyjnego TP1/TP2.

  3. Będziesz także musiał wykonać wstępne wypełnienie danych z T1/T2/T3 do kopii serwera administracyjnego TP1/TP2. Tak.

  4. Skonfiguruj „replikację " z TP1/TP2 serwera administracyjnego na TP1/TP2 serwera publicznego

Innym podejściem jest napisanie programu (takie programy nazywają się ETL - Extract-Transform-Load), który wypakuje dane z T1/T2/T3 na serwer administracyjny (część „E” w „ETL”), przesunie dane do formatu odpowiedniego do załadowania do tabel TP1/TP2 (część "T" "ETL"), przenieś (przez ftp/scp/whatnot) te pliki na serwer publiczny i drugą połowę programu ("L") część załaduje pliki do tabel TP1/TP2 na serwerze publicznym. Obie części programu zostałyby uruchomione przez cron lub wybrany przez Ciebie harmonogram.

Jest artykuł z bardzo dobrym przykładem, jak rozpocząć tworzenie ETL Perla/MySQL:http://oreilly.com/pub/a/databases/2007/04/12/budowanie-magazynu-danych -with-mysql-and-perl.html?page=2

Jeśli wolisz nie tworzyć własnych, oto lista systemów ETL typu open source, nigdy żadnego z nich nie używałem, więc nie ma opinii na temat ich użyteczności/jakości:http://www.manageability.org/blog/stuff/open-source-etl



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP array_intersect lub in_array, a następnie MYSQL

  2. Zarządzanie kontami użytkowników, role, uprawnienia, uwierzytelnianie PHP i MySQL - Część 2

  3. Błąd wyrażenia regularnego Mysql #1139 przy użyciu literału -

  4. java.net.InetAddress klasa java nie rozwiązuje adresu IP w kontenerze Alpine Docker

  5. 500 - Wystąpił błąd – funkcja DB nie zgłasza błędów podczas dodawania nowego artykułu w Joomla