mysql服务器级别角色_MySQL管理工具MySQL Utilities — 添加新服务器和更改主角色(48)...

本文介绍了如何使用mysqlreplicate和mysqlrpladmin工具设置MySQL的主从复制,包括添加新服务器、配置复制拓扑和进行主从切换。在示例中,现有服务器server1被两台新服务器server2和server3加入,形成复制结构,最终成功将server2提升为主,server1降级为从,同时确保了所有服务器的健康状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单台数据库服务器无法满足性能和冗余性,现在我们需要添加2台新的服务器,并组建复制结构。

场景如下:

现有的服务器server1,IP:192.168.1.1  port:13001。新增的服务器server2,IP:192.168.1.2 port:13001,server3,IP:192.168.1.3,port:3306,并使server2为新的主。

实例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

shell> mysqlreplicate —master=m_account@192.168.1.1:13001 \

—slave=slave_acc1@192.168.1.2:13001 —rpl–user=repl:slavepass –b

# master on 192.168.1.1: … connected.

# slave on 192.168.1.2: … connected.

# Checking for binary logging on master…

# Setting up replication…

# …done.

shell> mysqlreplicate —master=m_account@192.168.1.1:13001 \

—slave=slave_acc2@192.168.1.3:3306 —rpl–user=repl:slavepass –b

# master on 192.168.1.1: … connected.

# slave on 192.168.1.3: … connected.

# Checking for binary logging on master…

# Setting up replication…

# …done.

shell> mysqlrpladmin —master=m_account@192.168.1.1:13001 \

—slaves=slave_acc1@192.168.1.2:13001,slave_acc2@192.168.1.3:3306 health

# Checking privileges.

#

# Replication Topology Health:

+———————+————+————–+————+——————+———————————————+

| host| port| role| state| gtid_mode| health|

+———————+————+————–+————+——————+———————————————+

| 192.168.1.1| 13001| MASTER| UP| ON| OK|

| 192.168.1.2| 13001| SLAVE| UP| ON| Slavedelayis NNNseconds|

| 192.168.1.3| 3306| SLAVE| UP| ON| Slavedelayis NNNseconds|

+———————+————+————–+————+——————+———————————————+

# …done.

shell> mysqlrpladmin —master=m_account@192.168.1.1:13001 \

—slaves=slave_acc1@192.168.1.2:13001,slave_acc2@192.168.1.3:3306 health

# Checking privileges.

#

# Replication Topology Health:

+———————+————+————–+————+——————+————–+

| host| port| role| state| gtid_mode| health|

+———————+————+————–+————+——————+————–+

| 192.168.1.1| 13001| MASTER| UP| ON| OK|

| 192.168.1.2| 13001| SLAVE| UP| ON| OK|

| 192.168.1.3| 3306| SLAVE| UP| ON| OK|

+———————+————+————–+————+——————+————–+

# …done.

shell> mysqlrpladmin —master=m_account@192.168.1.1:13001 \

—slaves=slave_acc1@192.168.1.2:13001,slave_acc2@192.168.1.3:3306 \

—new–master=slave_acc1@localhost:13002 —demote–masterswitchover

# Checking privileges.

# Performing switchover from master at 192.168.1.1:13001 to slave at 192.168.1.2:13001.

# 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|

+———————+————+————–+————+——————+————–+

| 192.168.1.2| 13001| MASTER| UP| ON| OK|

| 192.168.1.1| 13001| SLAVE| UP| ON| OK|

| 192.168.1.3| 3306| SLAVE| UP| ON| OK|

+———————+————+————–+————+——————+————–+

在上面的例子中,使用mysqlreplicate 工具来设置现有的服务器和新增的服务器之间的复制拓扑结构。使用-b标记从主二进制日志的第一个事件开始复制。

然后,使用mysqlrpladmin 工具来指定主从服务器和使用health命令来检查复制的状态。由于有大量的二进制日志需要同步,新的从需要一段时间才赶得上主,因此会有延迟的健康信息。一段时间后,health列都是OK的状态。

同步完成后,再次使用mysqlrpladmin工具来切换到新主,使用 –new-master指定到server2,并且使用–demote-master选项将server1降级为slave,将server3成为server2的从。

权限

m_account 用户需要的权限有:对mysql数据库的SELECT 和 INSERT 权限,以及REPLICATION SLAVE, REPLICATION CLIENT ,GRANT OPTION权限。

slave_acc 用户需要SUPER 权限。

对于复制用户, –rpl-user选项使用的。要么自动创建要么以存在,需要有 REPLICATION SLAVE权限。

为了成功运行mysqlrpladmin 工具的health命令,m_account 需要额外的SUPER权限。

对于switchover 命令,所有的用户需要有SUPER, GRANT OPTION, SELECT, RELOAD, DROP, CREATE 和 REPLICATION SLAVE 权限。

小技巧

mysqlrpladmin 工具可以使用 –discover-slaves-login选项自动检测从,而不是手动指定从。

mysqlrpladmin 工具可以指定外部脚本在故障转移和切换操作前后执行,分别使用 –exec-before 和 –exec-after 选项。注意,在故障转移和切换操作后执行的脚本,也就是 –exec-after选项指定的脚本,执行的前提条件是故障转移和切换操作是成功的。

文章转载来自:ttlsa.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值