搜尋

首頁  >  問答  >  主體

手動將 MySQL 5.5 資料庫複製到另一台計算機

<p>我的公司使用的產品使用 MySQL 5.5 作為後端資料庫。該產品在安裝過程中會自動安裝和設定 MySQL。此產品可配置為在熱備冗餘配置中運作。在這些情況下,在 2 個獨立的伺服器上執行相同的安裝過程,然後在產品初始配置期間選擇冗餘模式。該產品在內部處理複製資料庫資料並保持兩個資料庫同步的所有流程。 MySQL 知道冗餘設定。兩台伺服器上的 MySQL 安裝相同、位置相同、結構相同。該產品沒有一種非常優雅/高效的方法來同步大型資料庫(例如300G 大小的3K 表),在需要時從主伺服器到備份伺服器,例如從單一伺服器建立冗餘系統時/已經運行了一段時間的主伺服器配置。我的問題如下。 </p> <p>考慮到兩台伺服器上的 MySQL 安裝相同,是否有一種安全/受支援的方法可以將資料庫/檔案從主伺服器手動複製到備份伺服器?順便說一句,這是在生產 視窗 伺服器上。我知道我可以從主資料庫完全匯出資料庫,然後將其匯入到 BU 伺服器上,但這可能需要幾個小時。我希望有一種更快的支援方法將文件從一台伺服器複製到另一台伺服器,但在研究這一點時我看到了衝突的訊息。 </p> <p>系統訊息 視窗 MySQL 5.5 兩台伺服器上的安裝相同 “C:\ProgramData\MySQL\MySQL Server 5.5\data” 創新資料庫 每個表的檔案 = true</p> <p>預先感謝您的任何建議。 </p> <p>I once tried to just copy the Database Folder that contains all the 創新資料庫table files, "C:\ProgramData\MySQL\MySQL Server 5.5\data\Mydbase", from one server to another but mystart would not not up and had errors.</p>
P粉588152636P粉588152636472 天前692

全部回覆(1)我來回復

  • P粉937769356

    P粉9377693562023-09-05 10:18:50

    是:關閉兩台電腦上的 MySQL Server 服務。然後您可以按照您想要的任何方式移動 datadir 中的檔案。但這會在您進行文件傳輸時導致一些停機時間。

    如果必須沒有停機時間,也是可以的,但需要更多步驟。

    我所做的是使用 Percona XtraBackup 對來源實例進行實體備份,但這對您來說並不容易,因為您使用的是 Windows。 XtraBackup 不適用於 Windows。有些人使用技巧在Windows 上的 Docker 容器

    然後以正常方式將 XtraBackup 還原到您的新計算機,並將其配置為來源實例的副本。請參閱 https://docs.percona.com/percona-xtrabackup/8.0 /howtos/setting_up_replication.html

    #將新實例設為副本,您可以讓它根據設定副本時來源實例上發生的最新變更進行更新。

    然後在某個時刻您決定切換到新實例。然後,將來源實例設定為唯讀模式,以防止客戶端應用程式進行任何新的變更。讓副本跟上最後的最終更改(如果副本已經跟上更改,則這只需要一秒鐘)。現在,您可以變更客戶端應用程式以使用副本而不是先前的來源。然後使用 RESET SLAVE 取消新實例上的複製配置,因為您最不希望發生的事情是在先前的來源上發生任何更多變更並複製到新實例。

    如果您嘗試此過程,我建議您在測試實例(而不是生產實例)上進行測試,直到您熟悉這些工具為止。

    P.S.:除了不支援Windows之外,我不知道目前版本的XtraBackup是否可以與MySQL 5.5一起使用。該版本於 2010 年發布,並於 2018 年終止。因此,我認為您需要研究哪個版本的 XtraBackup 仍然可以讀取 MySQL 5.5 實例。您可能必須使用舊版的 XtraBackup。

    回覆
    0
  • 取消回覆