mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡
生活随笔
收集整理的這篇文章主要介紹了
mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@test1 ~]# yum install libtermcap? libtermcap-devel imake? autoconf?? automake libtool? m4 [root@test1 ~]# useradd -M? -s /sbin/nologin? mysql [root@test1 ~]# mkdir /usr/local/mysql [root@test1 ~]# tar zxvf mysql-5.1.70.tar.gz [root@test1 ~]# cd? mysql-5.1.70 [root@test1 mysql-5.1.70]# ./configure --prefix=/usr/local/mysql?? --enable-assembler? --with-client-ldflags=-all-static?--with-unix-socket-path=/tmp --with-charset=utf8?? --enable-thread-safe-client --with-pthread?? --without-debug? --with-big-tables? --enable-community-features?? --enable-profiling?? --enable-local-infile? --with-fast-mutexes?? --with-plugins=partition,federated,ndbcluster,innobase,csv,blackhole,myisam,innodb_plugin [root@test1 mysql-5.1.70]#make [root@test1 mysql-5.1.70]#strip sql/mysqld [root@test1 mysql-5.1.70]#makeinstall [root@test1 mysql-5.1.70]# cp support-files/my-medium.cnf??? /etc/my.cnf [root@test1 mysql-5.1.70]# /usr/local/mysql/bin/mysql_install_db --user=mysql [root@test1 mysql-5.1.70]# echo?"PATH=\"/usr/local/mysql/bin:\$PATH\"">> /etc/profile [root@test1 mysql-5.1.70]# export PATH="/usr/local/mysql/bin:$PATH" |
1.首先停掉Slave服務:slavestop 2.到主服務器上查看主機狀態:
記錄File和Position對應的值。
mysql>showmasterstatus;
+------------------+-----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+-----------+--------------+------------------+
|mysql-bin.000020|135617781|||
+------------------+-----------+--------------+------------------+
1rowinset(0.00sec) 3.到slave服務器上執行手動同步:
mysql>changemasterto
>master_host='192.168.46.131',
>master_user='chenzhongyang',
>master_password='chenzhongyang',
>master_port=3306,
>master_log_file='mysql-bin.000020',
>master_log_pos=135617781;
1rowinset(0.00sec)
mysql>slavestart;
1rowinset(0.00sec)
再次查看slave狀態發現:
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
...
Seconds_Behind_Master:0
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@test1 ]# yum install -y openssl-devel [root@test1 ~]# wget? http://www.keepalived.org/software/keepalived-1.2.1.tar.gz [root@test1 ~]# tar zxvf keepalived-1.2.1.tar.gz [root@test1 ~]# cd keepalived-1.2.1 [root@test1 keepalived-1.2.1]# ./configure --prefix=/usr/local/keepalived [root@test1 keepalived-1.2.1]# make && make install [root@test1 ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived? /etc/sysconfig/ [root@test1 ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived? /etc/init.d/ [root@test1 ~]# mkdir? /etc/keepalived [root@test1 ~]# cp? /usr/local/keepalived/etc/keepalived? /keepalived.conf? /etc/keepalived/ [root@test1 ~]# ln -s? /usr/local/keepalived/sbin/keepalived? /usr/sbin/ [root@test1 ~]# service keepalived start Starting keepalived:?????????????????????????????????????? [? OK? ] |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | ! Configuration File?for?keepalived global_defs { notification_email { root@localhost } notification_email_from? root@localhost smtp_server?192.168.46.131 smtp_connect_timeout?30 router_id LVS_MASTER } vrrp_instance VI_1 { state MASTER??????//備庫為BACKUP interface?eth2?????//通過的網卡 virtual_router_id?51 priority?100??????//備庫為99 advert_int?1 authentication { auth_type PASS auth_pass?1111 } virtual_ipaddress { 192.168.46.100 } } virtual_server?192.168.46.100?3306?{ delay_loop?30 lb_algo rr lb_kind DR persistence_timeout?50 protocol TCP real_server?192.168.46.131?3306?{ weight?1 MISC_CHECK{ misc_path?"/etc/keepalived/check_slave.pl 192.168.46.131" misc_dynamic } } real_server?192.168.46.130?3306?{ weight?1 MISC_CHECK{ misc_path?"/etc/keepalived/check_slave.pl 192.168.46.130" misc_dynamic } } } } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #!/usr/bin/perl -w use?DBI; use?DBD::mysql; # CONFIG VARIABLES $SBM?= 120; $db?=?"test"; $host?=?$ARGV[0]; $port?= 3306; $user?=?"root"; $pw?=?"mysql"; # SQL query $query?=?"show slave status"; $dbh?= DBI->connect("DBI:mysql:$db:$host:$port",?$user,?$pw, {?RaiseError?=> 0,PrintError?=> 0 }); if?(!defined($dbh)) { exit?1; } $sqlQuery?=?$dbh->prepare($query); $sqlQuery->execute; $Slave_IO_Running?=??""; $Slave_SQL_Running?=?""; $Seconds_Behind_Master?=?""; while?(my?$ref?=?$sqlQuery->fetchrow_hashref()) { $Slave_IO_Running?=?$ref->{'Slave_IO_Running'}; $Slave_SQL_Running?=?$ref->{'Slave_SQL_Running'}; $Seconds_Behind_Master?=?$ref->{'Seconds_Behind_Master'}; } $sqlQuery->finish; $dbh->disconnect(); if?(?$Slave_IO_Running?eq?"No"?||?$Slave_SQL_Running?eq?"No"?) { exit?1; }?else?{ if?(?$Seconds_Behind_Master?>?$SBM?) { exit?1; }?else?{ exit?0; } } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | [root@test1 ~]# yum install -y ipvsadm [root@test1 ~]# lsmod? |grep ip_vs [root@test1 ~]# modprobe? ip_vs [root@test1 ~]# lsmod? |grep ip_vs ip_vs?????????????????122241??0 這里不能靠進程來判斷是不是加載了ip_vs模塊,因為這里就是一個命令,沒有產生進程。 vim /etc/init.d/lvsdrrip #!/bin/bash #DR server VIP=192.168.46.100 case?"$1"?in start) echo?"start LVS of DR" /sbin/ifconfig lo:0?$VIP broadcast $VIP netmask?255.255.255.255?up /sbin/route add -host $VIP dev lo:0 echo?"1"?> /proc/sys/net/ipv4/conf/lo/arp_ignore echo?"2"?> /proc/sys/net/ipv4/conf/lo/arp_announce echo?"1"?> /proc/sys/net/ipv4/conf/all/arp_ignore echo?"2"?> /proc/sys/net/ipv4/conf/all/arp_announce ;; stop) echo?"stop LVS of DR" /sbin/ifconfig lo:0?down echo?"0"?> /proc/sys/net/ipv4/conf/lo/arp_ignore echo?"0"?> /proc/sys/net/ipv4/conf/lo/arp_announce echo?"0"?> /proc/sys/net/ipv4/conf/all/arp_ignore echo?"0"?> /proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo?"Usage:$0 {start|stop}" esac exit 1 |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@test3 ~]# vim? /etc/init.d/lvsdr #!/bin/bash VIP=192.168.46.100 RIP1=192.168.46.131 RIP2=192.168.46.130 case?"$1"?in start) echo?"start LVS of DirectorServer DR" /sbin/iptables -F /sbin/ipvsadm -C /sbin/ifconfig eth0:0?$VIP broadcast $VIP? netmask?255.255.255.0??up /sbin/ipvsadm? -A -t $VIP:3306??-s rr /sbin/ipvsadm? -a -t $VIP:3306??-r? $RIP1 -g /sbin/ipvsadm? -a -t $VIP:3306??-r? $RIP2 -g /sbin/ipvsadm ;; stop) echo?"stop? LVS of DirectorServer DR" echo?"0"?>/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0?down ;; *) [root@test3? ~]#chown +x /etc/init.d/lvsdr |
from:?http://wolfword.blog.51cto.com/4892126/1290938 http://wolfword.blog.51cto.com/4892126/1291868
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql dba系统学习(14)mys
- 下一篇: mysql dba系统学习(16)mys