<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 精品亚洲国产成AV人片传媒| 亚洲成人动漫在线| 国产成人精品久久亚洲高清不卡 | 亚洲成人黄色网址| 2021在线永久免费视频| 日韩亚洲AV无码一区二区不卡| 在线涩涩免费观看国产精品 | 久久久久久AV无码免费网站 | 一级毛片aa高清免费观看| 亚洲精品国产自在久久| a在线视频免费观看在线视频三区 a毛片成人免费全部播放 | 超pen个人视频国产免费观看| 亚洲国产精品网站在线播放 | 91亚洲国产成人久久精品| 成人免费午夜在线观看| 亚洲日韩一区二区一无码| 国产免费无遮挡精品视频 | 久久久久亚洲AV无码永不| 久久不见久久见免费影院| 黄页免费视频播放在线播放| 久久久久亚洲爆乳少妇无 | 一级毛片免费观看不卡视频| 亚洲av永久综合在线观看尤物| 成人毛片免费在线观看| 麻豆69堂免费视频| 久久久久亚洲AV片无码| 久久WWW免费人成人片| 日韩精品视频在线观看免费| 亚洲AV无码一区二区二三区入口 | 一级免费黄色毛片| 久久综合亚洲色一区二区三区| 久久久久久免费视频| 一级黄色毛片免费看| 77777_亚洲午夜久久多人| 四虎影在线永久免费四虎地址8848aa | 国产美女无遮挡免费视频网站| 免费一看一级毛片人| 久久一本岛在免费线观看2020| 亚洲精品无码成人片久久不卡 | 亚洲综合免费视频| 又粗又硬免费毛片|