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

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

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

    敬的世界

    常用鏈接

    統計

    最新評論

    mysql cluster雙機集群

    一、介紹

    如何安裝配置基于2臺服務器的MySQL集群。并且實現任意一臺服務器出現問題或宕機時MySql集群依然能夠繼續運行。加下后續的(keepalived+lvs+mysql cluster文檔),可以實現Mysql雙機的高可用及負載均衡。
    安裝環境及軟件包:
    vmware workstation 5.5.3
    mysql-5.2.3-falcon-alpha.tar.gz
    gentoo 2006.1
    Server1: 192.168.1.111
    Server2:?? 192.168.1.110


    二、在Server1和Server2上安裝MySQL
    以下步驟需要在Server1和Server2上各做一次
    # mv mysql-5.2.3-falcon-alpha.tar.gz?? /tmp/package
    # cd /tmp/package
    # groupadd mysql
    # useradd -g mysql mysql
    # tar -zxvf mysql-5.2.3-falcon-alpha.tar.gz
    # rm -f mysql-5.2.3-falcon-alpha.tar.gz
    # mv mysql-5.2.3-falcon-alpha mysql
    # cd mysql
    # ./configure --prefix=/usr --with-extra-charsets=complex --with-plugin-ndbcluster --with-plugin-partition --with-plugin-innobase
    # make && make install
    #ln -s /usr/libexec/ndbd /usr/bin
    #ln -s /usr/libexec/ndb_mgmd /usr/bin
    #ln -s /usr/libexec/ndb_cpcd /usr/bin
    #ln -s /usr/libexec/mysqld /usr/bin
    #ln -s /usr/libexec/mysqlmanager /usr/bin
    #mysql_install_db --user=mysql

    三、安裝并配置節點
    以下步驟需要在Server1和Server2上各做一次
    1.配置管理節點配置文件:
    # mkdir /var/lib/mysql-cluster
    # cd /var/lib/mysql-cluster
    # vi config.ini
    在config.ini中添加如下內容:
    [ndbd default]
    NoOfReplicas= 2
    MaxNoOfConcurrentOperations= 10000
    DataMemory= 80M
    IndexMemory= 24M
    TimeBetweenWatchDogCheck= 30000
    DataDir= /var/lib/mysql-cluster
    MaxNoOfOrderedIndexes= 512
    StartPartialTimeout=100
    StartPartitionedTimeout=100
    ArbitrationTimeout=5000
    TransactionDeadlockDetectionTimeout=5000
    HeartbeatIntervalDbDb=5000
    StopOnError=0

    [ndb_mgmd default]
    DataDir= /var/lib/mysql-cluster
    [ndb_mgmd]
    Id=1
    HostName= 192.168.1.111
    [ndb_mgmd]
    Id=2
    HostName= 192.168.1.110
    [ndbd]
    Id= 3
    HostName= 192.168.1.111
    [ndbd]
    Id= 4
    HostName= 192.168.1.110
    [mysqld]
    ArbitrationRank=2 (非常重要,全靠有它,才可以形成仲裁競爭,從而當另一個機子當了時,此機還可以有知道partion完整的節點)
    [mysqld]
    ArbitrationRank=2
    [tcp default]
    PortNumber= 63132

    2.配置通用my.cnf文件,mysqld及ndbd,ndb_mgmd均使用此文件.
    # vi /etc/my.cnf
    在my.cnf中添加如下內容:
    [mysqld]
    default-storage-engine=ndbcluster?? 避免在sql語句中還要加入ENGINE=NDBCLUSTER。
    ndbcluster
    ndb-connectstring=192.168.1.111,192.168.1.110
    [ndbd]
    connect-string=192.168.1.111,192.168.1.110
    [ndb_mgm]
    connect-string=192.168.1.111,192.168.1.110
    [ndb_mgmd]
    config-file=/var/lib/mysql-cluster/config.ini
    [mysql_cluster]
    ndb-connectstring= 192.168.1.111,192.168.1.110

    保存退出后,啟動管理節點Server1為:
    # ndb_mgmd --ndb_nodeid=1
    啟動管理節點Server2為:
    # ndb_mgmd --ndb_nodeid=2

    注:在啟動時有一個警告提示
    Cluster configuration warning:
    ?? arbitrator with id 1 and db node with id 3 on same host 192.168.1.111
    ?? arbitrator with id 2 and db node with id 4 on same host 192.168.1.110
    ?? Running arbitrator on the same host as a database node may
    ?? cause complete cluster shutdown in case of host failure.
    說節點1和3,2和4的arbitrator一樣,可能引起整個集群失敗。(可以不用放在心上)

    四、初始化集群
    在Server1中
    # ndbd --nodeid=3 --initial
    在Server2中
    # ndbd --nodeid=4 --iniitial
    注:只有在第一次啟動ndbd時或者對config.ini進行改動后才需要使用--initial參數!

    五、檢查工作狀態
    在任意一臺機子上啟動管理終端:
    # ndb_mgm
    鍵入show命令查看當前工作狀態:(下面是一個狀態輸出示例)
    -- NDB Cluster -- Management Client --
    ndb_mgm> show
    Connected to Management Server at: 192.168.1.111:1186
    Cluster Configuration
    ---------------------
    [ndbd(NDB)]????? 2 node(s)
    id=3???? @192.168.1.111?? (Version: 5.2.3, Nodegroup: 0, Master)
    id=4???? @192.168.1.110?? (Version: 5.2.3, Nodegroup: 0)
    [ndb_mgmd(MGM)] 2 node(s)
    id=1???? @192.168.1.111?? (Version: 5.2.3)
    id=2???? @192.168.1.110?? (Version: 5.2.3)
    [mysqld(API)]??? 2 node(s)
    id=5 (not connected, accepting connect from any host)
    id=6 (not connected, accepting connect from any host)
    ndb_mgm>

    如果上面沒有問題,現在開始加入mysqld(API):
    注意,這篇文檔對于MySQL并沒有設置root密碼,推薦你自己設置Server1和Server2的MySQL root密碼。
    在Server1 中:
    #mysqld_safe --ndb_nodeid=5 --user=mysql &
    在Server2 中:
    #mysqld_safe --ndb_nodeid=6 --user=mysql &
    # ndb_mgm -e show
    信息如下:
    Connected to Management Server at: 192.168.1.111:1186
    Cluster Configuration
    ---------------------
    [ndbd(NDB)]????? 2 node(s)
    id=3???? @192.168.1.111?? (Version: 5.2.3, Nodegroup: 0, Master)
    id=4???? @192.168.1.110?? (Version: 5.2.3, Nodegroup: 0)
    [ndb_mgmd(MGM)] 2 node(s)
    id=1???? @192.168.1.111?? (Version: 5.2.3)
    id=2???? @192.168.1.110?? (Version: 5.2.3)
    [mysqld(API)]??? 4 node(s)
    id=5???? @192.168.1.111?? (Version: 5.2.3)
    id=6???? @192.168.1.110?? (Version: 5.2.3)

    ok,可以測試了:
    在Server1 中
    # /usr/local/mysql/bin/mysql -u root -p
    >create database aa;
    > use aa;
    > CREATE TABLE ctest (i INT) ;
    > INSERT INTO ctest () VALUES (1);
    > SELECT * FROM ctest;
    應該可以看到1 row returned信息(返回數值1)。
    如果上述正常,則換到Server2,觀察效果。如果成功,則在Server2中執行INSERT再換回到Server1觀察是否工作正常。
    如果都沒有問題,那么恭喜成功!

    六、破壞性測試
    將Server1或Server2的網線拔掉(即ifconfig eth0 down),觀察另外一臺集群服務器工作是否正常(可以使用SELECT查詢測試)。測試完畢后,重新插入網線即可。
    注意:在未對集群做任何讀寫操作前,此測試結果無效,因為,集群初始后只在/var/lib/mysql-cluster/下建了幾個空目錄,還沒有正常協同工作,會出現整個所有存儲(ndbd)節點關閉.
    也可以這樣測試:在Server1或Server2上:
    # ps aux | grep ndbd
    將會看到所有ndbd進程信息:
    root?????? 5578?? 0.0?? 0.3?? 6220 1964 ????????? S???? 03:14??? 0:00 ndbd
    root?????? 5579?? 0.0 20.4 492072 102828 ?????? R???? 03:14??? 0:04 ndbd
    root????? 23532?? 0.0?? 0.1?? 3680?? 684 pts/1???? S???? 07:59??? 0:00 grep ndbd
    然后殺掉一個ndbd進程以達到破壞MySQL集群服務器的目的:
    # kill -9 5578 5579
    之后在另一臺集群服務器上使用SELECT查詢測試。并且在管理節點服務器的管理終端中執行show命令會看到被破壞的那臺服務器的狀態。
    測試完成后,只需要重新啟動被破壞服務器的ndbd進程即可:
    # ndbd --ndb_nodeid=此存儲節點的id
    注意!前面說過了,此時是不用加--inital參數的!
    至此,MySQL雙機集群就配置完成了!


    posted on 2008-10-17 16:11 picture talk 閱讀(153) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久A级毛片免费观看| 一级人做人爰a全过程免费视频 | 午夜免费啪视频在线观看| 亚洲免费精彩视频在线观看| 亚洲欧洲国产精品香蕉网| 亚洲国产日韩一区高清在线| 亚洲伊人久久大香线蕉啊| 美女无遮挡免费视频网站| 久久精品成人免费看| 男女啪啪永久免费观看网站| 久久精品国产亚洲Aⅴ蜜臀色欲| 久久亚洲AV无码精品色午夜| 粉色视频成年免费人15次| 嫩草在线视频www免费观看| 国产精品成人无码免费| 亚洲AV成人片色在线观看高潮| 亚洲午夜理论片在线观看| 一道本不卡免费视频| 中文字幕专区在线亚洲| 成人网站免费看黄A站视频| 国产精品自在自线免费观看| 免费人成又黄又爽的视频在线电影| 91老湿机福利免费体验| 亚洲高清中文字幕免费| 无码少妇精品一区二区免费动态| 亚洲一区二区影院| 国产午夜成人免费看片无遮挡 | 成全视频在线观看免费高清动漫视频下载 | 亚洲午夜精品在线| 国产特级淫片免费看| 成人在线免费看片| 亚洲精品乱码久久久久久按摩| 亚洲人成色4444在线观看| 99久久精品国产免费| 亚洲伊人色欲综合网| 亚洲美女视频免费| 亚洲一区二区三区四区在线观看 | 久久久久久久久免费看无码| 亚洲AV无码一区东京热久久| 中国好声音第二季免费播放| 又大又黄又粗又爽的免费视频|