• ADADADADAD

    MHA的搭建[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:12:04

    作者:文/会员上传

    简介:

    1,环境准备:DB:mysql-5.7.16MHA:mha4mysql-manager-0.56.tar.gz、mha4mysql-node-0.56.tar.gz、daemontools-0.76.tar.gzroleipmonitor10.99.121.206master10.99.121.209slave10

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    1,环境准备:

    DB:mysql-5.7.16

    MHA:mha4mysql-manager-0.56.tar.gz、mha4mysql-node-0.56.tar.gz、daemontools-0.76.tar.gz

    roleipmonitor10.99.121.206master10.99.121.209slave10.99.121.210slave10.99.121.213

    主从:

    在主上(10.99.121.206)创建复制用户与监控用户

    GRANTREPLICATIONSLAVEON*.*TO'repluser'@'%'IDENTIFIEDBY'123qwe';grantallprivilegeson*.*to'monitor'@'%'identifiedby'123qwe';

    在从上(10.99.121.210、10.99.121.213)配置

    changemastertomaster_host='10.99.121.209',master_port=3306,master_user='repluser',master_password='123qwe',master_log_file='binlog.000002',master_log_pos=1009;setglobalread_only=on;

    2,在所有的node上安装perl依赖、mha-node

    masterslaveinstallepelandperl-DBD-MySQLrpm-ivhhttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmyuminstallperl-DBD-MySQL-yyuminstall-yperl-develyuminstall-yperl-CPANmasterslaveinstallMHAnodetarxfmha4mysql-node-0.56.tar.gzcdmha4mysql-node-0.56perlMakefile.PLmake&&makeinstall

    安装完成后会在/usr/local/bin目录下生成以下脚本文件:

    apply_diff_relay_logs//识别差异的中继日志事件并将其差异的事件应用于其他的slave

    filter_mysqlbinlog //去除不必要的ROLLBACK事件(MHA已不再使用这个工具)

    purge_relay_logs//清除中继日志(不会阻塞SQL线程)

    save_binary_logs//保存和复制master的二进制日志

    3,安装MHA Manager,在MHA Manager的主机也是需要安装MHA Node,MHA Manger也依赖于perl模块

    rpm-ivhhttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmyuminstallperl-DBD-MySQL-yyuminstall-yperl-develperl-CPANyuminstallperl-DBD-MySQLperl-Config-Tinyperl-Log-Dispatchperl-Parallel-ForkManagerperl-Time-HiRes-ytarxfmha4mysql-node-0.56.tar.gzcdmha4mysql-node-0.56perlMakefile.PLmake&&makeinstalltarxfmha4mysql-manager-0.56.tar.gzcdmha4mysql-manager-0.56perlMakefile.PLmake&&makeinstallcd/apps/mha4mysql-manager-0.56/samples/scriptscp*/usr/local/bin/

    4,配置SSH登录无密码验证

    所有服务器上生成:

    ssh-keygen-trsa

    登陆10.99.121.206:

    ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.209ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.210ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.213

    登陆10.99.121.209

    ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.210ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.213

    登陆10.99.121.210

    ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.209ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.213

    登陆10.99.121.213

    ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.209ssh-copy-id-i/root/.ssh/id_rsa.pubroot@10.99.121.210

    5,配置MHA(登陆10.99.121.206)

    (1)创建MHA的工作目录,并且创建相关配置文件(在软件包解压后的目录里面有样例配置文件)

    mkdir-p/etc/masterhacpmha4mysql-manager-0.56/samples/conf/app1.cnf/etc/masterha/

    修改app1.cnf配置文件,修改后的文件内容如下

    [serverdefault]manager_workdir=/var/log/masterha/app1manager_log=/var/log/masterha/app1/manager.logmaster_binlog_dir=/data/mysql/mysql_datamaster_ip_failover_script=/usr/local/bin/master_ip_failoverster_ip_online_change_script=/usr/local/bin/master_ip_online_changepassword=123qweuser=monitorping_interval=1remote_workdir=/tmprepl_password=123qwerepl_user=repluserreport_script=/usr/local/bin/send_reportsecondary_check_script=/usr/local/bin/masterha_secondary_check-slenovo2-slenovo1--user=repluser--master_host=lenovo1--master_ip=10.99.121.209--master_port=3306shutdown_script=""ssh_user=root[server1]hostname=10.99.121.209port=3306[server2]hostname=10.99.121.210port=3306candidate_master=1check_repl_delay=0[server3]hostname=10.99.121.213port=3306

    (2)设置relay log的清除方式(在每个slave节点上)

    mysql-uroot-pLenovo123#@!-e"setglobalrelay_log_purge=0"mysql-uroot-pLenovo123#@!-e"setglobalrelay_log_purge=0"

    6,检查SSH配置(10.99.121.206 Monitor 监控节点上操作),如下

    [root@lenovo16masterha]#masterha_check_ssh--conf=/etc/masterha/app1.cnfThuMay2516:55:192017-[warning]Globalconfigurationfile/etc/masterha_default.cnfnotfound.Skipping.ThuMay2516:55:192017-[info]Readingapplicationdefaultconfigurationfrom/etc/masterha/app1.cnf..ThuMay2516:55:192017-[info]Readingserverconfigurationfrom/etc/masterha/app1.cnf..ThuMay2516:55:192017-[info]StartingSSHconnectiontests..ThuMay2516:55:202017-[debug]ThuMay2516:55:192017-[debug]ConnectingviaSSHfromroot@10.99.121.210(10.99.121.210:22)toroot@10.99.121.209(10.99.121.209:22)..ThuMay2516:55:202017-[debug]ok.ThuMay2516:55:202017-[debug]ConnectingviaSSHfromroot@10.99.121.210(10.99.121.210:22)toroot@10.99.121.213(10.99.121.213:22)..ThuMay2516:55:202017-[debug]ok.ThuMay2516:55:202017-[debug]ThuMay2516:55:192017-[debug]ConnectingviaSSHfromroot@10.99.121.209(10.99.121.209:22)toroot@10.99.121.210(10.99.121.210:22)..ThuMay2516:55:192017-[debug]ok.ThuMay2516:55:192017-[debug]ConnectingviaSSHfromroot@10.99.121.209(10.99.121.209:22)toroot@10.99.121.213(10.99.121.213:22)..ThuMay2516:55:202017-[debug]ok.ThuMay2516:55:212017-[debug]ThuMay2516:55:202017-[debug]ConnectingviaSSHfromroot@10.99.121.213(10.99.121.213:22)toroot@10.99.121.209(10.99.121.209:22)..ThuMay2516:55:202017-[debug]ok.ThuMay2516:55:202017-[debug]ConnectingviaSSHfromroot@10.99.121.213(10.99.121.213:22)toroot@10.99.121.210(10.99.121.210:22)..ThuMay2516:55:212017-[debug]ok.ThuMay2516:55:212017-[info]AllSSHconnectiontestspassedsuccessfully.

    7,检查整个复制环境状况(10.99.121.206 Monitor 监控节点上操作),如下

    masterha_check_repl--conf=/etc/masterha/app1.cnf

    如果遇到如下错误:

    ThuMay2516:58:302017-[info]Connectingtoroot@10.99.121.210(10.99.121.210:22)..Can'texec"mysqlbinlog":Nosuchfileordirectoryat/usr/local/share/perl5/MHA/BinlogManager.pmline106.mysqlbinlogversioncommandfailedwithrc1:0,pleaseverifyPATH,LD_LIBRARY_PATH,andclientoptionsat/usr/local/bin/apply_diff_relay_logsline493

    那在所有mysql数据库上执行:

    ln-s/usr/local/mysql/bin/mysqlbinlog/usr/local/bin/mysqlbinlogln-s/usr/local/mysql/bin/mysql/usr/local/bin/mysql

    8,开启MHA Manager监控(10.99.121.206 Monitor 监控节点上操作)如下

    [root@lenovo16apps]#masterha_check_status--conf=/etc/masterha/app1.cnfapp1isstopped(2:NOT_RUNNING).[root@lenovo16apps]#nohupmasterha_manager--conf=/etc/masterha/app1.cnf--remove_dead_master_conf--ignore_last_failover</dev/null>/var/log/masterha/app1/manager.log2>&1&[1]18587[root@lenovo16apps]#masterha_check_status--conf=/etc/masterha/app1.cnfapp1monitoringprogramisnowoninitializationphase(10:INITIALIZING_MONITOR).Waitforawhileandtrycheckingagain.[root@lenovo16apps]#masterha_check_status--conf=/etc/masterha/app1.cnfapp1(pid:18587)isrunning(0:PING_OK),master:10.99.121.209
    wgethttp://cr.yp.to/daemontools/daemontools-0.76.tar.gztar-zxvfdaemontools-0.76.tar.gzcdadmin/daemontools-0.76/package/install

    在src/conf-cc最后加上-include /usr/include/errno.h

    [root@lenovo16apps]#package/install

    最后会在admin/daemontools-0.76先建立command目录并存放相关命令,有什么命令我们可以这样查看:

    [root@lenovo16apps]#ls/apps/admin/daemontools-0.76/commandenvdirfghackpgrphacksetlocksoftlimitsvcsvscansvstattai64nlocalenvuidgidmultilogreadproctitlesetuidgidsupervisesvoksvscanboottai64n

    同时在/usr/local/bin下对上面这些命令建立了软连接方便我们执行

    另外创建监控/services目录,并在/etc/inittab下也有变化:

    SV:123456:respawn:/command/svscanboot



    它使用init的方式来守护自己

    [root@lenovo16apps]#mkdir-p/service/masterha_app1[root@lenovo16apps]#vim/service/masterha_app1/run#!bin/bashexecmasterha_manager--conf=/etc/mha/app1.cnf--wait_on_monitor_error=60--wait_on_failover_error=60>>/var/log/masterha/app1/app1.log2>&1[root@lenovo16apps]#chmod755/service/masterha_app1/run##启动monitoringsvc-u/service/masterha_app1##停止monitoringsvc-d/service/masterha_app1

    在此我们先不使用这种方式启动。


    MHA的搭建.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlmastermha