Java

使用自動化過程將數據從一個數據庫複製到另一個數據庫伺服器

  • April 28, 2016

我有一個場景,

我有兩個數據庫伺服器在兩台不同的機器上執行。

我必須建構一個自動化流程,通過該流程,數據將在第一次插入時從一個數據庫複製到另一個數據庫伺服器。

我的應用程序使用 spring-hibernate 和 mysql DB。

我可以選擇 DB 端或 spring-hibernate 端方法。

可以用rabbitMQ做到這一點嗎?

我可以選擇在每次插入時呼叫自動化過程,或者作為批處理過程或使用隊列。以下連結中提到了一些答案,但我不清楚

  1. https://stackoverflow.com/questions/33130260 /transforming-data-from-one-sql-server-db-to-another

2.https://stackoverflow.com/questions/3821897/replicating-data-from-one-db-to-another

任何幫助將不勝感激

不要試圖讓它變得比實際更難。複製機制內置 mySQL 將是最好的。Google有很多教程,例如:

https://fromdual.com/how_to_setup_mysql_master-slave_replication

基本上,您需要主從配置。

以下是我對此的看法,

  1. 通過 DB 端,

如果您不想將部署方面與您的應用程序相結合,那麼這是最好的一個。系統管理員將承擔您的這些負擔。他們將設置主從設置,您的應用程序將無縫訪問數據庫。

  1. 春天——休眠

通過這種方式,您可以使用攔截器並將所有查詢發送到複製機器。但這也會降低你的應用程序的性能,所以在進入這個之前你必須做很多事情,如果在復製過程中出現任何問題,那麼你的應用程序事務也會受到影響。所以在設計時需要更加謹慎。

  1. 使用 Hibernate 攔截器組合分離外部作業:

您可以設計一些外部工作者管理器類型的非同步任務,並將您的複製作業分派給這些工作者。為了更好的性能、可維護性和控制,您還必須維護某種批次。因此,您可以從那裡將修改後的實體維護到單獨的隊列(可能是 redis / rappitMQ )中,您的外部作業將負責複製過程。因此,您的應用程序從負擔中解放出來。

引用自:https://dba.stackexchange.com/questions/134709