簡體   English   中英

將數據庫還原到新集群

[英]Restoring database to new cluster

我們正在使用Percona 5.7.16-10服務器。 我想用XtraDB集群擴展當前的解決方案。 因此,與此同時,我創建了其他機器並啟動了集群(在5.7.17-11-57 Percona XtraDB集群版本上運行),並且在那里進行了一些測試(一切似乎都正常工作)。 現在,我想從正在運行的服務器中轉儲當前數據庫並將其插入集群。 停止群集沒有問題(因為它是用於測試的)。 但是當我像以前那樣創建mysqldump時,由於pcx_strict_mode(無法在此處查看信息),所以無法將其插入群集中-強制執行Percona-XtraDB-Cluster prohibits use of LOCK TABLE/FLUSH TABLE <table> WITH READ LOCK with pxc_strict_mode = ENFORCING因為mysqldump創建的腳本包含禁止的表鎖。 因此,我測試了更多選項,例如MASTER,該選項不檢查此規則,但沒有幫助,因為轉儲中的插入查詢卡住了,什么也沒發生。

是否有任何mysqldump選項來避免表鎖定查詢,還是我必須通過XtraBackup以某種方式還原它並將XtraBackup用於當前正在運行的服務器?

我在這里閱讀了幾個主題,但沒有一個人遇到同樣的問題。 每個人都在解決如何從某些失敗而不是從零開始恢復群集的問題。

我對mysqldump的任何建議或將舊數據庫“插入”集群的正確方法感到高興。

如果您可以關閉當前計算機,並且從頭開始構建集群,那么我認為這些(在mysqldump )將避免使用strict_mode,並且可能還會引起其他一些麻煩:

--skip_add_locks --skip-lock-tables

而且不要使用

--single-transaction --lock-all-tables

在集群中的第一個節點上加載數據, 然后添加其他節點,讓它們使用SST加載自身,這也可能是明智的。

如果需要使當前服務器保持活動狀態,那么我們需要討論使其成為主服務器,而新集群的一個節點成為從服務器。 再加上XtraBackup可能更適合。 但是現在,鎖和單筆交易將是必需的。 因此,由於正在構建群集且尚未啟用群集,因此將strict_mode設置為DISABLED似乎是正確的。

(注意:我沒有執行您的任務的經驗;如果其他人提供了更令人信服的答案,請與他們一起去。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM