<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级毛片免费**视频| 亚洲人成在线播放| 最近高清中文字幕免费| 亚洲日本在线观看| 未满十八18禁止免费无码网站| 精品亚洲综合久久中文字幕| kk4kk免费视频毛片| 亚洲欧洲久久久精品| 国产亚洲综合精品一区二区三区| 成人免费视频小说| 亚洲精品国产摄像头| 免费特级黄毛片在线成人观看| 亚洲成AV人影片在线观看| 成人国产mv免费视频| 污视频网站在线观看免费| 亚洲乱码中文字幕手机在线| 一个人看的www免费在线视频| 国产精品亚洲w码日韩中文| 国产福利免费视频| 亚洲AV成人一区二区三区AV| 久久久久久AV无码免费网站下载| 久久精品国产亚洲av四虎| 3344永久在线观看视频免费首页| 99久久亚洲综合精品成人网| 日韩亚洲国产高清免费视频| 亚洲精品美女网站| 四虎永久免费影院| 天天看片天天爽_免费播放| 亚洲性无码AV中文字幕| 四虎永久免费影院在线| 99re6在线精品免费观看| 夜夜亚洲天天久久| 毛片免费观看网站| 一区在线免费观看| 亚洲黄色免费观看| 日韩电影免费在线观看视频 | 亚洲一级在线观看|