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


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


    網站導航:
     
    主站蜘蛛池模板: 一级有奶水毛片免费看| 国产成人精品日本亚洲18图| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲精品久久无码| 成人人免费夜夜视频观看| 亚洲人成网国产最新在线| 最新仑乱免费视频| 亚洲AV无码一区二区一二区| 日本一道在线日本一道高清不卡免费| 亚洲精品无码专区在线| 国产人妖ts在线观看免费视频| 精品一区二区三区无码免费直播| 亚洲成a人片在线观看老师| 免费在线观看自拍性爱视频| 国产成人亚洲综合无码| 两个人看的www高清免费视频| 亚洲人成精品久久久久| 日本免费一区二区三区| 亚洲最新黄色网址| 成人免费淫片在线费观看 | 一级特黄aaa大片免费看| 亚洲中文字幕无码一久久区| 免费成人在线电影| 亚洲av成人一区二区三区| 毛片免费全部播放一级| 无码人妻一区二区三区免费视频 | 免费中文字幕一级毛片| 中文字幕不卡免费高清视频| 亚洲午夜免费视频| 国产精品无码一二区免费| 一区二区三区在线观看免费| 亚洲国产一区在线| 国产精品自在自线免费观看| 光棍天堂免费手机观看在线观看 | 亚洲一区二区三区免费视频| 国产在线观看免费完整版中文版| 中文字幕不卡免费高清视频| 亚洲综合久久一本伊伊区| 亚洲人成色7777在线观看不卡| 国产在线观看免费视频软件| 中文日韩亚洲欧美制服|