micromax 发表于 2018-9-30 11:22:12

配置 MySQL cluster

  服务器使用情况:
  Node
  IP Address
  Management (MGMD) node
  192.168.0.10
  MySQL server (SQL) node
  192.168.0.20
  Data (NDBD) node "A"
  192.168.0.30
  Data (NDBD) node "B"
  192.168.0.40
  1,安装Management、Sql node、 Data node 重复以下步骤:
  # tar -zxvf mysql-cluster-gpl-7.1.3-linux-i686-glibc23.tar.gz
  # mv mysql-cluster-gpl-7.1.3-linux-i686-glibc23 mysql
  # groupadd mysql
  # useradd -g mysql mysql
  # chown -R mysql.mysql mysql
  # /usr/local/mysql/scripts/mysql_install_db--user=mysql
  # cp support-files/mysql.server /etc/rc.d/init.d/
  # chmod +x /etc/rc.d/init.d/mysql.server
  # chkconfig --add mysql.server
  2,配置Management节点:
  # mkdir /var/lib/mysql-cluster
  # vi /var/lib/mysql-cluster/config.ini
  
  NoOfReplicas=2    # Number of replicas
  DataMemory=80M    # How much memory to allocate for data storage
  IndexMemory=18M   # How much memory to allocate for index storage
  # For DataMemory and IndexMemory, we have used the
  # default values. Since the "world" database takes up
  # only about 500KB, this should be more than enough for
  # this example Cluster setup.
  # TCP/IP options:
  
  portnumber=2202   # This the default; however, you can use any port that is free
  # for all the hosts in the cluster
  # Note: It is recommended that you do not specify the port
  # number at all and allow the default value to be used instead
  # Management process options:
  
  hostname=192.168.0.10         # Hostname or IP address of management node
  datadir=/var/lib/mysql-cluster# Directory for management node log files
  # Options for data node "A":
  
  # (one section per data node)
  hostname=192.168.0.30         # Hostname or IP address
  datadir=/usr/local/mysql/data   # Directory for this data node's data files
  # Options for data node "B":
  
  hostname=192.168.0.40         # Hostname or IP address
  datadir=/usr/local/mysql/data   # Directory for this data node's data files
  # SQL node options:
  
  hostname=192.168.0.20         # Hostname or IP address
  # (additional mysqld connections can be
  # specified for this node for various
  # purposes such as running ndb_restore)
  # cp bin/ndb_mgm* /usr/local/bin
  3,配置MySQL server (SQL) node:
  创建/etc/my.cnf并添加下面的内容
  #ptions for mysqld process:
  
  ndbcluster                      # run NDB storage engine
  ndb-connectstring=192.168.0.10# location of management server
  # Options for ndbd process:
  
  ndb-connectstring=192.168.0.10# location of management server
  4,配置 Data (NDBD) node "A":
  创建/etc/my.cnf文件,并添加下面的内容
  #ptions for mysqld process:
  
  ndbcluster                      # run NDB storage engine
  ndb-connectstring=192.168.0.10# location of management server
  # Options for ndbd process:
  
  ndb-connectstring=192.168.0.10# location of management server
  5,配置 Data (NDBD) node "B":
  创建/etc/my.cnf文件,并添加下面的内容
  #ptions for mysqld process:
  
  ndbcluster                      # run NDB storage engine
  ndb-connectstring=192.168.0.10# location of management server
  # Options for ndbd process:
  
  ndb-connectstring=192.168.0.10# location of management server

  6,启动Management节点:
  # ndb_mgmd -f /var/lib/mysql-cluster/config.ini
  2010-05-05 13:20:19 INFO   -- NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.3
  2010-05-05 13:20:19 INFO   -- Loaded config from '/usr/local/mysql/mysql-cluster/ndb_1_config.bin.1'
  7,起动Data (NDBD) node "A"及 Data (NDBD) node "B":
  # /usr/local/mysql/bin/ndbd
  2010-05-05 13:20:30 INFO   -- Configuration fetched from '192.168.0.10:1186', generation: 1
  8,起动MySQL server (SQL) node
  # /etc/init.d/mysql.server start
  9,如果一切顺利,执行ndb_mgm命令之后,其输出如下:
  # ndb_mgm
  -- NDB Cluster -- Management Client --
  ndb_mgm> show
  Connected to Management Server at: localhost:1186
  Cluster Configuration
  ---------------------
     2 node(s)
  id=2    @192.168.0.30(mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)
  id=3    @192.168.0.40(mysql-5.1.44 ndb-7.1.3, Nodegroup: 0)
   1 node(s)
  id=1    @192.168.0.10(mysql-5.1.44 ndb-7.1.3)
     1 node(s)
  id=4    @192.168.0.20(mysql-5.1.44 ndb-7.1.3)
  测试单点故障:
  1,模拟NDB节点崩溃:
  Data (NDBD) node "A"
  # netstat -tunlp
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
  tcp      0      0 127.0.0.1:2208            0.0.0.0:*                   LISTEN      4456/hpiod
  tcp      0      0 0.0.0.0:111               0.0.0.0:*                   LISTEN      4240/portmap
  tcp      0      0 0.0.0.0:627               0.0.0.0:*                   LISTEN      4261/rpc.statd
  tcp      0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      4487/cupsd
  tcp      0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4507/sendmail: acce
  tcp      0      0 192.168.0.30:2202         0.0.0.0:*                   LISTEN      6205/ndbd
  tcp      0      0 127.0.0.1:2207            0.0.0.0:*                   LISTEN      4461/python
  tcp      0      0 :::3306                     :::*                        LISTEN      11766/mysqld
  tcp      0      0 :::22                     :::*                        LISTEN      4476/sshd
  udp      0      0 0.0.0.0:32768               0.0.0.0:*                               4617/avahi-daemon:
  udp      0      0 0.0.0.0:5353                0.0.0.0:*                               4617/avahi-daemon:
  udp      0      0 0.0.0.0:621               0.0.0.0:*                               4261/rpc.statd
  udp      0      0 0.0.0.0:111               0.0.0.0:*                               4240/portmap
  udp      0      0 0.0.0.0:624               0.0.0.0:*                               4261/rpc.statd
  udp      0      0 0.0.0.0:631               0.0.0.0:*                               4487/cupsd
  udp      0      0 :::32769                  :::*                                    4617/avahi-daemon:
  udp      0      0 :::5353                     :::*                                    4617/avahi-daemon:
  # kill -9 6205
  # netstat -tunlp
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
  tcp      0      0 127.0.0.1:2208            0.0.0.0:*                   LISTEN      4456/hpiod
  tcp      0      0 0.0.0.0:111               0.0.0.0:*                   LISTEN      4240/portmap
  tcp      0      0 0.0.0.0:627               0.0.0.0:*                   LISTEN      4261/rpc.statd
  tcp      0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      4487/cupsd
  tcp      0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4507/sendmail: acce
  tcp      0      0 127.0.0.1:2207            0.0.0.0:*                   LISTEN      4461/python
  tcp      0      0 :::3306                     :::*                        LISTEN      11766/mysqld
  tcp      0      0 :::22                     :::*                        LISTEN      4476/sshd
  udp      0      0 0.0.0.0:32768               0.0.0.0:*                               4617/avahi-daemon:
  udp      0      0 0.0.0.0:5353                0.0.0.0:*                               4617/avahi-daemon:
  udp      0      0 0.0.0.0:621               0.0.0.0:*                               4261/rpc.statd
  udp      0      0 0.0.0.0:111               0.0.0.0:*                               4240/portmap
  udp      0      0 0.0.0.0:624               0.0.0.0:*                               4261/rpc.statd
  udp      0      0 0.0.0.0:631               0.0.0.0:*                               4487/cupsd
  udp      0      0 :::32769                  :::*                                    4617/avahi-daemon:
  udp      0      0 :::5353                     :::*                                    4617/avahi-daemon:
  # kill -9
  mysql> use test;
  Reading table information for completion of table and column names
  You can turn off this feature to get a quicker startup with -A
  Database changed
  mysql> select * from youshengtao;
  +------+
  | a    |
  +------+
  |400 |
  |300 |
  |200 |
  |500 |
  +------+
  4 rows in set (0.60 sec)
  2, 在 MySQL server (SQL) node执行查询,可见down掉其中的一台data node,对cluster没有任何影响
  mysql> use test;
  Reading table information for completion of table and column names
  You can turn off this feature to get a quicker startup with -A
  Database changed
  mysql> select * from youshengtao;
  +------+
  | a    |
  +------+
  |400 |
  |300 |
  |200 |
  |500 |
  +------+
  4 rows in set (0.60 sec)
  3,模拟NDB节点崩溃:
  Data (NDBD) node "B"
  # netstat -tunlp
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
  tcp      0      0 127.0.0.1:2208            0.0.0.0:*                   LISTEN      4453/hpiod
  tcp      0      0 0.0.0.0:622               0.0.0.0:*                   LISTEN      4256/rpc.statd
  tcp      0      0 0.0.0.0:111               0.0.0.0:*                   LISTEN      4235/portmap
  tcp      0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      4484/cupsd
  tcp      0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4504/sendmail: acce
  tcp      0      0 192.168.0.40:2202         0.0.0.0:*                   LISTEN      6105/ndbd
  tcp      0      0 127.0.0.1:2207            0.0.0.0:*                   LISTEN      4458/python
  tcp      0      0 :::3306                     :::*                        LISTEN      11940/mysqld
  tcp      0      0 :::22                     :::*                        LISTEN      4473/sshd
  udp      0      0 0.0.0.0:32768               0.0.0.0:*                               4614/avahi-daemon:
  udp      0      0 0.0.0.0:616               0.0.0.0:*                               4256/rpc.statd
  udp      0      0 0.0.0.0:5353                0.0.0.0:*                               4614/avahi-daemon:
  udp      0      0 0.0.0.0:619               0.0.0.0:*                               4256/rpc.statd
  udp      0      0 0.0.0.0:111               0.0.0.0:*                               4235/portmap
  udp      0      0 0.0.0.0:631               0.0.0.0:*                               4484/cupsd
  udp      0      0 :::32769                  :::*                                    4614/avahi-daemon:
  udp      0      0 :::5353                     :::*                                    4614/avahi-daemon:
  # kill -9 6105
  # netstat -tunlp
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
  tcp      0      0 127.0.0.1:2208            0.0.0.0:*                   LISTEN      4453/hpiod
  tcp      0      0 0.0.0.0:622               0.0.0.0:*                   LISTEN      4256/rpc.statd
  tcp      0      0 0.0.0.0:111               0.0.0.0:*                   LISTEN      4235/portmap
  tcp      0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      4484/cupsd
  tcp      0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4504/sendmail: acce
  tcp      0      0 127.0.0.1:2207            0.0.0.0:*                   LISTEN      4458/python
  tcp      0      0 :::3306                     :::*                        LISTEN      11940/mysqld
  tcp      0      0 :::22                     :::*                        LISTEN      4473/sshd
  udp      0      0 0.0.0.0:32768               0.0.0.0:*                               4614/avahi-daemon:
  udp      0      0 0.0.0.0:616               0.0.0.0:*                               4256/rpc.statd
  udp      0      0 0.0.0.0:5353                0.0.0.0:*                               4614/avahi-daemon:
  udp      0      0 0.0.0.0:619               0.0.0.0:*                               4256/rpc.statd
  udp      0      0 0.0.0.0:111               0.0.0.0:*                               4235/portmap
  udp      0      0 0.0.0.0:631               0.0.0.0:*                               4484/cupsd
  udp      0      0 :::32769                  :::*                                    4614/avahi-daemon:
  udp      0      0 :::5353                     :::*                                    4614/avahi-daemon:
  #
  4,在 MySQL server (SQL) node执行查询,data node节点全down掉之后无法进行查询了:
  mysql> select * from youshengtao;
  ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER
  mysql> select * from youshengtao;
  ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER
  mysql> show tables;
  +----------------+
  | Tables_in_test |
  +----------------+
  | t1             |
  | youshengtao    |
  +----------------+
  2 rows in set (0.00 sec)
  mysql> desc youshengtao;
  ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER
  mysql> desc t1;
  ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER


页: [1]
查看完整版本: 配置 MySQL cluster