從站無法在 MariaDB 10 中複製
我無法啟用基於行的複制。我正在嘗試在執行的兩個節點之間設置主從複製。
注意事項
- 伺服器版本 10.0.23-MariaDB-log
- 協議版本 10
- UNIX 套接字 /var/lib/mysql/mysql.sock。
我遵循的場景是這樣的:
- 關閉 prod (mc1),進行冷備份並在 slave (mc2) 上恢復。
- 上主跑
show master status
;prodarchivedlogs-bin.000001 和 pos 為 582240- 在slave中設置這些資訊。
- 啟動從站,它開始拋出錯誤消息:
160812 3:31:50
$$ ERROR $$從屬 SQL:無法在表 radius1.radacct 上執行 Update_rows_v1 事件;在 ‘radacct’ 中找不到記錄,Error_code: 1032; 處理程序錯誤 HA_ERR_KEY_NOT_FOUND;事件的主日誌 prodarchivedlogs-bin.000001,end_log_pos 587695,Gtid 0-1-79,內部 MariaDB 錯誤程式碼:1032 160812 3:17:18
$$ Warning $$從站:在“radacct”中找不到記錄錯誤程式碼:1032 160812 3:17:18
$$ ERROR $$執行查詢時出錯,從屬 SQL 執行緒中止。修復問題,用“SLAVE START”重啟slave SQL執行緒。我們停在日誌 ‘prodarchivedlogs-bin.000001’ 位置 587072
我已經根據我的知識嘗試了所有方法,但它只是不起作用。我嘗試使用
mysqlbinlog
工具提取到文件然後嘗試插入,即使它失敗了。產品
my.cnf
如下symbolic-links=0 innodb_buffer_pool_size=10G innodb_data_home_dir= /var/lib/mysql/data2 innodb_data_file_path=ibdata1:10M:autoextend innodb_log_group_home_dir = /var/lib/mysql/redologs innodb_log_file_size = 256M innodb_buffer_pool_size = 10000M innodb_flush_method = O_DIRECT thread_stack = 256K max_connections=100000 expire_logs_days = 5 max_binlog_size = 100M log-bin=/backup/archivedlogs/prodarchivedlogs-bin binlog_format=row server-id=1
從機
my.cnf
如下skip-name-resolve skip-slave-start datadir=/var/lib/mysql/data1 socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 innodb_buffer_pool_size=10G innodb_data_home_dir= /var/lib/mysql/data2 innodb_data_file_path=ibdata1:10M:autoextend innodb_log_group_home_dir = /var/lib/mysql/redologs innodb_log_file_size = 256M innodb_buffer_pool_size = 10000M innodb_flush_method = O_DIRECT thread_stack = 256K max_connections=100000 expire_logs_days = 5 max_binlog_size = 100M log-bin=/backup/archivedlogs/prodarchivedlogs-bin binlog_format=row server-id=2
更多詳細資訊
主產品機器具有 40 GB RAM 和 16 核 CPU。
我遵循以下過程:
- 創建了代表使用者並授予了訪問權限。
- 關機產品。
- scp’ied 文件從 prod 到從機。
- 提出了主實例。
- 執行命令
show master status\G;
。記下了必應日誌和位置。- 啟動了從屬實例
- 使用 bin 日誌文件和位置配置從配置文件
- 執行 start slave 命令。然後執行命令
show slave status\G;
,我開始看到錯誤消息
HA_ERR_KEY_NOT_FOUND.
還:
- 試圖
mysqlbinlog
在 bin 日誌上執行查詢。報導稱,該文件正在被使用。- 執行命令刷新日誌;仍然沒有結果。
嘗試所有方法來解決這個問題。
任何幫助將不勝感激。
max_connections=100000
——不合理,危險。對於同時連接的數量來說,即使是 1000 也可能是不必要的高。10G 用於緩衝池——我假設您至少有 15GB 的 RAM?
聽起來兩台伺服器上的數據,至少對於 來說
redacct
,是不一致的。你最初是如何填充奴隸的?
您應該編輯原始問題以添加資訊,而不是自己回复。
但是,如果這些確實是您遵循的步驟:
brought up master instance. ran the command show master status\G;. took note of bing log and the postion.
…請注意,您應該以相反的順序進行操作。從跑步大師那裡獲取座標是沒有意義的,這些座標對你沒有用。在重新啟動主機之前記下座標:這些座標描述了初始從屬狀態的狀態(您 scp 到從屬的文件)。