我需要從主機到從機進行工作的mysql複製。 (已經嘗試過)製作新的MYSQL複製
數據庫非常大(超過100GB),並且需要幾個小時才能爲新的從站做好準備。
數據庫有MyIsam和innoDB引擎,並且都正在編寫 我認爲我唯一的選擇是將數據文件從主服務器複製到新的從服務器上? (或者創建一個數據庫轉儲,我將在後面的第二回合主題中提到)
在此之前,我必須運行所有使用數據庫的服務,併爲表寫入鎖定數據,或者我應該關閉整個數據庫?
將數據目錄同步到新的複製服務器後,我啓動它,並且帶有表的數據庫在那裏。我得到了改變bin.log到007324和位置驅除掉0
錯誤1第一個錯誤:
1402 13 4時52分07秒[錯誤]知道了致命錯誤1236:「找不到第一個日誌當從二進制日誌讀取數據時,從主設備讀取二進制日誌索引文件中的文件名' 140213 4:52:07 [注意]從設備I/O線程退出,讀取日誌'bin-log.007323',位置46774422
之後,我從數據庫中得到了新的問題,這個錯誤從每個表中都出來了。
錯誤2:
錯誤 '文件不正確的信息:' 在查詢./database/table.frm'。默認數據庫:'數據庫'。
似乎出了點問題。
第二輪!
在這個場景之後,我開始認爲這可以在沒有長時間服務的情況下完成。
主數據庫已被配置,並且對另一個從屬設備正常工作。
所以我做了一些谷歌搜索,這就是我想出的。
製作讀鎖,以表:
FLUSH TABLES WITH READ LOCK;
以轉儲:
mysqldump --skip-lock-tables --single-transaction --flush-logs --master-data=2 -A > dbdump.sql
包裝和移動: gzip的(pigz)的所述DBDUMP和移動它之後到從服務器找到MASTER_LOG_FILE和轉儲中的MASTER_LOG_POS。
之後,我不認爲我想導入dbdump.sql,因爲它超過100GB和 將需要時間。所以我認爲SOURCE可以作爲選擇。
在從服務器:
CREATE DATABASE dbdump;
USE dbdump;
SOURCE dbdump.db;
CHANGE MASTER TO MASTER_HOST='x.x.x.x',MASTER_USER='replication',MASTER_PASSWORD='slavepass',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=X;
start slave;
SHOW SLAVE STATUS \G
我沒有測試過這個呢,我是對的東西?
--bp