MHA 学习(二) 配置文件
发表于:2024-10-05 作者:千家信息网编辑
千家信息网最后更新 2024年10月05日,一 配置 所有 主机的 ssh key 认证ssh-keygen -t rsassh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.103二 数据库
千家信息网最后更新 2024年10月05日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安全错误
数据库的锁怎样保障安全
高校惠普合作软件开发
用云服务器做tiktok可以吗
文明与征服选哪个服务器
优佳网络技术有限公司
河南数据库日志审计解决方案
生产环境软件开发
修复硬盘录像机数据库会丢失
广东海迅网络技术有限工司
汽车网络技术发展趋势如何
仁人品创软件开发怀仁
空间数据库在各个行业的应用情况
美国硅谷高科技软件开发公司
计科网络安全物联网
零基础学网络安全工程师
梦幻西游新服务器怎么查
贵阳网络技术学校排名
建立数据库包括哪些数据文件
徐汇区创新软件开发业务流程
温江哪里有软件开发的
wifi服务器名称和地址怎么写
数据库表pom
新疆网络安全重要性
宽带连接属于哪种网络技术
vc 软件开发费用
答题数据库表如何设计
机关单位网络安全教育主要内容
关于网络安全的小品 简短
淮安市公安局网络安全保障支队
小米 服务器出错
高科技网络安全系列