2011-06-04 120 views
2

我對MySQL/SQL的總體經驗很少 - 總共n00b!在不同的服務器(同一ISP)上同步兩個mysql數據庫

我有一個活的網站和開發站點,這兩個站點都由同一個ISP託管,但在不同的服務器上,即mysql1.foo.net和mysql2.foo.net。

我想弄清楚同步兩個數據庫的簡單可能的方式 - 無需導出整個東西擦除開發數據庫和恢復。

+1

如果您實時需要它,複製就是答案,但導出/恢復是更新開發數據庫的常用方法。畢竟你*已經得到了產品的夜間備份,你可以使用...對吧? – Paolo 2011-06-04 08:25:33

+0

我將如何去啓用複製? – toomanyairmiles 2011-06-04 10:39:06

回答

1

恐怕有不是「簡單」的解決方案。除了相當小的數據庫在夜間轉儲生產和恢復。 Small被定義爲將< 12小時用於備份還原操作,這仍然非常大。

複製可能不會削減它,因爲只讀副本的價值有限,並且我假設您不希望將dev db上的更改傳播到prod。

轉儲 - 還原(如果可行的話)方面具有優勢,雖然 - 您定期測試備份實際工作 - 你需要編寫,並定期測試您的架構遷移腳本 - 你需要讓他們「放手」,讓他們可以作爲定時任務運行

這些做法使IT運營的生活變得更加輕鬆,並且是讓客戶更好地睡眠的良好風險緩解措施。

在大數據庫中,我不認爲有簡單(或便宜!)的方法。

0

MySQL支持master + slave和master + master複製,但您的託管服務提供商需要爲您設置。

這裏看到更多的信息,如果你有興趣: http://www.howtoforge.com/mysql_master_master_replication

如果你想兩者看作是一次客每同步現在,然後,只需使用:

mysqldump -h server1.example.com -u user -p password database | mysql -u user -p database 
0

除了複製之外,還應該從MySQl Utilities中查看MySQLdbcopy。您的數據庫可能足夠小,可以使用MySQLdbcopy進行復制,並且您可以將其置於cron作業中進行自動化

0

我看到此問題正在通過創建只將新信息從表格移動到每晚表格或15分鐘的作業取決於它是備份還是報告服務器。

有問題,主要是由於如何填充標識列,但除了設計頭痛之外,像這樣的過程可以讓您獲得良好的速度。聽起來這兩個盒子彼此接近,因此數據傳輸速率應該很好。

我會通過創建一個ssis作業來解決它,你可以使用各種工具,但是你必須確保你的表中有一些東西可以用來識別什麼是新數據。時間戳不能使用,因爲該過程需要一秒以上的時間,並且這使得它不可靠,我會設置導出列,或者如果表格足夠小,並且您的索引每個表格少於3 GB,則可以使用這些列來完成任務。最終你比我們更瞭解數據,因此是最佳解決方案。

這樣做的方式很難,但您將節省大量的服務器時間。 加上它是版本控制你的服務器的好方法,因爲每次你的數據類型將被截斷時,它們都會抱怨。

相關問題