设为首页 收藏本站
查看: 557|回复: 0

[经验分享] mysql热备+heartbeat集群

[复制链接]

尚未签到

发表于 2019-1-7 07:50:02 | 显示全部楼层 |阅读模式


1、环境说明
Master : 192.168.3.37
Slave: 192.168.3.38
V IP:192.168.3.55


2、mysql的安装(主备)
groupaddmysql
useradd -g  mysql -s /sbin/nologin -M mysql


tar -zxvf mysql-5.0.67.tar.gz
cd mysql-5.0.67
./configure --prefix=/usr/local/mysql --with-charset=gbk--with-extra-charset=all --enable-hread-safe-client --enable-local-infile--with-low-memory
Make && make install


chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf
  cp support-files/mysql.server /etc/init.d/mysqld
  

/usr/local/mysql/bin/mysql_install_db-–basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql


/usr/local/mysql/bin/mysqld_safe --user=mysql&


添加到系统服务
chkconfig --addmysqld
chkconfig--levels 2345 mysqld on


添加/usr/local/mysql/bin到环境变量PATH中
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile


设置数据库密码
service mysqld start
mysqladmin password 123456


开启root远程访问权限
mysql –p123456
mysql> grant all on *.* to root@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
mysql> quit


  2.1 主服务器上进行的操作
   启动mysql服务
       servicemysqld start
     通过命令行登录管理MySQL服务器
         mysql -uroot-p'new-password'授权给从数据库服务器192.168.3.38
       mysql> GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.3.38' identified by‘password’;

     查询主数据库状态
       Mysql>show master status;
       +------------------+----------+--------------+------------------+
        | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
       +------------------+----------+--------------+------------------+
       | mysql-bin.000005 | 261 | | |
        +------------------+----------+--------------+------------------+

     记录下 FILE Position 的值,在后面进行从服务器操作的时候需要用到

  2.2 配置从服务器
   修改从服务器的配置文件/etc/my.cnf
   将 server-id =1修改为server-id = 10,并确保这个ID没有被别的MySQL服务所使用。
     启动mysql服务
       service mysqld start

     通过命令行登录管理MySQL服务器
       mysql -uroot -p'new-password'

     执行同步SQL语句
       mysql> change master to
       master_host=’192.168.3.37’,
       master_user=’rep1’,
       master_password=’password’,
       master_log_file=’mysql-bin.000005’,
       master_log_pos=261;

     正确执行后启动Slave同步进程
      mysql> start slave;

     主从同步检查
      mysql> show slave status\G
     ==============================================
     * *************** 1. row *******************

  Slave_IO_State:
  Master_Host: 192.168.3.37
  Master_User: rep1
  Master_Port: 3306
  Connect_Retry: 60
  Master_Log_File: mysql-bin.000005
  Read_Master_Log_Pos: 415
  Relay_Log_File: localhost-relay-bin.000008
  Relay_Log_Pos: 561
  Relay_Master_Log_File: mysql-bin.000005
  Slave_IO_Running: YES
  Slave_SQL_Running: YES
  Replicate_Do_DB:
  ……………
省略若干……………
  Master_Server_Id: 1
  1 row in set (0.01 sec)
  ==============================================

其中Slave_IO_Running Slave_SQL_Running的值都必须为YES,才表明状态正常

如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理:
(1)
主数据库进行锁表操作,不让数据再进行写入动作
mysql> FLUSH TABLES WITH READ LOCK;

(2)查看主数据库状态
mysql> show master status;

(3)记录下FILE Position 的值。
将主服务器的数据文件(整个/opt/mysql/data目录)复制到从服务器,建议通过tar归档压缩后再传到从服务器解压。

(4)取消主数据库锁定
mysql> UNLOCK TABLES;

3、heartbeat的安装

(主备机一样,唯独ha.cf里面ucast那条信息)
两台机器都要安装双机软件libnet.tar.gzheartbeat-2.1.3.tar.gz
Groupaddhaclient
useradd -g haclienthacluster
tar -zxvf heartbeat-2.1.3.tar.gz
cd heartbeat-2.1.3
./ConfigureMe configure
make && make install


heartbeat配置

总共有三个文件需要配置:
ha.cf
监控配置文件
haresources
资源管理文件
authkeys
心跳线连接加密文件
1
、同步两台节点的时间


  •   rm -rf /etc/localtime
  •   \cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  •   yum install -y ntp
  •   ntpdate -d cn.pool.ntp.org
2、配置ha.cf


  •   vi /etc/ha.d/ha.cf

  •   debugfile /var/log/ha-debug                                 #打开错误日志报告
  •   keepalive 2                                                     #两秒检测一次心跳线连接
  •   deadtime 10                                                     #10 秒测试不到主服务器心跳线为有问题出现
  •   warntime 6                                                      #警告时间(最好在 2 10 之间)
  •   initdead 120                                                    #初始化启动时 120 秒无连接视为正常,或指定heartbeat
  •                                                                   #在启动时,需要等待120秒才去启动任何资源。
  •   

  •   udpport 694                                                     # udp 694 端口连接
  •   ucast eth0 192.168.3.38                                    #单播方式连接(主从都写对方的 ip 进行连接)
  •   node  master                                                   #声明主服(是主机名uname -n不是域名)
  •   node   slave                                                   #声明备服(是主机名uname -n不是域名)
  •   auto_failback on                                                #自动切换(主服恢复后可自动切换回来)
  •   ping_group group1 192.168.3.37 192.168.3.38 (ping对方和自己的,如果都ping不通则自己挂了,释放自己的资源).
  •   respawn hacluster /usr/lib/heartbeat/ipfail               #监控ipfail进程是否挂掉,如果挂掉就重启它
3、配置authkeys

vi /etc/ha.d/authkeys

   写入:


  •   auth 1
  •   1 crc
存盘退出,然后

#chmod 600 authkeys

4、创建检测脚本(本处如果没有个监测脚本hearbeat 无法启动)

vi /etc/init.d/test(内容如下)

#!/bin/bash

echo "" $>/dev/null

chmod 777 /etc/init.d/test

#vi /etc/ha.d/haresources(配置资源文件)

各主机这部分应完全相同。

master 192.168.3.55 test

指定 master 调用预先写好的一个测试脚本,系统附加一个虚拟IP

192.168.3.55 eth0:0

这里如果master 宕机后slave 可以新分配IP

192.168.10.200

(以下配置结合DRBD

配置haresources


  •   vi /etc/ha.d/haresources     
写入:


  •   masterIPaddr::192.168.3.55/24/eth0     drbddisk::r0 Filesystem::/dev/drbd1::/data::ext3
node1:master主机名
IPaddr::192.168.79.135/24/eth0:
设置虚拟IP
drbddisk::r0:
管理资源r0
Filesystem::/dev/drbd1::/data::ext3:
执行mountunmout操作
node2
配置基本相同,不同的是ha.cf中的192.168.3.38改为192.168.3.37)

5serviceheartbeat start
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660131-1-1.html 上篇帖子: DRDB之NFS+MySQL+Heartbeat高可用 下篇帖子: mysql高可用方案之HeartBeat+nfs
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表