MHA 学习(二) 配置文件
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,一 配置 所有 主机的 ssh key 认证ssh-keygen -t rsassh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.103二 数据库
千家信息网最后更新 2025年11月13日MHA 学习(二) 配置文件一 配置 所有 主机的 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";
}
启动脚本
nohup masterha_manager --ignore_last_failover --remove_dead_master_conf --conf=/etc/mha/app1.cnf --remove_dead_master_conf < /dev/null > /var/log/mha/app1/app1.log 2>&1 &
检查复制
masterha_check_repl --conf=/etc/mha/app1.cnf
检查ssh
masterha_check_ssh --conf=/etc/mha/app1.cnf
检查 mha 状态
masterha_check_status --conf=/etc/mha/app1.cnf
切换完成后
进程就死掉了 重新修改配置文件
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";
}
启动脚本
nohup masterha_manager --ignore_last_failover --remove_dead_master_conf --conf=/etc/mha/app1.cnf --remove_dead_master_conf < /dev/null > /var/log/mha/app1/app1.log 2>&1 &
检查复制
masterha_check_repl --conf=/etc/mha/app1.cnf
检查ssh
masterha_check_ssh --conf=/etc/mha/app1.cnf
检查 mha 状态
masterha_check_status --conf=/etc/mha/app1.cnf
切换完成后
进程就死掉了 重新修改配置文件
检查
文件
配置
主机
数据
数据库
状态
脚本
进程
配额
切换
认证
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
wind资讯软件开发
安徽信息软件开发销售
南京crm软件开发中心
中国前沿技术数据库报告
地税系统 网络安全法
赤壁市旋并网络技术工作室
网络安全与黑客攻防宝典第3版
怎么区分数据库是读库还是写库
高斯数据库查看库
ATP网络安全概念
爱思助手怎么转移数据库
网络技术a在上海百首
工企数据库利润
我的世界服务器过期是怎么
将数据库驱动jar包导入
贵阳市网络安全知识在线答题活动
数据库system初始密码
余姚云端网络技术有限公司
哈尔滨立成通信软件开发
关于网络安全管理的实现的论文
为啥要买云服务器 云服
网络安全政治经济
服务器上ipmi 连交换机
软件开发项目奖金比例
本科论文分析数据库
数据库开发可以从事什么工作
内存数据库对比
使命召唤二战服务器设置
浏览网页用什么服务器
sql数据库实例怎么修改