MHA 学习(二) 配置文件
短信预约 -IT技能 免费直播动态提醒
一 配置 所有 主机的 ssh key 认证
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.103
二 数据库授权
grant all privileges on *.* TO mha@'192.168.%' IDENTIFIED BY 'test';
三 配额文件
/etc/masterha_default.cnf
[server default]
user=mha
password=test
ssh_user=root
master_binlog_dir= /zx/mysql/data
remote_workdir=/var/log/mha/app1
# secondary_check_script= masterha_secondary_check -s master1 -s master2
ping_interval=3
master_ip_failover_script=/etc/mha/scripts/master_ip_failover
# shutdown_script= /etc/mha/scripts/power_manager
# report_script= /etc/mha/scripts/send_master_failover_mail
#master_ip_online_change_script=/etc/mha/scripts/master_ip_online_change
[root@manager mha]# cat /etc/mha/app1.cnf
[server default]
manager_log=/var/log/mha/app1/manager.log
manager_workdir=/var/log/mha/app1.log
master_binlog_dir=/zx/mysql/data
password=test
ping_interval=2
repl_password=zhangxu
repl_user=repl_user
ssh_user=root
user=mha
[server1]
candidate_master=1
check_repl_delay=0
hostname=master2
port=3306
[server2]
candidate_master=1
check_repl_delay=0
hostname=master1
port=3306
[root@manager mha]# cat scripts/master_ip_failover
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use Getopt::Long;
my (
$command, $ssh_user, $orig_master_host, $orig_master_ip,
$orig_master_port, $new_master_host, $new_master_ip, $new_master_port
);
my $vip = '192.168.248.100'; # Virtual IP
my $gateway = '192.168.1.1';#Gateway IP
my $interface = 'eth2';
my $key = "1";
my $ssh_start_vip = "/sbin/ifconfig $interface:$key $vip;/sbin/arping -I $interface -c 3 -s $vip $gateway >/dev/null 2>&1";
my $ssh_stop_vip = "/sbin/ifconfig $interface:$key down";
GetOptions(
'command=s' => \$command,
'ssh_user=s' => \$ssh_user,
'orig_master_host=s' => \$orig_master_host,
'orig_master_ip=s' => \$orig_master_ip,
'orig_master_port=i' => \$orig_master_port,
'new_master_host=s' => \$new_master_host,
'new_master_ip=s' => \$new_master_ip,
'new_master_port=i' => \$new_master_port,
);
exit &main();
sub main {
print "\n\nIN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===\n\n";
if ( $command eq "stop" || $command eq "stopssh" ) {
# $orig_master_host, $orig_master_ip, $orig_master_port are passed.
# If you manage master ip address at global catalog database,
# invalidate orig_master_ip here.
my $exit_code = 1;
eval {
print "Disabling the VIP on old master: $orig_master_host \n";
&stop_vip();
$exit_code = 0;
};
if ($@) {
warn "Got Error: $@\n";
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "start" ) {
# all arguments are passed.
# If you manage master ip address at global catalog database,
# activate new_master_ip here.
# You can also grant write access (create user, set read_only=0, etc) here.
my $exit_code = 10;
eval {
print "Enabling the VIP - $vip on the new master - $new_master_host \n";
&start_vip();
$exit_code = 0;
};
if ($@) {
warn $@;
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "status" ) {
print "Checking the Status of the script.. OK \n";
`ssh $ssh_user\@$orig_master_host \" $ssh_start_vip \"`;
exit 0;
}
else {
&usage();
exit 1;
}
}
# A simple system call that enable the VIP on the new master
sub start_vip() {
`ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
# A simple system call that disable the VIP on the old_master
sub stop_vip() {
`ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}
sub usage {
print
"Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n";
}
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.103
二 数据库授权
grant all privileges on *.* TO mha@'192.168.%' IDENTIFIED BY 'test';
三 配额文件
/etc/masterha_default.cnf
[server default]
user=mha
password=test
ssh_user=root
master_binlog_dir= /zx/mysql/data
remote_workdir=/var/log/mha/app1
# secondary_check_script= masterha_secondary_check -s master1 -s master2
ping_interval=3
master_ip_failover_script=/etc/mha/scripts/master_ip_failover
# shutdown_script= /etc/mha/scripts/power_manager
# report_script= /etc/mha/scripts/send_master_failover_mail
#master_ip_online_change_script=/etc/mha/scripts/master_ip_online_change
[root@manager mha]# cat /etc/mha/app1.cnf
[server default]
manager_log=/var/log/mha/app1/manager.log
manager_workdir=/var/log/mha/app1.log
master_binlog_dir=/zx/mysql/data
password=test
ping_interval=2
repl_password=zhangxu
repl_user=repl_user
ssh_user=root
user=mha
[server1]
candidate_master=1
check_repl_delay=0
hostname=master2
port=3306
[server2]
candidate_master=1
check_repl_delay=0
hostname=master1
port=3306
[root@manager mha]# cat scripts/master_ip_failover
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use Getopt::Long;
my (
$command, $ssh_user, $orig_master_host, $orig_master_ip,
$orig_master_port, $new_master_host, $new_master_ip, $new_master_port
);
my $vip = '192.168.248.100'; # Virtual IP
my $gateway = '192.168.1.1';#Gateway IP
my $interface = 'eth2';
my $key = "1";
my $ssh_start_vip = "/sbin/ifconfig $interface:$key $vip;/sbin/arping -I $interface -c 3 -s $vip $gateway >/dev/null 2>&1";
my $ssh_stop_vip = "/sbin/ifconfig $interface:$key down";
GetOptions(
'command=s' => \$command,
'ssh_user=s' => \$ssh_user,
'orig_master_host=s' => \$orig_master_host,
'orig_master_ip=s' => \$orig_master_ip,
'orig_master_port=i' => \$orig_master_port,
'new_master_host=s' => \$new_master_host,
'new_master_ip=s' => \$new_master_ip,
'new_master_port=i' => \$new_master_port,
);
exit &main();
sub main {
print "\n\nIN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===\n\n";
if ( $command eq "stop" || $command eq "stopssh" ) {
# $orig_master_host, $orig_master_ip, $orig_master_port are passed.
# If you manage master ip address at global catalog database,
# invalidate orig_master_ip here.
my $exit_code = 1;
eval {
print "Disabling the VIP on old master: $orig_master_host \n";
&stop_vip();
$exit_code = 0;
};
if ($@) {
warn "Got Error: $@\n";
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "start" ) {
# all arguments are passed.
# If you manage master ip address at global catalog database,
# activate new_master_ip here.
# You can also grant write access (create user, set read_only=0, etc) here.
my $exit_code = 10;
eval {
print "Enabling the VIP - $vip on the new master - $new_master_host \n";
&start_vip();
$exit_code = 0;
};
if ($@) {
warn $@;
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "status" ) {
print "Checking the Status of the script.. OK \n";
`ssh $ssh_user\@$orig_master_host \" $ssh_start_vip \"`;
exit 0;
}
else {
&usage();
exit 1;
}
}
# A simple system call that enable the VIP on the new master
sub start_vip() {
`ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
# A simple system call that disable the VIP on the old_master
sub stop_vip() {
`ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}
sub usage {
"Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n";
}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
MHA 学习(二) 配置文件
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
2024-04-02
2024-04-02
数据库中间件DBLE学习(二) 学习配置schema.xml
前言一边有一个经常引诱我让我“娱乐至死”的视频,还有一个不停“鞭策“我让我快点学习的大BOSS。正是有这两种极端的爱才让我常常在自信中明白自己努力的方向。嗯,"人间不值得"!SCHEMA.XML介绍上一篇写了:数据库中间件DBLE学习(一) 基本介绍和快速搭建
2015-12-08
2024-04-02
2023-09-02
PyCharm学习笔记(二) 调试配置
选择PyCharm编译器注意工程默认使用的解释器可能是Pycharm自带的,而不是单独安装的。
2023-01-30
2024-04-02
2024-04-02
scrapy 爬虫学习二[中间件的学习]
scrapy源码解析参考连接:https://www.jianshu.com/p/d492adf17312 ,直接看大佬的就行了,这里便就不多说了。今天要学习的是:Scrapy框架中的download middlerware【下载中间件】用
2023-01-31
Android学习笔记(二)App工程文件分析
App工程文件分析
关于如何创建一个最简单的Android App请参照链接:
《 Android学习笔记(一)环境安装及第一个hello world 》 //www.jb51.net/article/52593.htm
创建完的工程文件如
2022-06-06
2024-04-02
Django学习之配置篇
MTVModel Template View数据库 模版文件 业务处理了解Django框架,功能齐全一.安装Django&Django基本配置安装Djangopip3 django配置Django1.配置Django环境变量D:\Progr
2023-01-30
学习python的第十二天(文件的详细操
一.文件打开常用的三总方式1.文件打开r模式只读不能写with open('a.txet','r',encoding='gbk') as a: # 文件路径 文件打开方式 解码方式 变量名 print(
2023-01-31
Python学习:文件(file)
内置open()函数会创建一个Python文件对象,可以作为计算机上的一个文件链接。在调用open()之后,可以通过调用返回文件对象的方法来读写相关外部文件。打开文件:output = open('C:\spam', 'w')
2023-01-31
Python学习 :文件操作
文件基本操作流程:一、 创建文件对象 二、 调用文件方法进行操作三、 关闭文件(注意:只有在关闭文件后,才会写入数据) fh = open('李白诗句','w',encoding='utf-8')fh.write('''弃我去者,昨日之日不
2023-01-30
Python学习—文件操作
1.文件基础知识1.文件是存储在外部介质上的数据的集合,文件的基本单位是字节,文件所含的字节数就是文件的长度。每个字节都有一个默认的位置,位置从0开始,文件头的位置就是0,文件尾的位置是文件内容结束后的后一个位置,该位置上没有文件内容,为空
2023-01-31
MySQL主从配置学习笔记
● 本打算买个云数据,为我的新项目做点安全保障。阿里云,腾讯云转了一圈,两个字太贵。不就数据有备份吗,既然这样那我不如自己来做备份。
● 家里有2个树莓派直接把mysql备份到他们上就好了,网上有教程,这就开整。在segmentfault
2022-05-12
Android学习之旅--安装配置
Android学习之旅--安装配置
一、Android studio的安装与配置
1、Android studio的下载
下载地址:http://www.android-studio.org/index.php
2、安装:一直next即可(
2022-06-06
Jspxcms二次开发的配置文件有哪些
本篇内容主要讲解“Jspxcms二次开发的配置文件有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jspxcms二次开发的配置文件有哪些”吧!1.1 配置文件1.1.1
2023-06-26
Python机器学习三大件之二pandas
一、Pandas
2008年WesMcKinney开发出的库
专门用于数据挖掘的开源python库
以Numpy为基础,借力Numpy模块在计算方面性能高的优势
基于matplotlib,能够简便的画图
独特的数据结构
二、数据结构Pand
2022-06-02
编程热搜
[mysql]mysql8修改root密码
use mysqlselect * from user where user="root";update user set password=password("mysql@2020") where user="root";ERROR 1064 (42000)MySQL专题3之MySQL管理
1、启动以及关闭MySQL服务器- 首先,我们需要通过以下命令来检查MySQL服务器是否已经启动:ps -ef | grep mysqld- 如果MySQL已经启动,以上命令将输出mysql进程列表,如果mysql未启动,你可以使用以下
编程资源站
- 资料下载
- 历年试题