<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    心有多大舞臺便有多大

    Embrace changes, pursue excellence, share niceness.

    [轉]使用復制來提升MySQL的高可用性和處理能力

    lhwork 發表于 2007-1-19 9:30:08

    昨晚看了一晚上的MySQL文檔,主要是關于MySQL的復制方面的文檔,用的工具是MySQL的幫助文檔+金山詞霸。

    終于比較大概的了解了如何通過復制來提升MySQL數據庫的高可用性和處理能力,不過還沒有經過實際的試驗,但整體的思想是清楚了,下面把思路大概的描述一下,有機會再進行實驗。

    首先在服務器端采用1+N的模型來安裝和配置MySQL數據庫。1就是一個master數據庫,N就是一至多個slave數據庫。master數據庫必須啟用binlog模式,關于這兩種數據庫的配置參見MySQL的文檔。配置完成后就形成了一個1+N的復制集群,當對master進行修改時會自動把修改的數據更新到N個slave數據庫上。但是有一個注意的是,所有的修改操作包括添加、刪除、修改等語句必須作用在master數據庫上,這樣才能使數據可靠的復制到其他slave服務器上。另外,由于slave服務器只用作查詢,因此選用MyISAM的存儲引擎可以提高查詢的速度。

    而在客戶端呢?如何使客戶端程序能均衡的使用這些可用的服務器呢?而且更新操作只能對master進行處理。這個豈不是應用程序對數據庫的操作邏輯非常的復雜?

    其實沒有那么復雜,MySQL為我們提供了接口可以將這些復雜的操作透明化。下面主要介紹采用JDBC的客戶端如何工作在基于復制的集群環境中,其他編程語言請參照mysql的文檔。

    MySQL最新的JDBC驅動程序包中提供了一個驅動類就是 com.mysql.jdbc.ReplicationDriver 。這個驅動類允許在url中設置多個mysql主機地址,例如:

    jdbc:mysql://master1,slave1,slave2/dlog?autoReconnect=true&roundRobinLoadBalance=true

    在上面的url中,有三個主機地址分別是master1,slave1,slave2,其中ReplicationDriver 規定第一個主機是master主機地址,剩下的全部是slave主機。另外有兩個參數必須指定為true,就是autoReconnect和roundRobinLoadBalance。

    使用這個驅動和配置后還不能馬上解決所有的問題,我們還需要對程序做一些小改動。

    我們必須告訴驅動程序,哪些語句的執行是作用在master數據庫,而哪些語句的執行作用在slave數據庫上。

    ReplicationDriver 是通過Connection對象的readOnly屬性來判斷該操作是否為更新操作。因此我們在執行一個sql語句的時候必須調用一下setReadOnly告訴驅動程序當前執行的操作是否是只讀。如果你是使用hibernate操作數據庫的,那可以調用Query.setReadOnly方法。

    以上就是整個思路的大概描述,猜想肯定還有存在一些問題,例如因為數據的復制過程是異步的,也是說有可能執行了某個更新操作,但是查詢的時候查不到的情況出現。當然這些問題只能在實際的過程中進行解決。

    另外關于最新版本的MySQL 5.1有一個集群的功能,不過經過研究發現這個東西簡直就是兒戲,實在搞不懂MySQL怎么會做這么不負責任的設計,因為這個特性要求數據庫是整個load到內存中的,也就是說你的數據有多大,內存就得有多大,怎么說呢? 如果你真的內存足夠大,你去試試吧,反正這種方案已經被我否決了,希望MySQL能改進一下。

    posted on 2008-03-21 19:03 pony 閱讀(577) 評論(0)  編輯  收藏 所屬分類: 轉載的文章

    主站蜘蛛池模板: 天天干在线免费视频| 在线看片免费人成视频久网下载 | 四虎免费影院4hu永久免费| 亚洲中文字幕AV在天堂| 麻豆一区二区免费播放网站| 亚洲一区中文字幕在线观看| 一个人免费观看在线视频www | 亚洲午夜激情视频| 一级毛片试看60分钟免费播放| 亚洲日韩在线中文字幕第一页| 国产黄色片免费看| 亚洲AV无码专区亚洲AV伊甸园| 日本免费久久久久久久网站| 亚洲精品午夜久久久伊人| 曰曰鲁夜夜免费播放视频| 久久亚洲精品专区蓝色区| 日韩精品视频免费网址| 免费看一级毛片在线观看精品视频 | 免费无码A片一区二三区| 亚洲另类无码专区丝袜| 亚洲?v女人的天堂在线观看| 黄桃AV无码免费一区二区三区| 日本亚洲成高清一区二区三区 | 99re6在线视频精品免费下载| 亚洲五月综合网色九月色| 精品久久洲久久久久护士免费 | 大学生高清一级毛片免费| 国产精品亚洲精品爽爽| 国产亚洲美女精品久久久久狼| 亚洲毛片在线免费观看| 亚洲av日韩综合一区二区三区| 久久亚洲色一区二区三区| 亚洲精品视频在线免费| 老妇激情毛片免费| 亚洲av不卡一区二区三区| 精品熟女少妇AV免费观看| a级毛片免费观看网站| www.亚洲成在线| 国产亚洲人成A在线V网站 | 亚洲免费电影网站| 四虎成人精品国产永久免费无码|