现在的位置: 首页 > 综合 > 正文

MySQL Utilities Example

2014年07月29日 ⁄ 综合 ⁄ 共 7577字 ⁄ 字号 评论关闭

You obviously need Python on your server (python-2.6.6-37.el6_4.x86_64 in mycase) and the Python MySQL library (mysql-connector-python-1.0.8-1.el6.noarch)

Master:db01

Slave: db02 

[root@db01 software]# rpm -ivh mysql-connector-python-1.0.12-1.el6.noarch.rpm 
Preparing...                ########################################### [100%]
   1:mysql-connector-python ########################################### [100%]
[root@db01 software]# 
[root@db01 software]# rpm -qa python  mysql-connector-python
python-2.6.6-37.el6_4.x86_64
mysql-connector-python-1.0.12-1.el6.noarch

installation MySQL Utilities

[root@db01 software]# tar zxvf mysql-utilities-1.3.5.tar.gz
[root@db01 software]# cd mysql-utilities-1.3.5
[root@db01 mysql-utilities-1.3.5]# python setup.py build
[root@db01 mysql-utilities-1.3.5]# python setup.py install

Configuration replication

[root@db01 ~]# mysqlreplicate --master=root:idontcare@db01:30306 --slave=root:idontcare@db02:30306 --rpl-user=rep:rep
# master on db01: ... connected.
# slave on db02: ... connected.
# Checking for binary logging on master...
# Setting up replication...
# ...done.
[root@db01 ~]# 

Checks replication prerequisites

[root@db01 ~]# mysqlrplcheck --master=root:idontcare@db01:30306 --slave=root:idontcare@db02:30306
# master on db01: ... connected.
# slave on db02: ... connected.
Test Description                                                     Status
---------------------------------------------------------------------------
Checking for binary logging on master                                [pass]
Are there binlog exceptions?                                         [pass]
Replication user exists?                                             [pass]
Checking server_id values                                            [pass]
Checking server_uuid values                                          [pass]
Is slave connected to master?                                        [pass]
Check master information file                                        [pass]
Checking InnoDB compatibility                                        [pass]
Checking storage engines compatibility                               [pass]
Checking lower_case_table_names settings                             [pass]
Checking slave delay (seconds behind master)                         [pass]
# ...done.


Display replication topology

[root@db01 ~]# mysqlrplshow --master=root:idontcare@db01:30306 --discover-slaves-login=root:idontcare -v 
# master on db01: ... connected.
# Finding slaves for master: db01:30306

# Replication Topology Graph
db01:30306 (MASTER)
   |
   +--- db02:30306 [IO: Yes, SQL: Yes] - (SLAVE)

[root@db01 ~]# 

Display replication health of the topology

[root@db01 ~]# mysqlrpladmin --master=root:idontcare@db01:30306 --slaves=root:idontcare@db02:30306 health
# Checking privileges.
#
# Replication Topology Health:
+-------+--------+---------+--------+------------+---------+
| host  | port   | role    | state  | gtid_mode  | health  |
+-------+--------+---------+--------+------------+---------+
| db01  | 30306  | MASTER  | UP     | ON         | OK      |
| db02  | 30306  | SLAVE   | UP     | ON         | OK      |
+-------+--------+---------+--------+------------+---------+
# ...done.

Stop Slave

[root@db01 ~]# mysqlrpladmin  --master=root:idontcare@db01:30306 --slaves=root:idontcare@db02:30306 stop
# Checking privileges.
# Performing STOP on all slaves.
#   Executing stop on slave db02:30306 Ok
# ...done.

Start Slave

[root@db01 ~]# mysqlrpladmin  --master=root:idontcare@db01:30306 --slaves=root:idontcare@db02:30306 start
# Checking privileges.
# Performing START on all slaves.
#   Executing start on slave db02:30306 Ok
# ...done.

Interactive health monitoring and failover

[root@db01 ~]# mysqlfailover --master=root:idontcare@db01:30306 --discover-slaves-login=root:idontcare --rediscover
# Discovering slaves for master at db01:30306
# Discovering slave at db02:30306
# Found slave: db02:30306
# Checking privileges.
# Discovering slaves for master at db01:30306

MySQL Replication Failover Utility
Failover Mode = auto     Next Interval = Wed Nov  6 16:25:07 2013

Master Information
------------------
Binary Log File       Position  Binlog_Do_DB  Binlog_Ignore_DB  
binlog-master.000006  231                                       

GTID Executed Set
25d63f15-46b8-11e3-9002-080027e2e935:1-3 [...]

Replication Health Status
+-------+--------+---------+--------+------------+---------+
| host  | port   | role    | state  | gtid_mode  | health  |
+-------+--------+---------+--------+------------+---------+
| db01  | 30306  | MASTER  | UP     | ON         | OK      |
| db02  | 30306  | SLAVE   | UP     | ON         | OK      |
+-------+--------+---------+--------+------------+---------+

