第3天 一篇、MHA安装(单实例)

【2016年11月29日】 MHA安装

今天刚好做线上MAH,所以好好看了MHA相关的问题。写得与原版本有出处的地方,请去买书自个看哈!!

一、环境初始化

1.环境部署

MySQL主从从结构

VIP绑定

MHA部署

2.用户名创建及管理

3.创建一个库及初始化表结构

4.备份任务建立

+++++++++++++++++++++++++

环境介绍

test01 172.16.7.151 node01 Master

test02 172.16.7.152 node02 Slave

test03 172.16.7.153 管理节点

VIP 172.16.7.155

软件版本

mysql-5.7.14

mha-0.57

基本路径

/usr/local/mysql

mysqldir=/data/mysql/mysql_3306

tmpdir=/data/mysql/mysql_3306/tmp

logbin=/data/mysql/mysql_3306/logs

server-id ip最后一位+端口号

[1]. 环境部署

1) 安装mysql环境

1. 下载

	cd /data/server/tools && wget http://dev/mysql/com/get/Downloads/MySQL-5.7/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz

2. 解压

	cd /opt/ && mkdir mysql && cd mysql	tar -zxf /data/server/tools/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C .

3. 软连接

	cd /usr/local/ && ln -s /opt/mysql/mysql-5.7.14-linux-glibc2.5-x86_64 mysql	chown -R mysql:mysql /usr/local/mysql	#添加环境变量	echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile	source /etc/profile

4. 创建用户

	groupadd mysql	useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql

5. 根据配置文件,创建基本目录

	mkdir /data/mysql	mkdir /data/mysql/mysql_3306	cd /data/mysql/mysql_3306	mkdir {data,logs,tmp}	chown -R mysql:mysql /data/mysql/mysql_3306	创建配置文件	(请查看附件)

6. MySQL初始化

	[ MySQL 5.7 ]	cd /usr/local/mysql/	./bin/mysqld --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --initialize	# 初始化密码	# cat /data/mysql/mysql3306/data/error.log |grep password	# 2016 ...... [Note] A temporary password is generated for [email protected]: DfmzxoGVr0=l	# --initialize-insecure (初始化没有密码)	[ MySQL 5.5/5.6]	./scripts/mysql_install_db --defaults-file=/data/mysql/mysql_3306/my_3306.cnf

7.创建启动脚本

(1)自带脚本

	cd /usr/local/mysql/	support-files/mysql.server /etc/init.d/mysql 	#启动、关闭	/etc/init.d/mysql start|stop|restart

(2)手工脚本

	cd /data/mysql/mysql_3306/	echo "/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql_3306/my_3306.cnf >/dev/null &" >start.sh	echo "/usr/local/mysql/bin/mysqladmin -S /data/mysql/mysql_3306/mysql.sock shutdown" >stop.sh

8. 登录初始化

	mysql -S /data/mysql/mysql_3306/mysql.sock -uroot -p(在初始化时自动生成)	alter user user() identified by "";  #设置密码为空

9. 创建用户

	grant all privileges on *.* to ‘admin‘@‘%‘ identified by ‘123456‘;	grant replication slave,replication client on *.* to ‘repl‘@‘%‘ identified by ‘repl‘;	cninfo(select,update,delete)

2) 服务器之间建立主从关系

	chang master to master_host=‘172.16.7.151‘,master_user=‘repl‘,master_port=3306,master_log_file=‘mysql-bin.000001‘,master_log_pos=154;	start slave;			

3) 在管理节点上安装mha

	yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-CPAN perl-*	* rpm安装	https://code.google.com/p/mysql-master-ha/	yum localinstall mha4*.rpm 	rpm -ql  mha4mysql-manager-0.56-0.el6.noarch

* tar安装

	tar -zxf mha4mysql-node-0.57.tar.gz	cd mha4mysql-node-0.57	perl Makefile.PL 	make && make install	cd ../	tar -zxf mha4mysql-manager-0.57.tar.gz	cd mha4mysql-manager-0.57	perl Makefile.PL 	make && make install		

4) 在master和slave节点安装node

