一、部署集群基础环境

目标:

本案例要求为MySQL集群准备基础环境,完成以下任务操作:

  • 数据库授权
  • 部署MySQL双主多从结构
  • 配置本机hosts解析记录

方案:

使用4台RHEL 6虚拟机,如下图所示。其中192.168.4.10、192.168.4.11作为MySQL双主服务器,192.168.4.12、192.168.4.13作为主服务器的从服务器。

步骤:

步骤一:准备环境

[root@master1 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.4.10     master1         master1.tarena.com
    192.168.4.11     master2         master2.tarena.com
    192.168.4.12     slave1            slave1.tarena.com
    192.168.4.13     slave2            slave2.tarena.com
    192.168.4.100   master1         master1.tarena.com
    [root@master1 ~]# ping -c 2 master1
    PING master1 (192.168.4.10) 56(84) bytes of data.
    64 bytes from master1 (192.168.4.10): icmp_seq=1 ttl=64 time=0.378 ms
    64 bytes from master1 (192.168.4.10): icmp_seq=2 ttl=64 time=0.396 ms
    --- master1 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 0.378/0.387/0.396/0.009 ms
    [root@master1 ~]#

步骤二:部署数据库主机

1)安装启动数据库(4台数据库主机master1,master2,slave1,slave2执行以下操作)

[root@master1 ~]# tar xvf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar    //解压软件包
    .. ..
    [root@master1 ~]# rpm -Uvh MySQL-*.rpm                                //安装MySQL
    .. ..
    [root@master1 ~]# service mysql start
    Starting MySQL.                                            [确定]

2)初始化配置数据库(4台数据库主机master1,master2,slave1,slave2执行以下操作)

[root@master1 ~]# cat /root/.mysql_secret         //查看随机生成密码
    # The random password set for the root user at Thu May  7 22:15:47 2015 (local time): wW1BNAjD
    [root@master1 ~]# mysql -uroot -pwW1BNAjD        //使用随机生成密码登陆
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.6.15
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql> set password=password("pwd123");          //修改数据库root密码
    Query OK, 0 rows affected (0.49 sec)
    mysql> exit
    Bye
    [root@master1 ~]#

步骤三:部署双主多从结构

1)数据库授权(4台数据库主机master1,master2,slave1,slave2执行以下操作)

部署主从同步只需要授权一个主从同步用户即可,但是我们要部署MySQL-MMM架构,所以在这里我们将MySQL-MMM所需用户一并进行授权设置。再授权一个测试用户,在架构搭建完成时测试使用。

[root@master1 ~]# mysql -uroot -ppwd123
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.6.15 MySQL Community Server (GPL)
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

数据库授权部分为了方便试验我们直接允许所有地址访问了,真实环境需谨慎

mysql> grant   replication  slave  on  *.*  to  slaveuser@"%" identified by  "pwd123";                                //主从同步授权
    Query OK, 0 rows affected (0.00 sec)
    mysql> grant  replication  client  on *.*  to  monitor@"%" identified by "monitor";                                         //MMM所需架构用户授权
    Query OK, 0 rows affected (0.06 sec)        
    mysql> grant  replication client,process,super   on *.*  to  agent@"%" identified by "agent";                                 //MMM所需架构用户授权
    Query OK, 0 rows affected (0.00 sec)
    mysql> grant  all  on *.*  to  root@"%" identified by "pwd123";  //测试用户授权
    Query OK, 0 rows affected (0.00 sec)
    mysql>

2)开启主数据库binlog日志、设置server_id(master1,master2)

master1设置:

[root@master1 ~]# cat /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    server_id=10                        //设置server_id,该值集群中不可以重复
    log-bin                            //开启bin-log日志
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    [root@master1 ~]# service mysql restart                //重启MySQL服务
    Shutting down MySQL..                                      [确定]
    Starting MySQL..                                           [确定]
    [root@master1 ~]# ls /var/lib/mysql/master1-bin*        //查看binlog日志是否生成
    /var/lib/mysql/master1-bin.000001  /var/lib/mysql/master1-bin.index
    [root@master1 ~]#

master2设置:

[root@master2 ~]# cat /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    server_id=11
    log-bin
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    [root@master2 ~]# service mysql restart
    Shutting down MySQL..                                      [确定]
    Starting MySQL.                                            [确定]
    [root@master2 ~]# ls /var/lib/mysql/master2-bin.*
    /var/lib/mysql/master2-bin.000001  /var/lib/mysql/master2-bin.index

3)从库设置server_id

slave1设置:

[root@slave1 ~]# cat /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    server_id=12
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    [root@slave1 ~]# service mysql restart
    Shutting down MySQL..                                      [确定]
    Starting MySQL..                                           [确定]
    [root@slave1 ~]#

slave2设置:

[root@slave2 ~]# cat /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    server_id=13
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    [root@slave2 ~]# service mysql restart
    Shutting down MySQL..                                      [确定]
    Starting MySQL.                                            [确定]
    [root@slave2 ~]#

4)配置主从从从关系

配置master2、slave1、slave2成为master1的从服务器

查看master1服务器binlong日志使用节点信息:

[root@master1 ~]# mysql -uroot -ppwd123
    .. ..
    mysql> show master status\G
    *************************** 1. row ***************************
                 File: master1-bin.000001
             Position: 120
         Binlog_Do_DB:
     Binlog_Ignore_DB:
    Executed_Gtid_Set:
    1 row in set (0.00 sec)
    mysql>

设置master2为master1从:

[root@master2 ~]# mysql -uroot -ppwd123
    .. ..
    mysql> change  master  to                         //设置主服务器信息
        -> master_host="192.168.4.10",                //设置主服务器IP地址
        -> master_user="slaveuser",                //设置主从同步用户
        -> master_password="pwd123",                //设置主从同步密码
        -> master_log_file="master1-bin.000001",    //设置主库binlog日志名称
        -> master_log_pos=120;                        //设置主从binlog日志使用节点
    Query OK, 0 rows affected, 2 warnings (0.06 sec)
    mysql> start slave;                            //启动同步进程
    Query OK, 0 rows affected (0.00 sec)
    mysql> show slave status\G                        //查看主从是否成功
    .. ..

启动同步进程后查看IO节点和SQL节点是否为Yes如果均为Yes表示主从正常。

Slave_IO_Running: Yes                //IO节点正常
                Slave_SQL_Running: Yes                //SQL节点正常
    .. ..
    mysql>

设置slave1为master1从:

[root@slave1 ~]# mysql -uroot -ppwd123
    .. ..
    mysql> change  master  to
        -> master_host="192.168.4.10",
        -> master_user="slaveuser",
        -> master_password="pwd123",
        -> master_log_file="master1-bin.000001",                    
        -> master_log_pos=120;
    Query OK, 0 rows affected, 2 warnings (0.12 sec)
    mysql> start slave;
    Query OK, 0 rows affected (0.16 sec)
    mysql> show slave status\G
    .. ..
                 Slave_IO_Running: Yes                //IO节点正常
                Slave_SQL_Running: Yes                //SQL节点正常
    .. ..
    mysql>

设置slave2为master1从:

[root@slave2 ~]# mysql -uroot -ppwd123
    .. ..
    mysql> change  master  to
        -> master_host="192.168.4.10",
        -> master_user="slaveuser",
        -> master_password="pwd123",
        -> master_log_file="master1-bin.000001",                    
        -> master_log_pos=120;
    Query OK, 0 rows affected, 2 warnings (0.13 sec)
    mysql> start slave;
    Query OK, 0 rows affected (0.27 sec)
    mysql> show slave status\G
    .. ..
                 Slave_IO_Running: Yes                //IO节点正常
                Slave_SQL_Running: Yes                //SQL节点正常
    .. ..
    mysql>

5)配置主主从从关系,将master1配置为master2的从

查看master2的binlog使用信息:

[root@master2 ~]# mysql -uroot -ppwd123
    .. ..
    mysql> show master status\G
    *************************** 1. row ***************************
                 File: master2-bin.000001
             Position: 120
         Binlog_Do_DB:
     Binlog_Ignore_DB:
    Executed_Gtid_Set:
    1 row in set (0.00 sec)
    mysql>

设置master1成为master2的从:

[root@master1 ~]# mysql -uroot -ppwd123
    .. ..
    mysql> change  master  to
        -> master_host="192.168.4.11",
        -> master_user="slaveuser",
        -> master_password="pwd123",
        -> master_log_file="master2-bin.000001",                    
        -> master_log_pos=120;
    Query OK, 0 rows affected, 2 warnings (0.31 sec)
    mysql> start slave;
    Query OK, 0 rows affected (0.27 sec)
    mysql> show slave status\G
    .. ..
                 Slave_IO_Running: Yes                //IO节点正常
                Slave_SQL_Running: Yes                //SQL节点正常
    .. ..
    mysql>

