一、部署集群基础环境

目标:

本案例要求为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. CSS中的一些伪类

    一.:nth-child 和 :nth-of-type (1):nth-child() :nth-child(n) 选择器选取某任意一父元素的第 n 个子元素( p:nth-child(n) 即选中任 ...

  2. BUUCTF | [SUCTF 2019]EasySQL (堆叠注入)

    fuzz ing了一下,发现了一堆过滤: 同时发现了注入点,这个应该是var_dump()函数 ===============第二天的分割线 好吧我放弃了,找了一下wp 正确解:select 1;se ...

  3. moment.js 时间库

    一.概念:    https://www.cnblogs.com/Jimc/p/10591580.html    或    http://momentjs.cn/(官网) 1.Moment.js是一个 ...

  4. python中模块介绍

    一,模块概念 在计算机程序开发的过程当中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编码更加容易维护,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码 ...

  5. spring声明式的事务管理

    spring支持声明式事务管理和编程式事务管理两种方式. 编程式事务使用TransactionTemplate来定义,可在代码级别对事务进行定义. 声明式事务基于aop来实现,缺点是其最细粒度的事务声 ...

  6. Appium移动端自动化:Appium-Desktp的使用以及定位元素方式总结

    一.appium-desktop功能介绍 1.打开appium-desktop,点击start session 2.打开后,点击屏幕右上角的搜索按钮 3.然后会打开配置页面,在本地服务配置信息同上面写 ...

  7. 存取cookies

    保存: Response.Cookies["OpenID"].Value = wxobj.openid; Response.Cookies["NickName" ...

  8. JavaScript-打开新窗口(window.open)和 关闭窗口(window.close)

    JavaScript-打开新窗口 open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: window.open([URL], [窗口名称], [参数字符串]) 参数说明: URL:可选 ...

  9. Tomcat服务的配置

    首先到Apache官网,下载tomcat,在官网有两种tomcat,一种是安装版,一种是压缩版,对于安装版的一台机器只能安装一个tomcat,而对于压缩版的tomcat一台机器可以安装多个tomcat ...

  10. python-form表单

    form表单 form属于块级标签 功能: 表单用于向服务器传输数据,从而实现用户与web服务器的交互 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等 表单还可以包含tex ...