* tar安装

	yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager	tar -zxf mha4mysql-node-0.57.tar.gz 	cd mha4mysql-node-0.57	perl Makefile.PL	make && make instal

* 产生ssh-key

将三台服务器SSH通过密钥认证

* 手工加载vip地址(在Master节点上手工执行)

/etc/init_vip.sh

#在master上手工加载虚拟VIP,如若没有加载,启动管理进程时将报错。

5) 在管理节点上传文件

* 检测文件

	/usr/local/bin/master_ip_failover 	/usr/local/bin/master_ip_online_change

* 配置文件

/etc/app1.cnf

6) 启动

	nohup /usr/local/bin/masterha_manager --conf=/etc/app1.cnf --ignore_last_failover </dev/null >/var/log/masterha/manager.log 2>&1 &

# 检测是否启动成功

masterha_check_status --conf=/etc/app1.cnf

# 查看状态信息

masterha_master_monitor --conf=/etc/app1.cnf

# 关闭MHA监控进程

masterha_stop --conf=/etc/app1.cnf

* 常用命令:

#manager端命令
masterha_manager#复制启动MHA进程
masterha_master_switch#监控守护进程,将故障的master进行转移
masterha_master_monitor#监控守护进程,判断master是否崩溃
#node节点命令
save_binary_logs#保存和拷贝死掉的master上的binlog
filter_mysqlbinlog#该脚本在新版本里废弃掉了
purge_relay_logs#删除sql_thread线程执行完的relay log
apply_diff_relay_logs#识别差异binlog和relay log并应用

7) MHA架构注意事项

1. 防止网络抖动误切换(脑裂)造成数据不一致,VIP没有采用keepalived,就是怕存在网络抖动问题。如果出现脑裂,那么从库会抢夺VIP,由于主库和从库都有VIP,会造成IP冲突,影响业务。

Keepalived只能实现一个节点的监控,而通过自带脚本可以实现两个节点的监控

2. SSH

* 修改默认端口

master_ip_failover
master_ip_online_change
# MHA::ManagerUtil::exec_ssh_cmd( $orig_master_ip, ‘12345‘, "ip addr del 192.168.143.200/32 dev em2", undef 
# 替换掉所有默认22端口
# em2 替换成本机网卡即可

* 解决ssh有时会出现连接慢或不通的情况

grep ‘ConnectTimeout‘ /etc/ssh/ssh_config 
ConnectTimeout 3
# 设置ssh连接超时时间

3. 死掉的master如何与新的Master建立同步复制关系?

在日志中找到CHANGE MASTER TO执行,即可建立新同步复制关系:
Tue Nov 29 17:00:50 2016 - [info]  All other slaves should start replication from here. Statement should be: CHANGE MASTER TO MASTER_HOST=‘VCrawlerDB-S or 192.168.143.242‘, MASTER_PORT=3307, MASTER_LOG_FILE=‘mysql-bin.000005‘, MASTER_LOG_POS=658, MASTER_USER=‘sys_repl‘, MASTER_PASSWORD=‘xxx‘;

4. MHA结合半同步复制(semi replication)时应注意:

将DB服务器通过VLAN划分为一个独立网段,与应用隔离。(由于MHA是基于ssh公私钥认证的,一般服务器是禁止SSH互通,以避免黑客入侵)

5. MHA 0.56不支持MariaDB 10的GTID复制,仅支持甲骨文MySQL的GTID复制

8) 经验

1) MHA无法回切

2) master VIP需要自己手动配置

MHA多实例也很简单,下次再更新

时间: 2024-10-06 00:28:33

第3天 一篇、MHA安装(单实例)的相关文章

安装lamp之 一键安装单实例mysql

#!/bin/sh #一键安装单实例mysql #xiaogao 20190921 #创建相关mysql用户 groupadd mysql useradd -s /sbin/nologin -g mysql -M mysql tail -1 /etc/passwd #安装mysql依赖库 yum -y install ncurses-devel #开启安装mysql,记得先上传安装包到/home/lvnian/tools/ cd /home/lvnian/tools/ tar zxf mysql

centos6.5安装单实例mysql