6)测试主从架构是否成功

master1更新数据,查看其它主机是否同步:

[root@master1 ~]# mysql -uroot -ppwd123
    .. ..
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.00 sec)
    mysql> create database tarena;
    Query OK, 1 row affected (0.06 sec)
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    5 rows in set (0.00 sec)
    mysql>

master2主机查看:

[root@master2 ~]# mysql -uroot -ppwd123 -e "show databases"
    Warning: Using a password on the command line interface can be insecure.
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    [root@master2 ~]#

slave1主机查看:

[root@slave1 ~]# mysql -uroot -ppwd123 -e "show databases"
    Warning: Using a password on the command line interface can be insecure.
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    [root@slave1 ~]#

slave2主机查看:

[root@slave2 ~]# mysql -uroot -ppwd123 -e "show databases"
    Warning: Using a password on the command line interface can be insecure.
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    [root@slave2 ~]#

二、MySQL-MMM架构部署

目标:

本案例要求熟悉实现MySQL-MMM的架构部署,主要包括以下任务:

  1. 安装依赖包
  2. 安装软件包
  3. 配置MySQL-MMM

方案:

使用5台RHEL 6虚拟机,如下图所示。其中192.168.4.10、192.168.4.11作为MySQL双主服务器,192.168.4.12、 192.168.4.13作为主服务器的从服务器,192.168.4.100作为MySQL-MMM架构中管理监控服务器,实现监控MySQL主从服务 器的工作状态及决定故障节点的移除或恢复工作,架构搭建完成后使用客户机192.168.4.120进行访问,客户机需要安装MySQL-client软 件包。

步骤:

步骤一:安装MySQL-MMM

1)安装依赖关系(MySQL集群内5台服务器master1,master2,slave1,slave2,monitor)均需安装

[root@master1 ~]# yum -y install gcc* perl-Date-Manip  perl-Date-Manip  perl-Date-Manip perl-XML-DOM-XPath perl-XML-Parser perl-XML-RegExp rrdtool perl-Class-Singleton perl perl-DBD-MySQL perl-Params-Validate perl-MailTools perl-Time-HiRes
    .. ..

2)安装MySQL-MMM软件依赖包(MySQL集群内5台服务器master1,master2,slave1,slave2,monitor)均需安装,软件包讲师提供

安装安装Log-Log4perl 类

[root@mysql-master1 ~]# rpm -ivh perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm
    warning: perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
    Preparing...                ######################### [100%]
    1:perl-Log-Log4perl        ########################  [100%]

安装Algorithm-Diff类

[root@mysql-master1 ~]# tar -zxvf Algorithm-Diff-1.1902.tar.gz  //解压安装包
    .. ..
    [root@mysql-master1 ~]# cd Algorithm-Diff-1.1902                //切换到安装目录
    [root@mysql-master1 Algorithm-Diff-1.1902]# perl  Makefile.PL    //生成makefile文件
    Checking if your kit is complete...
    Looks good
    Writing Makefile for Algorithm::Diff
    [root@mysql-master1 Algorithm-Diff-1.1902]# make && make install        //编译,编译安装
    .. ..
    [root@mysql-master1 Algorithm-Diff-1.1902]# cd                //切换到软件包目录
    [root@mysql-master1 ~]#

安装Proc-Daemon类

[root@mysql-master1 ~]# tar -zxvf Proc-Daemon-0.03.tar.gz    //解压安装包
    .. ..
    [root@mysql-master1 ~]# cd Proc-Daemon-0.03                    //切换到安装目录
    [root@mysql-master1 Proc-Daemon-0.03]# perl    Makefile.PL    //生成makefile文件
    Checking if your kit is complete...
    Looks good
    Writing Makefile for Proc::Daemon
    [root@mysql-master1 Proc-Daemon-0.03]# make && make install    //编译,编译安装
    .. ..
    [root@mysql-master1 Proc-Daemon-0.03]# cd                    //切换到软件包目录
    [root@mysql-master1 ~]#

安装Net-ARP虚拟IP分配工具:

[root@mysql-master1 ~]# gunzip Net-ARP-1.0.8.tgz    //使用gunzip解压tgz格式的安装包
    [root@mysql-master1 ~]# tar xvf Net-ARP-1.0.8.tar            //解压tar安装包
    .. ..
    [root@mysql-master1 ~]# cd Net-ARP-1.0.8                    //切换到安装目录
    [root@mysql-master1 Net-ARP-1.0.8]# perl Makefile.PL        //生成makefile文件
    Module Net::Pcap is required for make test!
    Checking if your kit is complete...
    Looks good
    Writing Makefile for Net::ARP
    [root@mysql-master1 Net-ARP-1.0.8]# make && make install    //编译,编译安装
    .. ..
    [root@mysql-master1 Net-ARP-1.0.8]# cd                        //切换到软件包目录
    [root@mysql-master1 ~]#

安装Mysql-MMM软件包:

[root@mysql-master1 ~]# tar xvf mysql-mmm-2.2.1.tar.gz        //解压安装包
    .. ..
    [root@mysql-master1 ~]# cd mysql-mmm-2.2.1                    //切换到安装目录
    [root@mysql-master1 mysql-mmm-2.2.1]# make && make install    //编译,编译安装
    .. ..
    [root@mysql-master1 mysql-mmm-2.2.1]#

步骤二:修改配置文件

1)修改公共配置文件

本案例中MySQL集群的5台服务器(master1、master2、slave1、slave2、monitor)都需要配置,可以先配好一台后使用scp复制。

[root@master1 ~]# vim  /etc/mysql-mmm/mmm_common.conf
    active_master_role    writer
    <host default>
        cluster_interface        eth0                //设置主从同步的用户
        pid_path                /var/run/mmm_agentd.pid
        bin_path                /usr/lib/mysql-mmm/
     replication_user        slaveuser            //设置主从同步的用户
     replication_password    pwd123            //设置主从同步用户密码
        agent_user            agent                //mmm-agent控制数据库用户
        agent_password        agent                //mmm-agent控制数据库用户密码
    </host>
    <host master1>                            //设置第一个主服务器
        ip                    192.168.4.10            //master1 IP 地址
        mode                    master
        peer                    master2                //指定另外一台主服务器
    </host>
    <host master2>                            //指定另外一台主服务器
        ip                    192.168.4.11
        mode                    master
        peer                    master1
    </host>
    <host slave1>                                //设置第一台从服务器
        ip                    192.168.4.12            //slave1 IP 地址
        mode                    slave                //本段落配置的是slave服务器
    </host>
    <host slave2>
        ip                    192.168.4.13
        mode                    slave
    </host>
    <role writer>                                //设置写入服务器工作模式
        hosts                master1,master2        //提供写的主服务器
        ips                    192.168.4.200        //设置VIP地址
        mode                    exclusive            //排他模式
    </role>
    <role reader>                                //设置读取服务器工作模式
        hosts                slave1,slave2        //提供读的服务器信息
        ips                    192.168.4.201,192.168.4.202    //多个虚拟IP
        mode                    balanced                        //均衡模式
    </role>
    [root@master1 ~]#

2)修改管理主机配置文件(monitor主机配置)

[root@monitor ~]# vim /etc/mysql-mmm/mmm_mon.conf
    include mmm_common.conf
    <monitor>
        ip                        192.168.4.100        //设置管理主机IP地址
        pid_path                /var/run/mmm_mond.pid
        bin_path                /usr/lib/mysql-mmm/
        status_path                /var/lib/misc/mmm_mond.status
        ping_ips                192.168.4.10,192.168.4.11,192.168.4.12,192.168.4.13
                                                    //设置被监控数据库
    </monitor>
    <host default>
        monitor_user            monitor                    //监控数据库MySQL用户    monitor_password        monitor                    //监控数据库MySQL用户密码
    </host>
    debug 0
    [root@monitor ~]#

3)修改客户端配置文件

master1配置

[root@master1 ~]# cat /etc/mysql-mmm/mmm_agent.conf
    include mmm_common.conf
    this master1

master2配置

[root@master2 ~]# cat /etc/mysql-mmm/mmm_agent.conf
    include mmm_common.conf
    this master2

slave1配置

[root@slave1 ~]# cat /etc/mysql-mmm/mmm_agent.conf
    include mmm_common.conf
    this slave1

slave2配置

[root@slave2 ~]# cat /etc/mysql-mmm/mmm_agent.conf
    include mmm_common.conf
    this slave2

三、MySQL-MMM架构使用

目标:

本案例要求基于普通版的MySQL服务器改造MMM架构,完成以下任务操作:

  • 启动MMM集群架构
  • 设置集群中服务器为online状态

方案:

MySQL-MMM架构部署完成后需要启动,数据库端启动mmm-agent进程,管理端启动mmm-monitor进程,启动完成后设置所有数据库主机状态为online。

步骤:

