通过KeepAlived搭建MySQL双主模式的高可用集群系统概要Word下载.docx
- 文档编号:19878489
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:12
- 大小:864.71KB
通过KeepAlived搭建MySQL双主模式的高可用集群系统概要Word下载.docx
《通过KeepAlived搭建MySQL双主模式的高可用集群系统概要Word下载.docx》由会员分享,可在线阅读,更多相关《通过KeepAlived搭建MySQL双主模式的高可用集群系统概要Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock\
-DMYSQL_TCP_PORT=3306\
-DENABLED_LOCAL_INFILE=1\
-DWITH_PARTITION_STORAGE_ENGINE=1\
-DEXTRA_CHARSETS=all\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci
make&
&
makeinstall
如果没有就创建用户就创建如下用户:
#groupaddmysql
#useradd-gmysqlmysql
修改/usr/local/mysql权限:
#chown-Rmysql:
mysql/usr/local/mysql
#cd/usr/local/mysql
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表:
#scripts/mysql_install_db--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data--user=mysql
2、启动MySQL
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
#cpsupport-files/mysql.server/etc/init.d/mysql
#chkconfigmysqlon
#servicemysqlstart--启动MySQL
三、配置mysql主从服务器
1、修改MySQL配置文件
在默认情况下MySQL的配置文件是/etc/f。
但我们需要修改的路径是自己安装MySQL的路径。
首先修改DB1主机的配置文件,在/usr/local/mysql/f文件中的“[mysqld]”段添加如下内容:
server-id=1
log-bin=mysql-bin
relay-log=mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
然后修改DB2主机的配置文件,在/usr/local/mysql/f文件中的“[mysqld]”段添加如下内容:
server-id=2
log-bin=mysql-bin(如果只有一主一从,在从库上是不需要开启binlog日志的,后面是为了演示互为主从这才加上去的)
其中,server-id是节点标识,主、从节点不能相同,必须全局唯一。
log-bin表示开启MySQL的binlog日志功能。
“mysql-bin”表示日志文件的命名格式,会生成文件名为mysql-bin.000001、mysql-bin.000002等的日志文件。
relay-log用来定义relay-log日志文件的命名格式。
replicate-wild-ignore-table是个复制过滤选项,可以过滤掉不需要复制的数据库或表,例如“mysql.%“表示不复制mysql库下的所有对象,其他依此类推。
与此对应的是replicate_wild_do_table选项,用来指定需要复制的数据库或表。
2、手动同步数据库
如果DB1上已经有mysql数据,那么在执行主主互备之前,需要将DB1和DB2上两个mysql的数据保持同步,首先在DB1上备份mysql数据,执行如下SQL语句:
mysql>
FLUSHTABLESWITHREADLOCK;
(解锁:
unlocktables;
)
QueryOK,0rowsaffected(0.00sec)
在不退出终端的情况下,再开启一个终端直接打包压缩数据文件或使用mysqldump工具来导出数据。
这里通过打包mysql文件来完成数据的备份,操作过程如下:
[root@DB1~]#cd/usr/local
[root@DB1lib]#tarzcvfmysql.tar.gzmysql
[root@DB1lib]#scpmysql.tar.gzDB2:
/usr/local/
将数据传输到DB2后,依次重启DB1和DB2上面的mysql。
3、创建复制用户并授权
首先在DB1的mysql库中创建复制用户,操作过程如图所示。
grantreplicationslaveon*.*to'
repl_user'
@'
192.168.1.89'
identifiedby'
repl_passwd'
;
然后在DB2的mysql库中将DB1设为自己的主服务器,操作如下所示。
Changemastertomaster_host='
192.168.1.85'
master_user='
master_password='
master_log_file='
mysql-bin.000001'
master_log_pos=431;
这里需要注意master_log_file和master_log_pos两个选项,这两个选项的值刚好是在DB1上通过SQL语句“showmasterstatus”查询到的结果。
接着就可以在DB2上启动slave服务了,可执行如下SQL命令:
startslave;
下面查看DB2上slave的运行状态,如图所示。
通过查看slave的运行状态发现,一切运行正常,这里需要重点关注的是Slave_IO_Running和Slave_SQL_Running,这两个就是在Slave节点上运行的主从复制线程,正常情况下这两个值都应该为Yes。
另外还需要注意的是Slave_IO_State、Master_Host、Master_Log_File、Read_Master_Log_Pos、Relay_Log_File、Relay_Log_Pos和Relay_Master_Log_File几个选项,从中可以查看出mysql复制的运行原理及执行规律。
最后还有一个Replicate_Wild_Ignore_Table选项,这个是之前在f中添加过的,通过此选项的输出值可以知道过滤掉了哪些数据库。
到这里位置,从DB1到DB2的mysql主从复制已经完成了。
接下来开始配置从DB2到DB1的mysql主从复制,这个配置过程与上面的完全一样,首先在DB2的mysql库中创建复制用户,操作如图
grantreplicationslaveon*.*to'
然后在DB1的mysql库中将DB2设为自己的主服务器,操作如下
changemastertomaster_host='
master_log_pos=862;
接着就可以在DB1上启动slave服务了,可执行如下SQL命令:
下面查看DB1上slave的运行状态,如图所示。
从图上中可以看出Slave_IO_Running和Slave_SQL_Running都是Yes状态,表明DB1上复制服务运行正常。
至此,mysql双主模式的主从复制已经配置完毕了。
四、配置KeepAlived实现MySQL双主高可用
在进行高可用配置之前,首先需要在DB1和DB2服务器上安装KeepAlived软件。
KeepAlived的安装和配置过程如下:
[root@keepalived-masterapp]#tarzxvfkeepalived-1.2.12.tar.gz
[root@keepalived-masterapp]#cdkeepalived-1.2.12
[root@keepalived-masterkeepalived-1.2.12]#./configure--sysconf=/etc\
>
--with-kernel-dir=/usr/src/kernels/2.6.32-431.5.1.el6.x86_64
[root@keepalived-masterkeepalived-1.2.12]#make
[root@keepalived-masterkeepalived-1.2.12]#makeinstall
[root@keepalived-masterkeepalived-1.2.12]#ln-s/usr/local/sbin/keepalived/sbin/
[root@keepalived-masterkeepalived-1.2.12]#chkconfig--addkeepalived
[root@keepalived-masterkeepalived-1.2.12]#chkconfig--level35keepalivedon
安装完成后,进入keepalived的配置过程。
下面是DB1服务器上/etc/keepalived/keepalived.conf文件的内容。
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
}
vrrp_scriptcheck_mysqld{
script"
/etc/keepalived/mysqlcheck/check_slave.pl127.0.0.1"
#检测mysql复制状态的脚本
interval2
vrrp_instanceVI_1{
stateBACKUP#在DB1和DB2上均配置为BACKUP
interfaceeth0
virtual_router_id80
priority100
advert_int2
nopreempt#不抢占模式,只在优先级高的机器上设置即可,优先级低的机器不设置
authentication{#效验DB1和DB2需一致
auth_typePASS
auth_passqweasdzxc
track_script{
check_mysqld
virtual_ipaddress{
192.168.1.84/24deveth0#mysql的对外服务IP,即VIP
其中,/etc/keepalived/mysqlcheck/check_slave.pl文件的内容为:
#!
/usr/bin/perl-w
useDBI;
useDBD:
:
mysql;
#CONFIGVARIABLES
$SBM=120;
$db="
mysql"
$host=$ARGV[0];
$port=3306;
$user="
root"
$pw="
xxxxxx"
#SQLquery
$query="
showslavestatus"
$dbh=DBI->
connect("
DBI:
mysql:
$db:
$host:
$port"
$user,$pw,{RaiseError=>
0,PrintError=>
0});
if(!
defined($dbh)){
exit1;
$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'
finish;
$dbh->
disconnect();
if($Slave_IO_Runningeq"
No"
||$Slave_SQL_Runningeq"
){
}else{
if($Seconds_Behind_Master>
$SBM){
}else{
exit0;
这是个用perl写的检测mysql复制状态的脚本,ixdba是本例中的一个数据库名,读者只需修改文件中数据库名、数据库的端口、用户名和密码即可直接使用,但在使用前要保证此脚本有可执行权限。
接着将keepalived.conf文件和check_slave.pl文件复制到DB2服务器上对应的位置,然后将DB2上keepalived.conf文件中priority值修改为90,同时去掉nopreempt选项。
在完成所有配置后,分别在DB1和DB2上启动keepalived服务,在正常情况下VIP地址应该运行在DB1服务器上。
启动之前,先检测是脚本是否可以正常运行
五、测试MySQL主从同步功能
为了验证mysql的复制功能,可以编写一个简单的程序进行测试,也可以通过远程客户端登录进行测试。
这里通过一个远程mysql客户端,然后利用mysql的VIP地址登录,看是否能登录,并在登录后进行读、写操作,看看DB1和DB2之间是否能够实现数据同步。
由于是远程登录测试,因此DB1和DB2两台MySQL服务器都要事先做好授权,允许从远程登录。
授权:
grantallprivilegeson*.*to'
root'
192.168.1.82'
1、在远程客户端通过VIP登录测试
2、数据复制功能测试
六、测试KeepAlived实现MySQL故障转移
为了测试KeepAlived实现的故障转移功能,需要模拟一些故障,比如,可以通过断开DB1主机的网络、关闭DB1主机、关闭DB1上mysql服务等各种操作实现,这里在DB1服务器上关闭mysql的日志接收功能,以此来模拟DB1上mysql的故障。
由于在DB1和DB2服务器上都添加了监控mysql运行状态的脚本check_slave.pl,因此当关闭DB1的mysql日志接收功能后,KeepAlived会立刻检测到,接着执行切换操作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通过 KeepAlived 搭建 MySQL 模式 可用 集群 系统 概要
![提示](https://static.bdocx.com/images/bang_tan.gif)