mysql官网下载地址:http://downloads.mysql.com/archives/community/ 选择x64源码安装包进行下载: 将安装文件放在/usr/local/src/下 卸载和删除mysql原有的相关内容: userdel -r mysql groudel mysql find / -name "mysql" -exec rm -rf {} \; 新建mysql用户.用户组: groupadd mysql useradd -s /sbin/nologin -

mysql-5.6.31安装(单实例 Linux)

安装版本:mysql-5.6.31 安装环境:Linux RHEL6.5.x86 安装要求:单实例,端口为默认:3306              (1) 要求安装Mysql数据库版本号及包名为:mysql-5.6.31.tar.gz              (2) 安装目录为/usr/local/mysql              (3) 数据存储目录为/data/mysqldb/              (4) 配置文件存放为/etc/my.cnf              (5) 用

Linux环境下安装单实例MySQL 5.7

一.安装环境 1.操作系统版本:CentOS 7.5 2.MySQL版本:5.7.22(社区版) 3.MySQL安装包:mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 二.安装步骤 1.检查系统中是否安装了其他版本的MySQL(root用户) 首先检查系统中是否安装了其他版本的MySQL,使用以下命令进行检查: yum list installed | grep mysql yum list installed | grep mariadb MariaDB数

MySQL系列之一键安装脚本----单实例/多实例

最近在搞MySQL,由于经常测试一些东西.因此,就写了一个一键安装脚本. 脚本用途: 用于在CentOS/RHEL 6.x系统上快速部署出Mysql的单实例或者多实例环境 脚本说明: 该脚本运行情况良好 针对脚本中,每一步命令执行的正误判断以及提醒非常醒目,可协助执行者快速定位错误源 脚本诸多内容都以声明变量,增加了脚本的灵活性和扩展性 脚本以做模块化处理,对应功能对应函数,方便SA快速更改和了解该脚本 该脚本使用注意事项: 1.能够通公网或者mysql源码包已经放置到/usr/local/sr

oracle 11.2.0.4单实例文件系统安装与补丁

[TOC] 一,预安装处理 1.版本准备 操作系统:RHEL 6.5 数据库版本:Oracle 11.2.0.4 相关包:p13390677_112040_Linux-x86-64_1of7.zip              p13390677_112040_Linux-x86-64_2of7.zip              p21352635_112040_Linux-x86-64.zip              OPatch-p6880880_112000_Linux-x86-64.zi

CENTOS6.6上搭建单实例ORACLE12C

本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 自己在centos6.6上搭建的单实例oracle12c 由于搭建过程有些不好写,所以图片偏多 *由于截图不规则导致排版有点乱,已经安装过来了,有些截图不能回头截图了,见谅 oracle软件与linux 认证版本 检查硬件要求(Check Hardware Requirements) Check CPU grep "model name" /pro

Oracle - 给rac创建单实例dg,并做主从切换

一.概述 本文将介绍如何给rac搭建单节点的dg,以及如何对其进行角色转换.预先具备的知识(rac搭建,单实例-单实例dg搭建) 二.实验环境介绍 主库rac(已安装rac,并已有数据库orcl)rac1:192.168.56.11,sid1:orcl1,version:11.2.0.4rac2:192.168.56.12,sid2:orcl2,version:11.2.0.4 从库(已安装单实例数据库软件,无数据库实例)oradg:192.168.56.102,sid:orcldg,versi

Linux平台达梦数据库V7单实例安装方式之图形方式

一 前言 我们在学习任何一个应用时,了解它的最初步骤通常是学会如何进行安装配置,后序才去关心如何使用,学习达梦数据库也是如此,而达梦数据库的安装提供了多种方式,接下来会一一介绍每种安装方式,达梦数据库支持多个操作系统平台的安装,本篇主要介绍Linux平台下的图形方式安装. 二 安装需求 2.1 硬件需求 用户应根据 DM 及应用系统的需求来选择合适的硬件配置,如 CPU 的指标.内存及磁盘容量等.档次一般应尽可能高一些,尤其是作为数据库服务器的机器,基于 Java 的程序运行时最好有较大的内存.