步骤一:启动MMM集群架构

1)启动mmm-agent进程

master1操作:

[root@master1 ~]# /etc/init.d/mysql-mmm-agent start
    Daemon bin: '/usr/sbin/mmm_agentd'
    Daemon pid: '/var/run/mmm_agentd.pid'
    Starting MMM Agent daemon... Ok

master2操作:

[root@master2 ~]# /etc/init.d/mysql-mmm-agent start
    Daemon bin: '/usr/sbin/mmm_agentd'
    Daemon pid: '/var/run/mmm_agentd.pid'
    Starting MMM Agent daemon... Ok

slave1操作:

[root@master2 ~]# /etc/init.d/mysql-mmm-agent start
    Daemon bin: '/usr/sbin/mmm_agentd'
    Daemon pid: '/var/run/mmm_agentd.pid'
    Starting MMM Agent daemon... Ok

slave2操作:

[root@slave2 ~]# /etc/init.d/mysql-mmm-agent start
    Daemon bin: '/usr/sbin/mmm_agentd'
    Daemon pid: '/var/run/mmm_agentd.pid'
    Starting MMM Agent daemon... Ok

2)启动mmm-monitor进程

monitor主机操作:

[root@monitor ~]# /etc/init.d/mysql-mmm-monitor start
    Daemon bin: '/usr/sbin/mmm_mond'
    Daemon pid: '/var/run/mmm_mond.pid'
    Starting MMM Monitor daemon: Ok

步骤二:设置集群中服务器为online状态

控制命令只能在管理端monitor服务器上执行。

查看当前集群中各服务器状态:

[root@monitor ~]# mmm_control show
      master1(192.168.4.10) master/AWAITING_RECOVERY. Roles:
      master2(192.168.4.11) master/AWAITING_RECOVERY. Roles:
      slave1(192.168.4.12) slave/AWAITING_RECOVERY. Roles:
      slave2(192.168.4.13) slave/AWAITING_RECOVERY. Roles:

设置4台数据库主机状态为online:

[root@monitor ~]# mmm_control set_online master1
    OK: State of 'master1' changed to ONLINE. Now you can wait some time and check its new roles!
    [root@monitor ~]# mmm_control set_online master2
    OK: State of 'master2' changed to ONLINE. Now you can wait some time and check its new roles!
    [root@monitor ~]# mmm_control set_online slave1
    OK: State of 'slave1' changed to ONLINE. Now you can wait some time and check its new roles!
    [root@monitor ~]# mmm_control set_online slave2
    OK: State of 'slave2' changed to ONLINE. Now you can wait some time and check its new roles!
    [root@monitor ~]#

再次查看当前集群中各服务器状态:

[root@monitor ~]# mmm_control show
      master1(192.168.4.10) master/ONLINE. Roles: writer(192.168.4.200)
      master2(192.168.4.11) master/ONLINE. Roles:
      slave1(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.201)
      slave2(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.202)
    [root@monitor ~]#

步骤三:测试MySQL-MMM架构

1)客户机安装MySQL-client软件包

[root@client ~]# tar xvf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar
    .. ..
    [root@client ~]# rpm -ivh MySQL-client-5.6.15-1.el6.x86_64.rpm
    .. ..

2)MySQL-MMM虚拟IP访问测试