Switchover select

[root@db01 ~]# mysqlrpladmin --master=root:idontcare@db01:30306 --slaves=root:idontcare@db02:30306 elect
# Checking privileges.
# Electing candidate slave from known slaves.
# Best slave found is located on db02:30306.
# ...done.

To perform a switchover

[root@db01 ~]# mysqlrpladmin --master=root:idontcare@db01:30306 --slaves=root:idontcare@db02:30306  --new-master=root:idontcare@db02:30306 --demote-master switchover
# Checking privileges.
# Performing switchover from master at db01:30306 to slave at db02:30306.
# Checking candidate slave prerequisites.
# Checking slaves configuration to master.
# Waiting for slaves to catch up to old master.
# Stopping slaves.
# Performing STOP on all slaves.
# Demoting old master to be a slave to the new master.
# Switching slaves to new master.
# Starting all slaves.
# Performing START on all slaves.
# Checking slaves for errors.
# Switchover complete.
#
# Replication Topology Health:
+-------+--------+---------+--------+------------+---------+
| host  | port   | role    | state  | gtid_mode  | health  |
+-------+--------+---------+--------+------------+---------+
| db02  | 30306  | MASTER  | UP     | ON         | OK      |
| db01  | 30306  | SLAVE   | UP     | ON         | OK      |
+-------+--------+---------+--------+------------+---------+
# ...done.

Review display replication topology

[root@db01 ~]# mysqlrpladmin --master=root:idontcare@db02:30306 --slaves=root:idontcare@db01:30306 health
# Checking privileges.
#
# Replication Topology Health:
+-------+--------+---------+--------+------------+---------+
| host  | port   | role    | state  | gtid_mode  | health  |
+-------+--------+---------+--------+------------+---------+
| db02  | 30306  | MASTER  | UP     | ON         | OK      |
| db01  | 30306  | SLAVE   | UP     | ON         | OK      |
+-------+--------+---------+--------+------------+---------+
# ...done.
[root@db01 ~]# mysqlrplshow --master=root:idontcare@db02:30306 --discover-slaves-login=root:idontcare -v
# master on db02: ... connected.
# Finding slaves for master: db02:30306

# Replication Topology Graph
db02:30306 (MASTER)
   |
   +--- db01:30306 [IO: Yes, SQL: Yes] - (SLAVE)

To perform a switchover to be back to initial configuration use

[root@db01 ~]# mysqlrpladmin --master=root:idontcare@db02:30306 --slaves=root:idontcare@db01:30306  --new-master=root:idontcare@db01:30306 --demote-master switchover
# Checking privileges.
# Performing switchover from master at db02:30306 to slave at db01:30306.
# Checking candidate slave prerequisites.
# Checking slaves configuration to master.
# Waiting for slaves to catch up to old master.
# Stopping slaves.
# Performing STOP on all slaves.
# Demoting old master to be a slave to the new master.
# Switching slaves to new master.
# Starting all slaves.
# Performing START on all slaves.
# Checking slaves for errors.
# Switchover complete.
#
# Replication Topology Health:
+-------+--------+---------+--------+------------+---------+
| host  | port   | role    | state  | gtid_mode  | health  |
+-------+--------+---------+--------+------------+---------+
| db01  | 30306  | MASTER  | UP     | ON         | OK      |
| db02  | 30306  | SLAVE   | UP     | ON         | OK      |
+-------+--------+---------+--------+------------+---------+
# ...done.
[root@db01 ~]# mysqlrplshow --master=root:idontcare@db01:30306 --discover-slaves-login=root:idontcare -v
# master on db01: ... connected.
# Finding slaves for master: db01:30306

# Replication Topology Graph
db01:30306 (MASTER)
   |
   +--- db02:30306 [IO: Yes, SQL: Yes] - (SLAVE)

[root@db01 ~]# 
[root@db01 ~]# 
[root@db01 ~]# mysqlrpladmin --master=root:idontcare@db01:30306 --slaves=root:idontcare@db02:30306 health
# Checking privileges.
#
# Replication Topology Health:
+-------+--------+---------+--------+------------+---------+
| host  | port   | role    | state  | gtid_mode  | health  |
+-------+--------+---------+--------+------------+---------+
| db01  | 30306  | MASTER  | UP     | ON         | OK      |
| db02  | 30306  | SLAVE   | UP     | ON         | OK      |
+-------+--------+---------+--------+------------+---------+
# ...done.

Note:

The Master-Slave switchover can only be used in MySQL5.6 version.


You need add parameters:

gtid_mode=on
log_slave_updates=on
enforce_gtid_consistency=on

report_host=hostname
master-info-repository=TABLE
relay-log-info-repository=TABLE

抱歉!评论已关闭.