尼古拉斯学习(二)配置文件

  一,配置,所有主机的,ssh密钥认证
  
  
  二,数据库授权,
  
  
  三配额文件,
  ,/etc/masterha_default.cnf 
  (服务器默认),
  ,用户=尼古拉斯
  ,密码=测试
  ,ssh_user=根
  ,master_binlog_dir=
/zx/mysql/数据   ,remote_workdir=/var/log/尼古拉斯/app1
  #,secondary_check_script=masterha_secondary_check - s master1 - s master2
  ,ping_interval=3
  ,master_ip_failover_script=/etc/尼古拉斯/脚本/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/尼古拉斯/脚本/master_ip_online_change
     
  
  
  [root@manager尼古拉斯)#猫/etc/mha/app1.cnf 
  (服务器默认)
  manager_log=/var/log/尼古拉斯/app1/经理。日志
  manager_workdir=/var/log/尼古拉斯/app1。日志
  master_binlog_dir=
/zx/mysql/数据   密码=测试
  ping_interval=2
  repl_password=zhangxu
  repl_user=repl_user
  ssh_user=根
  用户=尼古拉斯
  
  
  (server1)
  candidate_master=1
  check_repl_delay=0
  主机名=master2
  端口=3306
  
  
  [server2]
  candidate_master=1
  check_repl_delay=0
  主机名=master1
  端口=3306
  
  
  [root@manager尼古拉斯)#猫脚本/master_ip_failover
  # !/usr/bin/env perl
  使用严格的;
  使用致命的警告=比;“所有”,
  使用Getopt::长;
  我的(
  命令,ssh_user美元,orig_master_host美元,美元orig_master_ip,
  $ orig_master_port new_master_host美元new_master_ip美元,美元new_master_port
  ),
  我的贵宾美元=?92.168.248.100”;#虚拟IP
  我的网关美元=?92.168.1.1”;#网关IP
  我的美元界面=癳th2”;
  我的美元关键=?”;
  ssh_start_vip美元="/sbin/ifconfig接口:美元关键vip;美元/sbin/arp -界面- c 3美元- s vip网关在美元/dev/null 2祝辞,1”;
  我美元ssh_stop_vip="接口:美元/sbin/ifconfig关键”;
  GetOptions (
  '命令=s '=比;\ $命令,
  ssh_user=年代'=比;\ ssh_user美元,
  orig_master_host=年代'=比;\ orig_master_host美元,
  orig_master_ip=年代'=比;\ orig_master_ip美元,
  ' orig_master_port=我=比;\ orig_master_port美元,
  new_master_host=年代'=比;\ new_master_host美元,
  new_master_ip=年代'=比;\ new_master_ip美元,
  ' new_master_port=我=比;\ new_master_port美元,
  ),
  退出,main ();
  子主要{
  打印“\ n \ nIN脚本测试====ssh_stop_vip==ssh_start_vip美元===\ n \ n ";
  如果($命令eq“停止”| | $命令eq stopssh) {
  # $ orig_master_host orig_master_ip美元,美元orig_master_port传递。
  #如果你在全球管理大师ip地址目录数据库,
  # orig_master_ip失效。
  我的exit_code=1美元。
  eval {
  打印”禁用VIP大师:$ orig_master_host \ n ";
  ,stop_vip ();
  美元exit_code=0;
  };
  如果$ @ {
  警告“有错误:$ @ \ n”;
  退出exit_code美元;
  }
  退出exit_code美元;
  }
  elsif($命令eq“开始”){
  #所有参数传递。
  #如果你在全球管理大师ip地址目录数据库,
  #激活new_master_ip这里。
  #你也可以允许写访问(创建用户,设置read_only=0,等等)。
  我exit_code=10美元;
  eval {
  打印”使VIP -贵宾在新主人- new_master_host美元\ n”;
  ,start_vip ();
  美元exit_code=0;
  };
  如果$ @ {
  警告$ @,
  退出exit_code美元;
  }
  退出exit_code美元;
  }
  elsif eq($命令“状态”){
  打印”检查脚本的状态. .好的\ n”;
  “ssh ssh_user \ @ orig_master_host美元\“ssh_start_vip美元\”,
  退出0;
  }
  其他{
  和使用();
  退出1;
  }
  }
  #一个简单的系统调用,使新主人的VIP
  子start_vip () {
  “ssh ssh_user \ @ new_master_host美元\“ssh_start_vip美元\”,
  }

尼古拉斯学习(二)配置文件