程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> InnoDB引擎數據庫主從復制同步新的分享

InnoDB引擎數據庫主從復制同步新的分享

編輯:MySQL綜合教程

InnoDB引擎數據庫主從復制同步新的分享。本站提示廣大學習愛好者:(InnoDB引擎數據庫主從復制同步新的分享)文章只能為提供參考,不一定能成為您想要的結果。以下是InnoDB引擎數據庫主從復制同步新的分享正文


近期將公司的MySQL架構進級了,由本來的一主多從換成了DRBD+Heartbeat雙主多從,正好手上有一個電子商務網站新項目也要上線了,用的是DRBD+Heartbeat雙主一從,因為此進程照樣有別於之前的MyISAM引擎的,所以這裡也將其心得歸結總結了一下:
1)MySQL的replication進程是一個異步同步的進程,並不是完整的主從同步,所以同步的進程中是有延遲的,假如做了讀寫分別的營業的話,建議也要監控此延遲時光;
2)MySQL的master與slave機械記得server-id要堅持紛歧致,假如一樣的話,replication進程中會湧現以下報錯:
Fatal error: The slave I/O thread stops because master and slavehave equal MySQL server ids; these ids must be different for replication to work(or the --replicate-same-server-id option must be used on slave but this doesnot always make sense; please check the manual before using it).
這個成績很利益理,行將slave機的server-id修正成跟master機械紛歧致便可。
3)我之前的一個誤區就是,slave機械是用本身的二進制日記來完成replication進程的,其實不是如許的,依據復制的任務道理:slave辦事器是copy主辦事器的二進制日記到本身的中繼日記,即relay-log日記(即centos3-relay-bin.000002這類名字的)中,然後再把更新運用用到本身的數據庫上,所以slave機械是不須要開啟二進制日記的,如許進程一樣會勝利的;除非是預備做主主架構,這才須要slave機械開啟二進制日記,這個成績一向在導著我,我以一向認為slave機械搭建replication情況時是必定要開啟二進制的,
4)在master機械上受權時,盡可能只給某一個或某幾個固定機械權限,讓它們只要replication slav,replication client權限,盡可能不要給grant權限;別的,固然數據庫我們普通是經由過程內網操作,但越是在在內網對MySQL數據庫停止受權操作,越是要留意平安;
5)replication搭建進程依照正常流程走的話,普通很輕易實行勝利,假如失足的話,多檢討下收集情況、權限成績,普通來講全部搭建進程應當照樣會比擬順遂的。
在數據庫設計早期,我曾經將此電子商務的數據庫引擎界說為InnoDB,除數據庫華夏有的體系表以外,其它表全體由MyISAM轉成了InnoDB,緣由有二:
1)電子商務營業會觸及到生意業務付款,在這類根本OLTP的運用中,InnoDB應當作為焦點運用表的首選存儲引擎;
2)DRBD體系重啟時的進程會比擬遲緩,會頻仍的讀表,假如表引擎為MyISAM的話極有能夠湧現破壞情形,為了形成不用要的成績,我將數據庫的表引擎由MyISAM均轉成了InnoDB引擎的表。
DRBD+Heartbeat+MySQL參考之前的任務文檔,搭建的比擬順遂,就是在搭建replication情況時碰到了1062報錯,具體進程以下:
早期參考MySQL手冊操作,取master機械的快照備份,用的是--single-transaction選項,然後同步進程頻仍1062報錯,報錯日記以下:
Last_SQL_Error: Error 'Duplicate entry 'd36ad91bff36308de540bbd9ae6f4279' for key 'PRIMARY'' on query. Default database: 'myproject'. Query: 'INSERT INTO `lee_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('d36ad91bff36308de540bbd9ae6f4279', '180.153.201.218', 'Mozilla/4.0', 1353394206, '')'
後來轉變思緒,用--master-data選項來取主master快照備份,敕令以下所示:
mysqldump -uroot --quick --flush-logs --master-data=1 -p myproject > myproject.sql
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved