首页 > 其他分享 >一主一从完美切换

一主一从完美切换

时间:2023-12-24 21:00:55浏览次数:34  
标签:slave 完美 host 一主一 master 切换 mysql MASTER 节点

在 MySQL 主从架构中,经常需要手动进行主从切换操作。以下是一个详细的脚本,用于将主节点切换为从节点,并确保无缝切换。这类场景可用于经常使用的一主一从架构,具体脚本如下:

mysqlChange.sh

#!/bin/bash

# 主节点和从节点的信息
master_host=$1 #"主节点IP"
slave_host=$2 #"从节点IP"
mysql_user="MySQL用户名"
mysql_password="MySQL密码"
mysql_port=3306

# 自定义虚拟 IP
virtual_ip=$3 #"192.168.1.100"

# 自定义虚拟 IP 的过程
echo "Creating virtual IP on the master..."
ssh $master_host "ifconfig eth0:0 $virtual_ip netmask 255.255.255.0 up"

# 获取原从节点的 file 和 position 信息
echo "Getting replication coordinates from the original slave..."
file_position=$(ssh $slave_host "mysql -u$mysql_user -p$mysql_password -e 'SHOW MASTER STATUS \G' | awk '/File/ {file=\$2} /Position/ {pos=\$2} END {print file\":\"pos}'")

# 手动切换主从角色
echo "Stopping replication on the slave..."
ssh $slave_host "mysql -u$mysql_user -p$mysql_password -e 'STOP SLAVE;'"

echo "Resetting master on the slave..."
ssh $slave_host "mysql -u$mysql_user -p$mysql_password -e 'RESET MASTER;'"

# 切换虚拟 IP
echo "Switching virtual IP addresses between master and slave..."
ssh $master_host "ifconfig eth0:0 down"
ssh $slave_host "ifconfig eth0:0 up $virtual_ip"

# 将主节点切换成从节点
echo "Stopping replication on the master and promoting the slave..."
ssh $master_host "mysql -u$mysql_user -p$mysql_password -e 'RESET SLAVE; RESET MASTER; CHANGE MASTER TO MASTER_HOST=\"$master_host\", MASTER_PORT=$mysql_port, MASTER_USER=\"$mysql_user\", MASTER_PASSWORD=\"$mysql_password\", MASTER_LOG_FILE=\"$(echo $file_position | cut -d':' -f1)\", MASTER_LOG_POS=$(echo $file_position | cut -d':' -f2); START SLAVE;'"

echo "Main and slave roles have been switched successfully!"

调用脚本

#!/bin/bash

# 主节点和从节点的信息
master_host="192.168.10.10"
slave_host="192.168.10.11"

# 自定义虚拟 IP
virtual_ip="192.168.1.100"

# 调用脚本
bash mysqlChange.sh $master_host $slave_host $virtual_ip

这个脚本实现了将主节点切换为从节点的流程,并在过程中确保了虚拟 IP 的切换和主从关系的正确建立。

标签:slave,完美,host,一主一,master,切换,mysql,MASTER,节点
From: https://blog.51cto.com/u_14316134/8957067

相关文章

  • 实现多账号切换,试试Line多开功能
    实现多账号切换,尝试Line多开功能引言:在当今社交媒体时代,人们经常需要同时管理多个社交账号。例如,一个人可能有多个Line账号,用于工作、个人和其他不同的用途。为了方便用户切换账号,许多应用程序已经开始提供多账号切换功能。本文将介绍如何实现Line的多账号切换功能,让用户能够更......
  • MySQL 8.0.32 InnoDB ReplicaSet 配置和手动切换
    1.环境准备主库:192.168.137.4mytest3从库:192.168.137.5mytest4MySQL:8.0.322.配置ReplicaSet实例启动mysqlshell#mysqlsh--uriroot@localhost--socket=/abce/mysql_data/mysql.sockMySQLShell8.0.32Copyright(c)2016,2023,Oracleand/oritsaffiliat......
  • 聊一聊 C# 线程切换后上下文都去了哪里
    一:背景1.讲故事总会有一些朋友是不是问一个问题,在Windows中线程做了上下文切换,请问被切的线程他的寄存器上下文都去了哪里?能不能给我挖出来?这个问题其实比较底层,如果对操作系统没有个体系层面的理解以及做过源码分析,其实很难说明白,这篇我们就从.NET高级调试的角度试着分析一......
  • 使用js和css实现选项卡切换
    HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><linkrel="stylesheet"hre......
  • 零代码敲敲云与钉钉的完美集成,打造智能办公新生态
    为满足企业对于高效沟通、协作和工作流程管理日益增长的需求,许多企业都在寻找能够与他们现有的工作平台无缝集成的工具。钉钉作为一款广受欢迎的企业通讯和协同工具,已经成为了众多企业的首选。目前敲敲云已于钉钉完美集成,通过这次集成,用户可以在钉钉中直接使用敲敲云的零代码功能......
  • postman 切换不同环境URL
    一、环境变量环境1和环境2VARIABLE一定一致,INITIAL和CURRENT_VALUE一致;二、配置URL把步骤一的VARIABLE拼接到其你去路径前面{{demoUrl}}三、切换环境右上角环境1和环境2进行切换,OK   ......
  • pnpm切换源后报错ERR_PNPM_REGISTRIES_MISMATCH
    工具都是有利有弊,使用pnpm过程中经常会出现一个错误:Thismodulesdirectorywascreatedusingthefollowingregistriesconfiguration:{"default":"https://registry.npmjs.org/"}.Thecurrentconfigurationis{"default":"https://registry.npm.ta......
  • Line多开,一键切换多个账号
    现如今,智能手机已经成为人们生活中不可或缺的工具,而社交软件也是我们日常生活中非常重要的一部分。其中,Line作为一款国际知名的通讯软件,备受大众喜爱。但是,对于一些需要管理多个账号的用户来说,每次切换账号都需要重新登录,非常麻烦。不过,现在有了Line多开功能,可以帮助用户轻松实现......
  • 已删除但未消失的图片(Excel与WPS切换时产生的问题)
    问题:一个完全空的工作簿为何会非常大?问题分析:将工作簿后缀名改成rar,打开..xl/media,可以看到有很多图片,这些图片造成了文件大。进一步的问题:这些图片哪里来的,藏在何处。过程:这是Excel与WPS操作同一工作簿产生的问题。第一步:使用WPS打开工作簿,在其中插入嵌入到单元格的图片第二步:保存......
  • 教你用Line多开工具实现多账号切换
    使用Line多开工具实现多账号切换教程引言:Line是一款备受欢迎的即时通讯应用程序,许多用户可能需要同时管理多个账号。为了方便用户切换不同的账号,本文将介绍如何使用Line多开工具来实现多账号切换。请注意,本文仅提供技术指导,并不鼓励任何违反软件使用条款或法律法规的行为。第一......