应用部署优化方案分享( 三 )


| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 154 | | |
+------------------+----------+--------------+------------------+
调整完毕后不要再操作主库,防止主库数据发生变化
4.从库执行同步命令
mysql>change master to master_host=‘192.168.0.1’,master_user= ‘replication ’,master_password=‘******',master_log_file='mysql-bin.000001',master_log_pos=154;
mysql>start slave; #开启同步
5.检查从库同步状态
【应用部署优化方案分享】show slave statusG;
# Slave_IO_Running及Slave_SQL_Running进程必须正常运行

应用部署优化方案分享

文章插图
 
主从同步参数优化
主从同步参数优化,修改my.cnf文件
1.参数进行忽略(从库配置文件)
当业务中出现无需同步的数据表时,可以选择replicate_wild_ignore_table=db.table参数进行忽略(从库配置文件)
2.跳过指定错误(从库配置文件)
slave-skip-errors = 1062,1053 #根据业务类型选择
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1050:数据表已存在,创建数据表失败
1051:数据表不存在,删除数据表失败
1054:字段不存在,或程序文件跟数据库有冲突
1060:字段重复,导致无法插入
1061:重复键名
1068:定义了多个主键
1094:位置线程ID
1146:数据表缺失,请恢复数据库
1053:复制过程中主服务器宕机
1062:主键冲突
3.删除同步日志(主库配置文件)
Master库中的同步日志需要及时删除
Expire_logs_days = 7 #删除7天前的同步日志
主从复制原理简介
 
应用部署优化方案分享

文章插图
 
 
  1. slave库手动执行change master to 语句连接master库,提供了连接的用户一切条件(user 、pwd、port、ip),并且让slave知道,二进制日志的起点位置(file名 position 号),同时开启start slave
  2. slave库的IO线程和主库的dump线程建立连接
  3. slave库根据change master to 语句提供的file名和position号,IO线程向主库发起binlog的请求
  4. master库dump线程根据从库的请求,将本地binlog发给slave库IO线程
  5. slave库IO线程接收binlog并存放到本地relay-log中
  6. slave库SQL线程应用relay-log,默认情况下,已经应用过的relay-log 会自动被清理
  • 主主同步架构介绍

应用部署优化方案分享

文章插图
 
由于keepalived会检测mysql运行状态,在重启mysql时注意,先停止keepalived服务,确认mysql运行正常时,再启动keepalived 。
主主配置方式和上文介绍的主从配置类似,即master复制slave数据,slave复制master数据 。
Keepalived实现自动切换
Keepalived是实现集群高可用的服务软件,通过虚拟路由冗余协议(vrrp),将N台提供相同服务的路由组成一个路由组,可以有一个master和多个backup,master上是对外提供服务的虚拟ip,当backup收不到master发送的vrrp包时就认为master宕掉,此时选举一个backup来充当master并重新绑定虚拟ip,来保证服务高可用性 。
1.用户自行下载相关版本并安装
# cd keepalived
# ./configure --prefix=/usr/local/keepalived (安装路径)
# make && make install
2.设置系统为系统服务方便启动停止
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
3.建议将keepalived设置为自启服务
chkconfig keepalived on
4.Keepalived配置管理
修改/etc/keepalived/keepalived.conf文件
5.编写keepalived执行脚本
注意:授权chmod +x /etc/keepalived/mysql_check.sh
6.可配置邮件发送提醒
编写sendmail.pl脚本,注意:授权chmod +x /etc/keepalived/sendmail.pl
7.keepalived配置文件
global_defs { #全局配置
notification_email { #定义报警邮件地址
root@localhost
}
notification_email_from root@localhost #定义发送邮件的地址
smtp_server 127.0.0.1 #邮箱服务器
smtp_connect_timeout 30 #定义超时时间
router_id LVS_DEVEL #定义路由标识信息,建议使用主机名


推荐阅读