MySQL 读写分离基本原理是让 master 数据库处理写操作,slave 数据库处理
读操作。master 将写操作的变更同步到各个 slave 节点。
MySQL 读写分离能提高系统性能的原因在于:
物理服务器增加,机器处理能力提升。拿硬件换性能。
主从只负责各自的读和写,极大程度缓解 X 锁和 S 锁争用。
slave 可以配置 myiasm 引擎,提升查询性能以及节约系统开销。
master 直接写是并发的,slave 通过主库发送来的 binlog 恢复数据是异步。
slave 可以单独设置一些参数来提升其读的性能。
增加冗余,提高可用性。
MySQLProxy 介绍
MySQL 官方提供的数据库代理层产品 MySQLProxy 搭建读写分离。MySQL
客 Proxy 实际上是在客户端请求与 MySQLServer 之间建立了一个连接池。所
有户端请求都是发向 MySQLProxy,然后经由 MySQLProxy 进行相应的分析,
判断出是读操作可以还是写操作,分发至对应的 MySQLServer 上。对于多节
点 Slave 集群,也起做到负载均衡的效果。
MySQL 读写分离配置
MySQL 环境准备
master 172.25.77.5
slave 172.25.77.6
proxy 172.25.77.7
MySQL-proxy:mysql-proxy-0.8.5-linux-rhel6-x86-64bit.tar.gz
官网 http://dev.mysql.com/downloads/mysql-proxy/
在配置了 MySQL 复制,以上操作在 master 执行会同步到 slave 节点。
启用 MySQL 复制
先关闭并清除之前的复制。
mysql> stop slave;
mysql> reset slave all;
启用新的复制同步。启用之前需要清除日志mysql> change master to
master_host='172.25.77.5',master_user='test',master_password='Nanjidong@195413',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=0;
主库
# mysql -h localhost -utest -p
mysql> create database d;
mysql> use d;
mysql> create table t(i int);
mysql> insert into t values(1);
从库
mysql> select * from t;
+------+
|i
|
+------+
|
1 |
启用 MySQLProxy 代理服务器
代理服务器上创建 mysql 用户
# groupadd mysql
# useradd -g mysql mysql
解压启动 mysql-proxy
# ./mysql-proxy --daemon --log-level=debug --user=mysql --keepalive
--log-file=/var/log/mysql-proxy.log --plugins="proxy"
--proxy-backend-addresses="172.25.77.5:3306"--proxy-read-only-backend-addresses="172.25.77.6:3306"
--proxy-lua-script="/root/soft/mysql-proxy/rw-splitting.lua"
--plugins=admin --admin-username="admin"
--admin-password="admin"
--admin-lua-script="/root/soft/mysql-proxy/lib/mysql-proxy/lua/admin.
lua" 其中
proxy-backend-addresses 是 master 服务器,
proproxy-read-only-backend-addresses 是 slave 服务器。
测试
保证 mysqlproxy 节点上可执行 mysql 。通过复制同步帐号连接 proxy
4040 是 proxy 端口,4041 是 admin 管理端口。
# mysql -h 172.25.77.7 -utest -p --port=4040
mysql> show databases;
+--------------------+
| Database
|
+--------------------+
| information_schema |
|d
|
| mysql
|
| performance_schema |
| test
|
+--------------------+
登录 admin 查看状态# mysql -h 172.25.77.7 -u admin -p --port=4041
mysql> select * from backends;
+-------------+------------------+-------+------+------+-
------------------+
| backend_ndx | address
| state | type | uuid | connected_clients |
+-------------+------------------+-------+------+------+-
------------------+
| 1 | 172.25.77.5:3306 | up | rw | NULL | 0
| 2 | 172.25.77.6:3306 | up | ro | NULL | 0
|
|
+-------------+------------------+-------+------+------+-
------------------+
2 rows in set (0.00 sec)
可以从以上查询中看到 master 和 slave 状态均为 up。
1)登录 proxy 节点,创建数据库 dong,并创建一张表 t
mysql> create database dong;
mysql> show databases;
mysql> use dong;
mysql> create table t(id int(10),name varchar(20));
mysql> show tables;
创建完数据库及表后,主从节点上应该都可以看到2)关闭同步,分别在 master 和 slave 上插入数据
mysql> slave stop;
master
mysql> insert into t values(1,'this_is_master');
slave
mysql> insert into t values(2,'this_is_slave');
3)proxy 上查看结果
mysql> use dong;
mysql> select * from t;
+------+---------------+
| id
| name
|
+------+---------------+
|
2 | this_is_slave |
+------+---------------+
1 row in set (0.00 sec)
从结果可以看到数据是从 slave 上读取的,并没考虑 master 节点上的数据。
直接从 proxy 上插入数据
mysql> insert into t values(3,'this_is_proxy');
再次查询
mysql> select * from t;
+------+---------------+
| id
| name
|+------+---------------+
|
2 | this_is_slave |
+------+---------------+
结果显示查询数据没有变化,因为 proxy 上执行 insert 相当于写入到了 master
上,而查询的数据是从 slave 上读取的。
master 上查询
mysql> select * from t;
+------+----------------+
| id
| name
|
+------+----------------+
| 1 | this_is_master |
| 3 | this_is_proxy |
+------+----------------+
启用复制,proxy 查询
mysql> select * from t;
+------+----------------+
| id
| name
|
+------+----------------+
| 2 | this_is_slave |
| 1 | this_is_master |
| 3 | this_is_proxy |
+------+----------------+
说明此时 master 上的数据同步到了 slave,并且在 proxy 查询到数据是 slave
数据库的数据。此时,可以看到 MySQLProxy 实现了分离。
Mysql的高可用:
Base_02:172.25.77.2 master
Base_03:172.25.77.3 slave
Base_04:172.25.77.4 slave
Mha manager:base_06:172.25.77.6
先配置主从复制:
配置Base_02,Base_03,Base_04
Vim /etc/my.cnf
.........
server_id=2
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
binlog_do-db=test
binlog_ignore_db=mysql
在base_02上授权:
mysql> grant replication slave on *.* to red@'172.25.77.%' identified by 'Nanjidong@195413';
Query OK, 0 rows affected, 1 warning (0.14 sec)
mysql> create database test;
Query OK, 1 row affected (0.14 sec)
Server3:
mysql> change master to master_host='172.25.77.2',master_user='red',master_password='Nanjidong@195413',master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.65 sec)
mysql> start slave;
Query OK, 0 rows affected (0.08 sec)
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.25.77.2
Master_User: red
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000005
Read_Master_Log_Pos: 685
Relay_Log_File: base_03-relay-bin.000005
Relay_Log_Pos: 884
Relay_Master_Log_File: binlog.000005
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.10 sec)
[root@base_04 ~]# /etc/init.d/mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
[root@base_04 ~]# mysql -p
mysql> change master to master_host='172.25.77.2',master_user='red',master_password='Nanjidong@195413',master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.58 sec)
mysql> start slave;
Query OK, 0 rows affected (0.16 sec)
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.25.77.2
Master_User: red
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000005
Read_Master_Log_Pos: 685
Relay_Log_File: base_04-relay-bin.000005
Relay_Log_Pos: 884
Relay_Master_Log_File: binlog.000005
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.11 sec)
[root@base_02 ~]#
mysql> show processlist;
+----+------+---------------+------+------------------+------+---------------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+---------------+------+------------------+------+---------------------------------------------------------------+------------------+
| 18 | red | base_03:35370 | NULL | Binlog Dump GTID | 4499 | Master has sent all binlog to slave; waiting for more updates | NULL |
| 19 | red | base_04:53308 | NULL | Binlog Dump GTID | 4320 | Master has sent all binlog to slave; waiting for more updates | NULL |
| 23 | root | localhost | NULL | Query | 0 | starting | show processlist |
+----+------+---------------+------+------------------+------+--------------------------
配置MHA MANAGER:
[root@base_06 ~]# ls
master_ip_failover
master_ip_online_change
mha4mysql-manager-0.56-0.el6.noarch.rpm
mha4mysql-node-0.56-0.el6.noarch.rpm
perl-Config-Tiny-2.12-7.1.el6.noarch.rpm
perl-Email-Date-Format-1.002-5.el6.noarch.rpm
perl-Log-Dispatch-2.27-1.el6.noarch.rpm
perl-Mail-Sender-0.8.16-3.el6.noarch.rpm
perl-Mail-Sendmail-0.79-12.el6.noarch.rpm
perl-MIME-Lite-3.027-2.el6.noarch.rpm
perl-MIME-Types-1.28-2.el6.noarch.rpm
perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm
[root@base_06 ~]# yum install -y *
[root@base_06 ~]# mkdir /etc/masterha
[root@base_06 ~]# cd /etc/masterha/
[root@base_06 masterha]# vim app.cnf
[server default]
master_workdir=/etc/masterha
master_log=/etc/masterha/mha.log
master_binlog_dir=/var/lib/mysql
password=Nanjidong@195413
user=root
ping_interval=1
remote_workdir=/tmp
repl_password=Nanjidong@195413
repl_user=red
ssh_user=root
[server1]
hostname=172.25.77.2
port=3306
[server2]
hostname=172.25.77.3
port=3306
[server3]
hostname=172.25.77.4
port=3306
no_master=1
[root@base_06 masterha]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
11:c7:94:7a:af:17:03:ab:b4:fd:e4:db:ac:d0:c1:c5 root@base_06
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| oo . |
| .. E |
| ..o. . |
| S. +o |
| . ..+. |
| . +..oo |
| o o+.o |
| o=oo |
+-----------------+
[root@base_06 .ssh]# ssh-copy-id 172.25.77.2
The authenticity of host '172.25.77.2 (172.25.77.2)' can't be established.
RSA key fingerprint is 6c:13:cf:23:88:a9:13:f8:0b:6a:bd:2c:5c:0f:c0:4b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.77.2' (RSA) to the list of known hosts.
root@172.25.77.2's password:
Now try logging into the machine, with "ssh '172.25.77.2'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@base_06 .ssh]# ssh-copy-id 172.25.77.3
[root@base_06 .ssh]# ssh-copy-id 172.25.77.4
测试免密:
[root@base_06 .ssh]# ssh 172.25.77.2
Last login: Fri Oct 20 18:10:00 2017 from 172.25.77.250
将 MHA 服务器上的高可用组件中的 node 安装包分别要在 master、slave1 和 slave2上安装
[root@base_06 ~]# scp mha4mysql-node-0.56-0.el6.noarch.rpm 172.25.77.2:
mha4mysql-node-0.56-0.el6.noarch.rpm 100% 35KB 35.5KB/s 00:00
[root@base_06 ~]# scp mha4mysql-node-0.56-0.el6.noarch.rpm 172.25.77.3:
mha4mysql-node-0.56-0.el6.noarch.rpm 100% 35KB 35.5KB/s 00:00
[root@base_06 ~]# scp mha4mysql-node-0.56-0.el6.noarch.rpm 172.25.77.4:
mha4mysql-node-0.56-0.el6.noarch.rpm 100% 35KB 35.5KB/s
将MHA 上的密钥文件传给 maser,slave1 和 slave2,使每个主机都能免密 ssh
[root@base_06 .ssh]# scp -p id_rsa 172.25.77.2:~/.ssh/
id_rsa 100% 1671 1.6KB/s 00:00
[root@base_06 .ssh]# scp -p id_rsa 172.25.77.3:~/.ssh/
id_rsa 100% 1671 1.6KB/s 00:00
[root@base_06 .ssh]# scp -p id_rsa 172.25.77.4:~/.ssh/
id_rsa 100% 1671 1.6KB/s
[root@base_02 ~]# yum install mha4mysql-node-0.56-0.el6.noarch.rpm -y
[root@base_03 ~]# yum install mha4mysql-node-0.56-0.el6.noarch.rpm -y
[root@base_04 ~]# yum install mha4mysql-node-0.56-0.el6.noarch.rpm -y
[root@base_06 ~]# masterha_check_ssh --conf=/etc/masterha/app.cnf
Fri Oct 20 20:01:24 2017 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Oct 20 20:01:24 2017 - [info] Reading application default configuration from /etc/masterha/app.cnf..
Parameter name master_log is invalid!
at /usr/share/perl5/vendor_perl/MHA/SSHCheck.pm line 148
问题卡这儿了.....
确实是配置文件写错了:
master_workdir=/etc/masterha---------》manager_workdir=/etc/masterha
master_log=/etc/masterha/mha.log一样
[root@base_06 ~]# masterha_check_ssh --conf=/etc/masterha/app.cnf
Fri Oct 20 21:39:22 2017 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Oct 20 21:39:22 2017 - [info] Reading application default configuration from /etc/masterha/app.cnf..
Fri Oct 20 21:39:22 2017 - [info] Reading server configuration from /etc/masterha/app.cnf..
Fri Oct 20 21:39:22 2017 - [info] Starting SSH connection tests..
Fri Oct 20 21:39:23 2017 - [debug]
Fri Oct 20 21:39:22 2017 - [debug] Connecting via SSH from root@172.25.77.2(172.25.77.2:22) to root@172.25.77.3(172.25.77.3:22)..
Fri Oct 20 21:39:23 2017 - [debug] ok.
Fri Oct 20 21:39:23 2017 - [debug] Connecting via SSH from root@172.25.77.2(172.25.77.2:22) to root@172.25.77.4(172.25.77.4:22)..
Fri Oct 20 21:39:23 2017 - [debug] ok.
Fri Oct 20 21:39:23 2017 - [debug]
Fri Oct 20 21:39:23 2017 - [debug] Connecting via SSH from root@172.25.77.3(172.25.77.3:22) to root@172.25.77.2(172.25.77.2:22)..
Fri Oct 20 21:39:23 2017 - [debug] ok.
Fri Oct 20 21:39:23 2017 - [debug] Connecting via SSH from root@172.25.77.3(172.25.77.3:22) to root@172.25.77.4(172.25.77.4:22)..
Fri Oct 20 21:39:23 2017 - [debug] ok.
Fri Oct 20 21:39:24 2017 - [debug]
Fri Oct 20 21:39:23 2017 - [debug] Connecting via SSH from root@172.25.77.4(172.25.77.4:22) to root@172.25.77.2(172.25.77.2:22)..
Fri Oct 20 21:39:24 2017 - [debug] ok.
Fri Oct 20 21:39:24 2017 - [debug] Connecting via SSH from root@172.25.77.4(172.25.77.4:22) to root@172.25.77.3(172.25.77.3:22)..
Fri Oct 20 21:39:24 2017 - [debug] ok.
Fri Oct 20 21:39:24 2017 - [info] All SSH connection tests passed successfully.
在base_02上授权并在base_06测试:
mysql> show processlist;
+----+------+---------------+------+------------------+------+---------------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+---------------+------+------------------+------+---------------------------------------------------------------+------------------+
| 4 | red | base_04:34298 | NULL | Binlog Dump GTID | 1798 | Master has sent all binlog to slave; waiting for more updates | NULL |
| 5 | red | base_03:39779 | NULL | Binlog Dump GTID | 1798 | Master has sent all binlog to slave; waiting for more updates | NULL |
| 7 | root | localhost | NULL | Query | 0 | starting | show processlist |
+----+------+---------------+------+------------------+------+---------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)
mysql> grant all on *.* to root@'172.25.77.%' identified by 'Nanjidong@195413';
Query OK, 0 rows affected, 1 warning (0.13 sec)
[root@base_06 ~]# masterha_check_repl --conf=/etc/masterha/app.cnf
Fri Oct 20 21:48:20 2017 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Fri Oct 20 21:48:20 2017 - [info] Reading application default configuration from /etc/masterha/app.cnf..
Fri Oct 20 21:48:20 2017 - [info] Reading server configuration from /etc/masterha/app.cnf..
Fri Oct 20 21:48:20 2017 - [info] MHA::MasterMonitor version 0.56.
Fri Oct 20 21:48:20 2017 - [info] GTID failover mode = 1
Fri Oct 20 21:48:20 2017 - [info] Dead Servers:
Fri Oct 20 21:48:20 2017 - [info] Alive Servers:
Fri Oct 20 21:48:20 2017 - [info] 172.25.77.2(172.25.77.2:3306)
Fri Oct 20 21:48:20 2017 - [info] 172.25.77.3(172.25.77.3:3306)
Fri Oct 20 21:48:20 2017 - [info] 172.25.77.4(172.25.77.4:3306)
Fri Oct 20 21:48:20 2017 - [info] Alive Slaves:
Fri Oct 20 21:48:20 2017 - [info] 172.25.77.3(172.25.77.3:3306) Version=5.7.19-log (oldest major version between slaves) log-bin:enabled
Fri Oct 20 21:48:20 2017 - [info] GTID ON
Fri Oct 20 21:48:20 2017 - [info] Replicating from 172.25.77.2(172.25.77.2:3306)
Fri Oct 20 21:48:20 2017 - [info] 172.25.77.4(172.25.77.4:3306) Version=5.7.19-log (oldest major version between slaves) log-bin:enabled
Fri Oct 20 21:48:20 2017 - [info] GTID ON
Fri Oct 20 21:48:20 2017 - [info] Replicating from 172.25.77.2(172.25.77.2:3306)
Fri Oct 20 21:48:20 2017 - [info] Not candidate for the new Master (no_master is set)
Fri Oct 20 21:48:20 2017 - [info] Current Alive Master: 172.25.77.2(172.25.77.2:3306)
Fri Oct 20 21:48:20 2017 - [info] Checking slave configurations..
Fri Oct 20 21:48:20 2017 - [info] read_only=1 is not set on slave 172.25.77.3(172.25.77.3:3306).
Fri Oct 20 21:48:20 2017 - [info] read_only=1 is not set on slave 172.25.77.4(172.25.77.4:3306).
Fri Oct 20 21:48:20 2017 - [info] Checking replication filtering settings..
Fri Oct 20 21:48:20 2017 - [info] binlog_do_db= test, binlog_ignore_db= mysql
Fri Oct 20 21:48:20 2017 - [info] Replication filtering check ok.
Fri Oct 20 21:48:20 2017 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.
Fri Oct 20 21:48:20 2017 - [info] Checking SSH publickey authentication settings on the current master..
Fri Oct 20 21:48:20 2017 - [info] HealthCheck: SSH to 172.25.77.2 is reachable.
Fri Oct 20 21:48:20 2017 - [info]
172.25.77.2(172.25.77.2:3306) (current master)
+--172.25.77.3(172.25.77.3:3306)
+--172.25.77.4(172.25.77.4:3306)
Fri Oct 20 21:48:20 2017 - [info] Checking replication health on 172.25.77.3..
Fri Oct 20 21:48:20 2017 - [info] ok.
Fri Oct 20 21:48:20 2017 - [info] Checking replication health on 172.25.77.4..
Fri Oct 20 21:48:20 2017 - [info] ok.
Fri Oct 20 21:48:20 2017 - [warning] master_ip_failover_script is not defined.
Fri Oct 20 21:48:20 2017 - [warning] shutdown_script is not defined.
Fri Oct 20 21:48:20 2017 - [info] Got exitt code 0 (Not master dead).
MySQL Replication Health is OK.
[root@base_06 ~]# masterha_check_status --conf=/etc/masterha/app.cnf
注意:如果正常,会显示"PING_OK",否则会显示"NOT_RUNNING",这代表MHA监控没有开启。
app is stopped(2:NOT_RUNNING).
开启MHA Manage监控:
[root@base_06 ~]# nohup masterha_manager --conf=/etc/masterha/app.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /etc/masterha/manager.log 2>&1 &
[1] 1886
--remove_dead_master_conf 该参数代表当发生主从切换后,老的主库的ip将会从配置文件中移除。
--manger_log 日志存放位置
--ignore_last_failover 在缺省情况下,如果MHA检测到连续发生宕机,且两次宕机间隔不足8小时的话,则不会进行Failover,之所以这样限制是为了避免ping-pong效应。该参数代表忽略上次MHA触发切换产生的文件,默认情况下,MHA发生切换后会在日志目录,也就是上面我设置的/data产生app1.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,为了方便,这里设置为--ignore_last_failover。
查看MHA Manager监控是否正常:
[root@base_06 ~]# masterha_check_status --conf=/etc/masterha/app.cnf
app is stopped(2:NOT_RUNNING).
[1]+ Done nohup masterha_manager --conf=/etc/masterha/app.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /etc/masterha/manager.log 2>&1
测试,关闭base_02上的mysql,master自动切换到base_03
[root@base_06 ~]# tail -n 20 /etc/masterha/mha.log
Fri Oct 20 22:30:23 2017 - [info] Resetting slave info on the new master..
Fri Oct 20 22:30:24 2017 - [info] 172.25.77.3: Resetting slave info succeeded.
Fri Oct 20 22:30:24 2017 - [info] Master failover to 172.25.77.3(172.25.77.3:3306) completed successfully.
Fri Oct 20 22:30:24 2017 - [info] Deleted server1 entry from /etc/masterha/app.cnf .
Fri Oct 20 22:30:24 2017 - [info]
----- Failover Report -----
app: MySQL Master failover 172.25.77.2(172.25.77.2:3306) to 172.25.77.3(172.25.77.3:3306) succeeded
Master 172.25.77.2(172.25.77.2:3306) is down!
Check MHA Manager logs at base_06:/etc/masterha/mha.log for details.
Started automated(non-interactive) failover.
Selected 172.25.77.3(172.25.77.3:3306) as a new master.
172.25.77.3(172.25.77.3:3306): OK: Applying all logs succeeded.
172.25.77.4(172.25.77.4:3306): OK: Slave started, replicating from 172.25.77.3(172.25.77.3:3306)
172.25.77.3(172.25.77.3:3306): Resetting slave info succeeded.
Master failover to 172.25.77.3(172.25.77.3:3306) completed successfully.
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.25.77.3
Master_User: red
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000003
Read_Master_Log_Pos: 524
Relay_Log_File: base_04-relay-bin.000004
Relay_Log_Pos: 445
Relay_Master_Log_File: binlog.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes