MySQL MHA高可用架构部署实战
MySQL MHA(Master High Availability)是MySQL高可用架构的一种实现方式,它通过在主从复制的基础上,增加一个中间层来实现故障转移。当主服务器发生故障时,MHA可以自动检测并切换到备用服务器,从而保证服务的连续性。本文将详细介绍如何部署MySQL MHA高可用架构。
在部署MySQL MHA之前,需要准备以下环境:
在所有服务器上安装MySQL MHA。这里以CentOS 7为例,安装步骤如下:
安装Perl和MySQL客户端:
yum install perl-DBI perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Sys-Syslog perl-Parallel-ForkManager -y下载MySQL MHA源码包:
wget https://github.com/yoshinorim/mha4mysql-manager/archive/master.zipunzip master.zipcd mha4mysql-manager-master编译并安装MySQL MHA:
perl Makefile.PLmakemake install创建MHA配置文件:
在主服务器上创建配置文件/etc/masterha_manager.cnf,内容如下:
[server default]manager_workdir=/data/mysql/mhamanager_log=/data/mysql/mha/manager.logping_interval=1remote_workdir=/data/mysql/mhasecondary_check_script=check_mysqlha在从服务器1上创建配置文件/etc/masterha_check_repl.cnf,内容如下:
[server default]user=rootpassword=123456master_ip_failover_script=/usr/local/bin/masterha_master_ip_failover在从服务器2上创建配置文件/etc/masterha_check_repl.cnf,内容相同。
创建故障转移脚本:
在所有从服务器上创建故障转移脚本/usr/local/bin/masterha_master_ip_failover,内容如下:
#!/bin/bash# 该脚本用于在故障转移时修改主服务器的IP地址# 参数说明:# 1: 角色(master|slave)# 2: 当前主服务器的IP地址# 3: 当前从服务器的IP地址# 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: 当前从服务器的复制延迟# 72: 当前从服务器的复制错误日志# 73: 当前从服务器的复制运行状态# 74: 当前从服务器的复制优先级# 75: 当前从服务器的复制权重# 76: 当前从服务器的复制延迟# 77: 当前从服务器的复制错误日志# 78: 当前从服务器的复制运行状态# 79: 当前从服务器的复制优先级# 80: 当前从服务器的复制权重# 81: 当前从服务器的复制延迟# 82: 当前从服务器的复制错误日志# 83: 当前从服务器的复制运行状态# 84: 当前从服务器的复制优先级# 85: 当前从服务器的复制权重# 86: 当前从服务器的复制延迟# 87: 当前从服务器的复制错误日志# 88: 当前从服务器的复制运行状态# 89: 当前从服务器的复制优先级# 90: 当前从服务器的复制权重# 91: 当前从服务器的复制延迟# 92: 当前从服务器的复制错误日志# 93: 当前从服务器的复制运行状态# 94: 当前从服务器的复制优先级# 95: 当前从服务器的复制权重# 96: 当前从服务器的复制延迟# 97: 当前从服务器的复制错误日志# 98: 当前从服务器的复制运行状态# 99: 当前从服务器的复制优先级# 100: 当前从服务器的复制权重# 101: 当前从服务器的复制延迟# 102: 当前从服务器的复制错误日志# 103: 当前从服务器的复制运行状态# 104: 当前从服务器的复制优先级# 105: 当前从服务器的复制权重# 106: 当前从服务器的复制延迟# 107: 当前从服务器的复制错误日志# 108: 当前从服务器的复制运行状态# 109: 当前从服务器的复制优先级# 110: 当前从服务器的复制权重# 111: 当前从服务器的复制延迟# 112: 当前从服务器的复制错误日志# 113: 当前从服务器的复制运行状态# 114: 当前从服务器的复制优先级# 115: 当前从服务器的复制权重# 116: 当前从服务器的复制延迟# 117: 当前从服务器的复制错误日志# 118: 当前从服务器的复制运行状态# 119: 当前从服务器的复制优先级# 120: 当前从服务器的复制权重# 121: 当前从服务器的复制延迟# 122: 当前从服务器的复制错误日志# 123: 当前从服务器的复制运行状态# 124: 当前从服务器的复制优先级# 125: 当前从服务器的复制权重# 126: 当前从服务器的复制延迟# 127: 当前从服务器的复制错误日志# 128: 当前从服务器的复制运行状态# 129: 当前从服务器的复制优先级# 130: 当前从服务器的复制权重# 131: 当前从服务器的复制延迟# 132: 当前从服务器的复制错误日志# 133: 当前从服务器的复制运行状态# 134: 当前从服务器的复制优先级# 135: 当前从服务器的复制权重# 136: 当前从服务器的复制延迟# 137: 当前从服务器的复制错误日志# 138: 当前从服务器的复制运行状态# 139: 当前从服务器的复制优先级# 140: 当前从服务器的复制权重# 141: 当前从服务器的复制延迟# 142: 当前从服务器的复制错误日志# 143: 当前从服务器的复制运行状态# 144: 当前从服务器的复制优先级# 145: 当前从服务器的复制权重# 146: 当前从服务器的复制延迟# 147: 当前从服务器的复制错误日志# 148: 当前从服务器的复制运行状态# 149: 当前从服务器的复制优先级# 150: 当前从服务器的复制权重# 151: 当前从服务器的复制延迟# 152: 当前从服务器的复制错误日志# 153: 当前从服务器的复制运行状态# 154: 当前从服务器的复制优先级# 155: 当前从服务器的复制权重# 156: 当前从服务器的复制延迟# 157: 当前从服务器的复制错误日志# 158: 当前从服务器的复制运行状态# 159: 当前从服务器的复制优先级# 160: 当前从服务器的复制权重# 161: 当前从服务器的复制延迟# 162: 当前从服务器的复制错误日志# 163: 当前从服务器的复制运行状态# 164: 当前从服务器的复制优先级# 165: 当前从服务器的复制权重# 166: 当前从服务器的复制延迟# 167: 当前从服务器的复制错误日志# 168: 当前从服务器的复制运行状态# 169: 当前从服务器的复制优先级# 170: 当前从服务器的复制权重# 171: 当前从服务器的复制延迟# 172: 当前从服务器的复制错误日志# 173: 当前从服务器的复制运行状态# 174: 当前从服务器的复制优先级# 175: 当前从服务器的复制权重# 176: 当前从服务器的复制延迟# 177: 当前从服务器的复制错误日志# 178: 当前从服务器的复制运行状态# 179: 当前从服务器的复制优先级# 180: 当前从服务器的复制权重# 181: 当前从服务器的复制延迟# 182: 当前从服务器的复制错误日志# 183: 当前从服务器的复制运行状态# 184: 当前从服务器的复制优先级# 185: 当前从服务器的复制权重# 186: 当前从服务器的复制延迟# 187: 当前从服务器的复制错误日志# 188: 当前从服务器的复制运行状态# 189: 当前从服务器的复制优先级# 190: 当前从服务器的复制权重# 191: 当前从服务器的复制延迟# 192: 当前从服务器的复制错误日志# 193: 当前从服务器的复制运行状态# 194: 当前从服务器的复制优先级# 195: 当前从服务器的复制权重# 196: 当前从服务器的复制延迟# 197: 当前从服务器的复制错误日志# 198: 当前从服务器的复制运行状态# 199: 当前从服务器的复制优先级# 200: 当前从服务器的复制权重# 201: 当前从服务器的复制延迟# 202: 当前从服务器的复制错误日志# 203: 当前从服务器的复制运行状态# 204: 当前从服务器的复制优先级# 205: 当前从服务器的复制权重# 206: 当前从服务器的复制延迟# 207: 当前从服务器的复制错误日志# 208: 当前从服务器的复制运行状态# 209: 当前从服务器的复制优先级# 210: 当前从服务器的复制权重# 211: 当前从服务器的复制延迟# 212: 当前从服务器的复制错误日志# 213: 当前从服务器的复制运行状态# 214: 当前从服务器的复制优先级# 215: 当前从服务器的复制权重# 216: 当前从服务器的复制延迟# 217: 当前从服务器的复制错误日志# 218: 当前从服务器的复制运行状态# 219: 当前从服务器的复制优先级# 220: 当前从服务器的复制权重# 221: 当前从服务器的复制延迟# 222: 当前从服务器的复制错误日志# 223: 当前从服务器的复制运行状态# 224: 当前从服务器的复制优先级# 225: 当前从服务器的复制权重# 226: 当前从服务器的复制延迟# 227: 当前从服务器的复制错误日志# 228: 当前从服务器的复制运行状态# 229: 当前从服务器的复制优先级# 230: 当前从服务器的复制权重# 231: 当前从服务器的复制延迟# 232: 当前从服务器的复制错误日志# 233: 当前从服务器的复制运行状态# 234: 当前从服务器的复制优先级# 235: 当前从服务器的复制权重# 236: 当前从服务器的复制延迟# 237: 当前从服务器的复制错误日志# 238: 当前从服务器的复制运行状态# 239: 当前从服务器的复制优先级# 240: 当前从服务器的复制权重# 241: 当前从服务器的复制延迟# 242: 当前从服务器的复制错误日志# 243: 当前从服务器的复制运行状态# 244: 当前从服务器的复制优先级# 245: 当前从服务器的复制权重# 246: 当前从服务器的复制延迟# 247: 当前从服务器的复制错误日志# 248: 当前从服务器的复制运行状态# 249: 当前从服务器的复制优先级# 250: 当前从服务器的复制权重# 251: 当前从服务器的复制延迟# 252: 当前从服务器的复制错误日志# 253: 当前从服务器的复制运行状态# 254: 当前从服务器的复制优先级# 255: 当前从服务器的复制权重# 256: 当前从服务器的复制延迟# 257: 当前从服务器的复制错误日志# 258: 当前从服务器的复制运行状态# 259: 当前从服务器的复制优先级# 260: 当前从服务器的复制权重# 261: 当前从服务器的复制延迟# 262: 当前从服务器的复制错误日志# 263: 当前从服务器的复制运行状态# 264: 当前从服务器的复制优先级# 265: 当前从服务器的复制权重# 266: 当前从服务器的复制延迟# 267: 当前从服务器的复制错误日志# 268: 当前从服务器的复制运行状态# 269: 当前从服务器的复制优先级# 270: 当前从服务器的复制权重# 271: 当前从服务器的复制延迟# 272: 当前从服务器的复制错误日志# 273: 当前从服务器的复制运行状态# 274: 当前从服务器的复制优先级# 275: 当前从服务器的复制权重# 276: 当前从服务器的复制延迟# 277: 当前从服务器的复制错误日志# 278: 当前从服务器的复制运行状态# 279: 当前从服务器的复制优先级# 280: 当前从服务器的复制权重# 281: 当前从服务器的复制延迟# 282: 当前从服务器的复制错误日志# 283: 当前从服务器的复制运行状态# 284: 当前从服务器的复制优先级# 285: 当前从服务器的复制权重# 286: 当前从服务器的复制延迟# 287: 当前从服务器的复制错误日志# 288: 当前从服务器的复制运行状态# 289: 当前从服务器的复制优先级# 290: 当前从服务器的复制权重# 291: 当前从服务器的复制延迟# 292: 当前从服务器的复制错误日志# 293: 当前从服务器的复制运行状态# 294: 当前从服务器的复制优先级# 295: 当前从服务器的复制权重# 296: 当前从服务器的复制延迟# 297: 当前从服务器的复制错误日志# 298: 当前从服务器的复制运行状态# 299: 当前从服务器的复制优先级# 300: 当前从服务器的复制权重# 301: 当前从服务器的复制延迟# 302: 当前从服务器的复制错误日志# 303: 当前从服务器的复制运行状态# 304: 当前从服务器的复制优先级# 305: 当前从服务器的复制权重# 306: 当前从服务器的复制延迟# 307: 当前从服务器的复制错误日志# 308: 当前从服务器的复制运行状态# 309: 当前从服务器的复制优先级# 310: 当前从服务器的复制权重# 311: 当前从服务器的复制延迟# 312: 当前从服务器的复制错误日志# 313: 当前从服务器的复制运行状态# 314: 当前从服务器的复制优先级# 315: 当前从服务器的复制权重# 316: 当前从服务器的复制延迟# 317: 当前从服务器的复制错误日志# 318: 当前从服务器的复制运行状态# 319: 当前从服务器的复制优先级# 320: 当前从服务器的复制权重# 321: 当前从服务器的复制延迟# 322: 当前从服务器的复制错误日志# 323: 当前从服务器的复制运行状态# 324: 当前从服务器的复制优先级# 325: 当前从服务器的复制权重# 326: 当前从服务器的复制延迟# 327: 当前从服务器的复制错误日志# 328: 当前从服务器的复制运行状态# 329: 当前从服务器的复制优先级# 330: 当前从服务器的复制权重# 331: 当前从服务器的复制延迟# 332: 当前从服务器的复制错误日志# 333: 当前从服务器的复制运行状态# 334: 当前从服务器的复制优先级# 335: 当前从服务器的复制权重# 336: 当前从服务器的复制延迟# 337: 当前从服务器的复制错误日志# 338: 当前从服务器的复制运行状态# 339: 当前从服务器的复制优先级# 340: 当前从服务器的复制权重# 341: 当前从服务器的复制延迟# 342: 当前从服务器的复制错误日志# 343: 当前从服务器的复制运行状态# 344: 当前从服务器的复制优先级# 345: 当前从服务器的复制权重# 346: 当前从服务器的复制延迟# 347: 当前从服务器的复制错误日志# 348: 当前从服务器的复制运行状态# 349: 当前从服务器的复制优先级# 350: 当前从服务器的复制权重# 351: 当前从服务器的复制延迟# 352: 当前从服务器的复制错误日志# 353: 当前从服务器的复制运行状态# 354: 当前从服务器的复制优先级# 355: 当前从服务器的复制权重# 356: 当前从服务器的复制延迟# 357: 当前从服务器的复制错误日志# 358: 当前从服务器的复制运行状态# 359: 当前从服务器的复制优先级# 360: 当前从服务器的复制权重# 361: 当前从服务器的复制延迟# 362: 当前从服务器的复制错误日志# 363: 当前从服务器的复制运行状态# 364: 当前从服务器的复制优先级# 365: 当前从服务器的复制权重# 366: 当前从服务器的复制延迟# 367: 当前从服务器的复制错误日志# 368: 当前从服务器的复制运行状态# 369: 当前从服务器的复制优先级# 370: 当前从服务器的复制权重# 371: 当前从服务器的复制延迟# 372: 当前从服务器的复制错误日志# 373: 当前从服务器的复制运行状态# 374: 当前从服务器的复制优先级# 375: 当前从服务器的复制权重# 376: 当前从服务器的复制延迟# 377: 当前从服务器的复制错误日志# 378: 当前从服务器的复制运行状态# 379: 当前从服务器的复制优先级# 380: 当前从服务器的复制权重# 381: 当前从服务器的复制延迟# 382: 当前从服务器的复制错误日志# 383: 当前从服务器的复制运行状态# 384: 当前从服务器的复制优先级# 385: 当前从服务器的复制权重# 386: 当前从服务器的复制延迟# 387: 当前从服务器的复制错误日志# 388: 当前从服务器的复制运行状态# 389: 当前从服务器的复制优先级# 390: 当前从服务器的复制权重# 391: 当前从服务器的复制延迟# 392: 当前从服务器的复制错误日志# 393: 当前从服务器的复制运行状态# 394: 当前从服务器的复制优先级# 395: 当前从服务器的复制权重# 396: 当前从服务器的复制延迟# 397: 当前从服务器的复制错误日志# 398: 当前从服务器的复制运行状态# 399: 当前从服务器的复制优先级# 400: 当前从服务器的复制权重# 401: 当前从服务器的复制延迟# 402: 当前从服务器的复制错误日志# 403: 当前从服务器的复制运行状态# 404: 当前从服务器的复制优先级# 405: 当前从服务器的复制权重# 406: 当前从服务器的复制延迟# 407: 当前从服务器的复制错误日志# 408: 当前从服务器的复制运行状态# 409: 当前从服务器的复制优先级# 410: 当前从服务器的复制权重# 411: 当前从服务器的复制延迟# 412: 当前从服务器的复制错误日志# 413: 当前从服务器的复制运行状态# 414: 当前从服务器的复制优先级# 415: 当前从服务器的复制权重# 416: 当前从服务器的复制延迟# 417: 当前从服务器的复制错误日志# 418: 当前从服务器的复制运行状态# 419: 当前从服务器的复制优先级# 420: 当前从服务器的复制权重# 421: 当前从服务器的复制延迟# 422: 当前从服务器的复制错误日志# 423: 当前从服务器的复制运行状态# 424: 当前从服务器的复制优先级# 425: 当前从服务器的复制权重# 426: 当前从服务器的复制延迟# 427: 当前从服务器的复制错误日志# 428: 当前从服务器的复制运行状态# 429: 当前从服务器的复制优先级# 430: 当前从服务器的复制权重# 431: 当前从服务器的复制延迟# 432: 当前从服务器的复制错误日志# 433: 当前从服务器的复制运行状态# 434: 当前从服务器的复制优先级# 435: 当前从服务器的复制权重# 436: 当前从服务器的复制延迟# 437: 当前从服务器的复制错误日志# 438: 当前从服务器的复制运行状态# 439: 当前从服务器的复制优先级# 440: 当前从服务器的复制权重# 441: 当前从服务器的复制延迟# 442: 当前从服务器的复制错误日志# 443: 当前从服务器的复制运行状态# 444: 当前从服务器的复制优先级# 445: 当前从服务器的复制权重# 446: 当前从服务器的复制延迟# 447: 当前从服务器的复制错误日志# 448: 当前从服务器的复制运行状态# 449: 当前从服务器的复制优先级# 450: 当前从服务器的复制权重# 451: 当前从服务器的复制延迟# 452: 当前从服务器的复制错误日志# 453: 当前从服务器的复制运行状态# 454: 当前从服务器的复制优先级# 455: 当前从服务器的复制权重# 456: 当前从服务器的复制延迟# 457: 当前从服务器的复制错误日志# 458: 当前从服务器的复制运行状态# 459: 当前从服务器的复制优先级# 460: 当前从服务器的复制权重# 461: 当前从服务器的复制延迟# 462: 当前从服务器的复制错误日志# 463: 当前从服务器的复制运行状态# 464: 当前从服务器的复制优先级# 465: 当前从服务器的复制权重# 466: 当前从服务器的复制延迟# 467: 当前从服务器的复制错误日志# 468: 当前从服务器的复制运行状态# 469: 当前从服务器的复制优先级# 470: 当前从服务器的复制权重# 471: 当前从服务器的复制延迟# 472: 当前从服务器的复制错误日志# 473: 当前从服务器的复制运行状态# 474: 当前从服务器的复制优先级# 475: 当前从服务器的复制权重# 476: 当前从服务器的复制延迟# 477: 当前从服务器的复制错误日志# 478: 当前从服务器的复制运行状态# 479: 当前从服务器的复制优先级# 480: 当前从服务器的复制权重# 481: 当前从服务器的复制延迟# 482: 当前从服务器的复制错误日志# 483: 当前从服务器的复制运行状态# 484: 当前