x95527 发表于 2016-03-01 20:58

mysql+san双机部署

mysql 加磁阵,数据目录指向磁阵,两台mysql该如何安装?   安装过一次,没有成功。

例如A执行了install_db ,那么B 是否需要执行,尝试了一下,好像都不行。求指导。

Shell_HAT 发表于 2016-03-03 12:52

能否把具体的操作步骤和试验结果发出来看看

x95527 发表于 2016-03-03 13:32

重新编译了下,基本可行了。

但是有个新问题,就是挂载磁阵后,磁阵上的数据库文件属性一直变,经常需要挂载完成后重新chown修改。是否有遇见过?


回复 2# Shell_HAT


   

Shell_HAT 发表于 2016-03-03 15:39

回复 3# x95527


如何变化的?文件owner从mysql变成root了吗?
两台机器上的数据库进程的owner是mysql吗?

x95527 发表于 2016-03-04 10:49

挂载的时候有时 属组是几个数字,有时又是root。   
我在脚本中添加了修 改属性命令,现在好用了 。
                  mount /dev/mapper/mpathbp1 /data/mysqldata
                  chown -R mysql:mysql /data/mysqldata
                  service mysqld start


查了下mount,没有找到指定挂载盘上文件属性的功能。不知道您这边是否有好的建议?


回复 4# Shell_HAT


   

x95527 发表于 2016-03-04 10:51

贴一下相关脚本,交流交流:

keepalived.conf配置文件修改:
! Configuration File for keepalived

#此部分为邮件通知功能,当keepalived发生切换时,会发通知邮件到制定邮箱。
global_defs {
   notification_email {
   acassen@firewall.loc
   failover@firewall.loc
   sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}


vrrp_instance VI_1 {
    state BACKUP
    interfacebond2
    virtual_router_id 248
    priority 98
    advert_int 1
    authentication {
      auth_type PASS
      auth_pass xxxx
    }
    virtual_ipaddress {
    10.0.240.248
    }

}

virtual_server 10.0.240.248 3306 {
    delay_loop 2
    lb_algo rr
    lb_kind DR

    persistence_timeout 50
    protocol TCP

    real_server 10.0.240.247 3306{
      weight 3
#当业务监测失败,则会执行notifydown指定的脚本。
    notify_down /data/scripts/keepalived_checkmysql.sh
      TCP_CHECK {
         connect_timeout 10

      nb_get_retry 3

      delay_before_retry 3

      connect_port 3306

         }
    }
}



#keepalived_checkmysql.sh脚本。
cat /data/scripts/keepalived_checkmysql.sh
#!/bin/bash
ip a|grep 10.0.240.248
if [ $? -eq 0 ];then
   service mysqldstop
   /etc/init.d/keepalived stop
   umount /data/mysqldata
fi





###双机自定义监控脚本
cat mysqldaemon.sh
#!/bin/bash

#如果vip在,判断mysql状态,如果无法使用,则挂载磁阵,启动mysql。
ip a|grep 10.0.240.248 && mysql -uroot -p123456 -e "show status"
if [ $? -eq 0 ];then
    exit ;
else
    mysql -uroot -p123456 -e "show status"
    if [ $? -ne 0 ];then
      ip a|grep 10.0.240.248
          if [ $? -eq 0 ];then
                  mount /dev/mapper/mpathbp1 /data/mysqldata
                  chown -R mysql:mysql /data/mysqldata
                  service mysqld start
            fi
      fi
fi

#如果不是vip,那么检查mysql和磁阵状态,如果mysql和磁阵都在用,那么就stopmysql,umount 磁阵
ip a|grep 10.0.240.248
if [ $? -ne 0 ] ;then
       mysql -uroot -p123456 -e "show status"
      if [ $? -eq 0 ];then
      service mysqld stop
      umount /dev/mapper/mpathbp1
      fi
fi


crontab每分钟执行一次 mysqldaemon.sh ,保障ip切换时,服务启动下线。



#############################################################################################################


回复 4# Shell_HAT


   

Shell_HAT 发表于 2016-03-07 14:51

回复 6# x95527


可以给master1的keepalived.conf里面加个参数:
nopreempt

如果数据库支持的话,可以考虑用mysql_config_editor设置加密登陆文件,不要把用户名密码明文写在脚本里面。
页: [1]
查看完整版本: mysql+san双机部署