[root@client ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases"
    Warning: Using a password on the command line interface can be insecure.
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    [root@client ~]#
    [root@client ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases"
    Warning: Using a password on the command line interface can be insecure.
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    [root@client ~]#
    [root@client ~]# mysql -h192.168.4.202 -uroot -ppwd123 -e "show databases"
    Warning: Using a password on the command line interface can be insecure.
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    [root@client ~]#

3)主数据库宕机测试

[root@master1 ~]# service mysql stop                    //停止master1上服务
    Shutting down MySQL....                                    [确定]
    [root@master1 ~]#
    [root@monitor ~]# mmm_control show                        //查看集群内服务器状态

通过输出信息可以看到虚拟IP从master1切换到master2:

master1(192.168.4.10) master/HARD_OFFLINE. Roles:
      master2(192.168.4.11) master/ONLINE. Roles: writer(192.168.4.200)
      slave1(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.201)
      slave2(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.202)
    [root@monitor ~]#
    [root@client ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases"    //访问虚拟IP测试
    Warning: Using a password on the command line interface can be insecure.
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | tarena             |
    | test               |
    +--------------------+
    [root@client ~]#

Database基础(七):部署集群基础环境、MySQL-MMM架构部署、MySQL-MMM架构使用的更多相关文章

  1. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  2. Kubernetes容器集群管理环境 - 完整部署(上篇)

    Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统.其设计目标是在主机集群之间提供一个能够自动化部署.可拓展.应用容器可运营的平台.Kubernetes ...

  3. Hadoop基础-Hadoop的集群管理之服役和退役

    Hadoop基础-Hadoop的集群管理之服役和退役 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,如果是上千万规模的集群,难免一个一个月会有那么几台服务器出点故 ...

  4. Linux集群基础

    Linux集群基础 作者:Danbo 时间:2015-7-12 集群概述 什么是集群?集群是一组协同工作的服务器实体.用以提供比单一服务实体更具扩展性和可用性的平台. 集群的分类 1.HPC(High ...

  5. 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

    Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...

  6. Spark集群基础概念 与 spark架构原理

    一.Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则: 1.将尽可能多的窄依赖关系的RDD划为同一个stage阶段. 2.当遇到shuffle操作,就意味着上一个stage阶段结 ...

  7. Kubernetes容器集群管理环境 - 完整部署(中篇)

    接着Kubernetes容器集群管理环境 - 完整部署(上篇)继续往下部署: 八.部署master节点master节点的kube-apiserver.kube-scheduler 和 kube-con ...

  8. Kubernetes容器集群管理环境 - 完整部署(下篇)

    在前一篇文章中详细介绍了Kubernetes容器集群管理环境 - 完整部署(中篇),这里继续记录下Kubernetes集群插件等部署过程: 十一.Kubernetes集群插件 插件是Kubernete ...

  9. KingbaseES V8R6C5禁用root用户ssh登录图形化部署集群案例

    案例说明: 对于KingbaseES V8R6C5版本在部集群时,需要建立kingbase.root用户在节点间的ssh互信,如果在生产环境禁用root用户ssh登录,则通过ssh部署会失败:在图形化 ...

随机推荐

  1. SDK与API的理解

    1.SDK SDK (Software Development Kit):软件开发工具包,一般都是软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的开发工具的集合. SDK (S ...

  2. 高精度模板 洛谷Luogu P1932 A+B & A-B & A*B & A/B Problem

    P1932 A+B & A-B & A*B & A/B Problem 题目背景 这个题目很新颖吧!!! 题目描述 求A.B的和差积商余! 输入输出格式 输入格式: 两个数两行 ...

  3. iOS 获取全局唯一标示符

    这个方法用来产生一个唯一的标示符,每次调用都会不一样,所以可以用当作一些临时缓存文件的名字 NSString *identifier = [[NSProcessInfo processInfo] gl ...

  4. dex2jar反编译大文件内存溢出的问题

    @echo off REM better invocation scripts for windows from lanchon, release in public domain. thanks! ...

  5. Python做简单的字符串匹配详解

    Python做简单的字符串匹配详解 由于需要在半结构化的文本数据中提取一些特定格式的字段.数据辅助挖掘分析工作,以往都是使用Matlab工具进行结构化数据处理的建模,matlab擅长矩阵处理.结构化数 ...

  6. mybatis 学习视频总结记录

    学习mybaits简单增删改查例子记录 此整理是学习视频后的视频内容整理,后半段还没有整理 网易云课堂 SSM高级整合视频 地址 : http://study.163.com/course/cours ...

  7. 转 zookeeper,dubbo和Nginx的区别

    Nginx是著名的反向代理服务器,也被广泛的作为负载均衡服务器 ZooKeeper是分布式协调服务框架,有时也被用来做负载均衡 那么他们的区别是什么?如何选择呢? 下面从实际场景看下他们的关系 Ngi ...

  8. Python 学习笔记14 类 - 使用类和实例

    当我们熟悉和掌握了怎么样创建类和实例以后,我们编程中的大多数工作都讲关注在类的简历和实例对象使用,修改和维护上. 结合实例我们来进一步的学习类和实例的使用: 我们新建一个汽车的类: #-*- codi ...

  9. ssh 免密码登录实现批量处理

    搭建集群的时候ssh 免密码登录是一个问题以下脚本将实现批量处理 文件1主机名:host 17.19.18.11:12317.19.18.12:123 文件2:ssh_setup.py #!/usr/ ...

  10. JavaScript的日期对象

    1.Date对象用来处理日期和时间. 2.创建Date对象的语法: var myDate = new Date(); 3.Date对象的常用方法: 格式:Date.XX(); getDate() 从 ...