如何快速部署MariaDBredis集群部署

1143人阅读
配置文档(11)
0.双节点集群,IP分别为:
HostA :172.18.48.3
HostB : 172.18.48.4
本地进行/etc/hosts解析。
deb http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main
deb-src http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main
apt-get update
2.安装mariadb和galera包
# apt-get install -y rsync galera mariadb-galera-server
3.修改配置文件
# emacs /etc/f
bind-address && &= 0.0.0.0
skip-name-resolve
4.配置galera cluster
在每个节点新增/etc/mysql/conf.f文件:
--------------------------------------------------------
#mysql settings
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
#galera settings
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name=&my_wsrep_cluster&
wsrep_cluster_address=&gcomm://172.18.48.3,172.18.48.4&
wsrep_sst_method=rsync
##集群节点IP,主主模式,相互镜像,可以添加多个IP地址
---------------------------------------------------------
4.galera01和galera02关闭mysql
HostA: service mysql stop
HostB: service mysql stop
5.启动集群,第一个启动的节点要加上集群初始化命令,相当于主节点
HostA: service mysql start --wsrep-new-cluster
HostB: service mysql start
6.检查集群规模
HostA: mysql -u root -e 'SELECT VARIABLE_VALUE as &cluster size& FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME=&wsrep_cluster_size&' -p
+————–+
| cluster size |
+————–+
+————–+
7.在HostA上创建数据库,并授权允许远程访问
mysql&GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
8.galera的弹性和容灾
添加新节点时候直接重启服务即可,galera节点必须有一个主节点,即执行如下语句的节点:
service mysql start --wsrep-new-cluster
9.galera的使用注意:
galera集群内部节点使用双主模式,每个节点都能对外提供服务,数据在故障节点恢复后能够自动同步数据,无需人工干预,
同时为了保证对外服务高可用,可以使用heartbeat或者haproxy+keepalive的方式来实现HA.
10.出现错误时解决
# 如果我们在主主中关闭某台服务器时出现以下错误
[FAIL] Stopping MariaDB database server: mysqld failed!
ERROR ): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
此原因是因为在/etc/f中配置有这个用户debian-sys-maint
我们只需要在主服器上复制/etc/f到其它服务器中,保持文件一致即可
# scp /etc/f 172.18.48.4:/etc/mysql/
11、Maridb Crash时的数据恢复:
请参考:/blog//galera-replication-how-to-recover-a-pxc-cluster/?utm_source=tuicool
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:27881次
排名:千里之外
原创:13篇
转载:10篇
(6)(16)(1)下次自动登录
现在的位置:
利用MariaDB Galera Cluster实现mariadb的多主复制
以daemon模式运行
【上篇】【下篇】
同分类最新文章
日志:137篇
评论:80条
分类:22个
标签:262个
链接:29个
运行:1521天
最后更新:日Centos7+Mariadb集群-主从配置介绍
Centos7+Mariadb集群-主从配置介绍,近期一直在恶补相关的知识,主要是就是学Linux下的基本日常应用服务器的配置及优化,今天我们主要介绍一下在Centos7下安装及配置Mysql 集群,说到集群,其实就是为了提高服务的高可用性。对于高可用的相关服务今天不是主要介绍内容,今天主要介绍MYSQL的主从配置。对在Linux下的其他服务的介绍及服务高可用负载均衡我们将会在后期的文章中介绍。开始今天的介绍:Centos7+Mysql主从配置。
环境介绍:
Hostname:A-S
IP:192.168.5.21
Role:Mysql 主
Hostname:B-S
IP:192.168.5.22
Role:Mysql 从
其实从Centos7下已经被遗弃了,变为Mariadb了,当然功能及配置是一样的。比如我们在低版本下安装mysql都需要执行以下命令:
yum install -y mysql mysql-server
我们通过查看安装信息,mysql-server不可用的包
我们最后看见安装陈公公给你了Mariadb的相关包信息
Centos7中用MariaDB代替了mysql。好吧!那我们来安装MariaDB数据库吧!
运行yum install MariaDB-server MariaDB-client命令安装 MariaDB
yuminstallmariadb-servermariadb-client
我们通过rpm查看安装的相关信息
启动mariadb数据库
systemctlstartmariadb
接着运行mysql_secure_installation配置MariaDB
我们可以根据自己的需求进行配置定义
配置完成后,我们开始进入数据库
mysql&uroot&p
查看数据库
我们创建一个测试数据库
createdatabaseDB1;
最后我们使用工具进行连接mysql ,提示不允许该主机进行连接,因为mysql默认是不让任何主机进行连接
我们可以根据自己的配置设置运行那些主机及用户进行mysql的连接;
如果我们需要配置任何主机都可以连接的话,可以使用一下命令
GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'youpassword'WITHGRANTOPTION;
如果任何主机连接不需要密码的话可以下面
GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY''WITHGRANTOPTION;
我们下面简单的说几个日常的配置命令
许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p&youpassword& 进行授权操作: GRANT ALL PRIVILEGES ON *.* TO root@&192.168.x.x& IDENTIFIED BY &youpassword& WITH GRANT OPTION; 重载授权表: FLUSH PRIVILEGES; 退出my: exit
允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p&youpassword& 进行授权操作: GRANT select,insert,update,delete ON *.* TO root@&192.168.x.x& IDENTIFIED BY &youpassword&; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit
具体就不多介绍了,继续下面的配置介绍
我们前面创建了一个数据库
createdatabasesDB1;
我们接下来创建一个表
CREATETABLEinfo(idint(30)NOTNULL,namevarchar(30)NOTNULL,sexvarchar(30)NOTNULL,mailVARCHAR(255)NOTNULL,PRIMARYKEY(id));
插入几条数据
insertintoinfo(name,sex,mail)values('lisi','boy','');
insertintoinfo(name,sex,mail)values('xiaoli','girl','');
我们也可以通过工具进行查看
mysql的安装及配置再次就介绍完了,最后我们简单的说一下,MYSQL数据库数据文件位置/var/lib/mysql/
第一台数据库创建完后,我们就按照同样的方法安装及配置第二台Mysql服务器。再次就跳过了;方法同上完全一样;
注意:我们为了做主从,做第二台机器不需要创建表,只需要创建一个数据库即可(DB1),为了将Server1上的mysql还原到Server2上。
到目前为止,Server1和Server2的数据库均安装完成;
所以现在我们需要将数据库进行备份及还原到从服务器上。mysql的备份有很多方式,比如直接备份成一个.sql文件,或者备份成压缩文件,甚至我们也可以通过脚本进行备份。我们在此都说一下
我们首先查看数据库数据
首先是备份
mysqldump-hlocalhost-uroot-pDbname&Dbname.sql
mysqldump-hlocalhost-uroot-pDB1&DB1.sql
接下来我们在通过压缩的方式备份一下
mysqldump-hlocalhost-uroot-pDBName|gzip&DBName.sql.gz
mysqldump-hlocalhost-uroot-pDB1|gzip&DB1.sql.gz
接下来我们通过语句删除数据库中的所有数据
接下来我们进行还原一下;
我们首先通过默认备份进行还原,其实还原和备份的命令就有两个字符的区别
1.符号方向是反的,备份是大于号,还原是小于号。2.备份使用的是mysqldump,还原使用的是mysql
mysql-hlocalhost-uroot-pDB1<db1.sql还原后,我们查询数据库我们继续清空数据,然后使用压缩的格式进行还原;我们继续使用压缩的进行还原;gunzip<db.sql.gz|mysql-uroot-pdb1还原完成备份还原介绍完后,我们就需要将Server1的mysql备份数据给Server2拷贝一份及还原一份scpDB1.sql
root@192.168.5.22:/
接下来我们需要还原命令将数据库还原到Server2上即可
前期工作准备好后,接下来就进入重点,mysql主从配置;
我们首先登陆到Mysql主服务器上,然后编辑mysql的配置文件
我们要添加以下内容;
注:一定要加入到加到mysqld下面,如果加入的位置或者信息不对的话,执行结果为空;
#设置服务器ID,为1的表示为主服务器;如果服务器没有以下配置,添加,如果有就跳过。
server-id=1
#启动MySQ二进制日志,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log_bin=mysql-bin?
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行\
binlog-do-db=DB1
#不同步mysql系统数据库
binlog-ignore-db=mysql
重启mysql服务
sysmtectlrestartmariadb
进入mysql控制台
mysql-uroot-p123456
查看数据库主机的配置文件状态
查看主服务器,出现以下类似信息;如果看不见以下结果或者为空的话,说明my.cnf配置文件配置的有问题,请检查即可。
注意:这里记住File的值:mysql-bin.000001和Position的值:245,后面会用到。
有了主服务器的mysql主机配置后,我需要在从服务器上进行配置了
配置MySQL从服务器的my.cnf文件;区别就是server-id不一样
vi/f#编辑配置文件,在[mysqld]部分添加下面内容
#设置服务器ID,为1的表示为主服务器,为2的表示为从服务器;如果服务器没有以下配置,添加,如果有就跳过。
server-id=2
#启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log_bin=mysql-bin?
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行\
binlog-do-db=DB1
#不同步mysql系统数据库
binlog-ignore-db=mysql
接下来配置slave,进入从服务器的mysql控制台配置下:
mysql-uroot-p#进入MySQL控制台
#停止slave同步进程
接下来通过以下命令来配置主从关系了;以下命令是在从服务器上操作的。
changemastertomaster_host=&#39;主服务器&#39;,master_user=&#39;mysql用户名&#39;,master_password=&#39;mysql服务密码&#39;,master_log_file=&#39;File值&#39;,master_log_pos=Postion值;
changemastertomaster_host=&#39;192.168.5.21&#39;,master_user=&#39;root&#39;,master_password=&#39;;,master_log_file=&#39;mysql-bin.;,master_log_pos=254;
里面填写的信息是是在主服务器上执行的信息
最后我们查看主从同步是否正常
最后我们测试数据,给主服务器数据表添加数据
然后在从服务器上进行查看
</db.sql.gz|mysql-uroot-pdb1MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)
时间: 01:48:53
&&&& 阅读:126
&&&& 评论:
&&&& 收藏:0
标签:MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。
MariaDB Galera Cluster 介绍
MariaDB集群是MariaDB同步多主机集群。它仅支持XtraDB/ InnoDB存储引擎(虽然有对MyISAM实验支持 - 看wsrep_replicate_myisam系统变量)。
真正的multi-master,即所有节点可以同时读写数据库
自动的节点成员控制,失效节点自动被清除
新节点加入数据自动复制
真正的并行复制,行级
用户可以直接连接集群,使用感受上与MySQL完全一致
因为是多主,所以不存在Slavelag(延迟)
不存在丢失事务的情况
同时具有读和写的扩展能力
更小的客户端延迟
节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的
Galera集群的复制功能基于Galeralibrary实现,为了让MySQL与Galera library通讯,特别针对MySQL开发了wsrep API。
Galera插件保证集群同步数据,保持数据的一致性,靠的就是可认证的复制,工作原理如下图:
当客户端发出一个commit的指令,在事务被提交之前,所有对数据库的更改都会被write-set收集起来,并且将 write-set 纪录的内容发送给其他节点。
write-set 将在每个节点进行认证测试,测试结果决定着节点是否应用write-set更改数据。
如果认证测试失败,节点将丢弃 write-set ;如果认证测试成功,则事务提交。
1.安装环境准备
安装MariaDB集群至少需要3台服务器(如果只有两台的话需要特殊配置,请参照官方文档)
在这里,我列出试验机器的配置:
操作系统版本:centos7
node4:10.128.20.16 node5:10.128.20.17 node6:10.128.20.18
以第一行为例,node4为 hostname ,10.128.20.16为 ip ,在三台机器修改 /etc/hosts文件,我的文件如下:
10.128.20.16 node4
10.128.20.17 node5
10.128.20.18 node6
为了保证节点间相互通信,需要禁用防火墙设置(如果需要防火墙,则参照官方网站增加防火墙信息设置)
在三个节点分别执行命令:
systemctl stop firewalld
然后将/etc/sysconfig/selinux 的 selinux 设置成 disabled ,这样初始化环境就完成了。
2.安装 MariaDB Galera Cluster
[ ~]# yum install -y mariadb mariadb-galera-server mariadb-galera-common galera rsync
[ ~]# yum install -y mariadb mariadb-galera-server mariadb-galera-common galera rsync
[ ~]# yum install -y mariadb mariadb-galera-server mariadb-galera-common galera rsync
3.配置 MariaDB Galera Cluster
初始化数据库服务,只在一个节点进行
[ mariadb]# systemctl start mariadb
[ mariadb]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE!
PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we‘ll need the current
password for the root user.
If you‘ve just installed MariaDB, and
you haven‘t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
This is intended only for testing, and to make the installation
go a bit smoother.
You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] n
... skipping.
Normally, root should only be allowed to connect from ‘localhost‘.
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named ‘test‘ that anyone can
This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] n
... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
If you‘ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
关闭数据库,修改 /f.f
[ mariadb]# systemctl stop mariadb
[ ~]# vim /f.f
修改以下内容:
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://node4,node5,node6"
wsrep_node_name = node4
wsrep_node_address=10.128.20.16
#wsrep_provider_options="socket.ssl_key=/etc/pki/galera/galera. socket.ssl_cert=/etc/pki/galera/galera."
提示:如果不用ssl的方式认证的话,请把wsrep_provider_options 注释掉。
将此文件复制到node5、node6,注意要把 wsrep_node_name和 wsrep_node_address改成相应节点的 hostname和ip。
4.启动 MariaDB Galera Cluster 服务
[ ~]# /usr/libexec/mysqld --wsrep-new-cluster --user=root &
观察日志:
[ ~]# tail -f /var/log/mariadb/mariadb.log
:54:17 [Note] WSREP: wsrep_load(): loading provider library ‘none‘
:54:17 [Note] /usr/libexec/mysqld: ready for connections.
Version: ‘5.5.40-MariaDB-wsrep‘
socket: ‘/var/lib/mysql/mysql.sock‘
port: 3306
MariaDB Server, wsrep_25.11.r4026
出现 ready for connections ,证明我们启动成功,继续启动其他节点:
[ ~]# systemctl start mariadb
[ ~]# systemctl start mariadb
可以查看/var/log/mariadb/mariadb.log,在日志可以看到节点均加入了集群中。
警告?:--wsrep-new-cluster 这个参数只能在初始化集群使用,且只能在一个节点使用。
5.查看集群状态
我们可以关注几个关键的参数:
wsrep_connected = on 链接已开启
wsrep_local_index = 1在集群中的索引值
wsrep_cluster_size =3集群中节点的数量
wsrep_incoming_addresses = 10.128.20.17:.20.16:.20.18:3306 集群中节点的访问地址
6.验证数据同步
我们在node4上新建数据库 galera_test ,然后在node5 和node6 上查询,如果可以查询到 galera_test 这个库,说明数据同步成功,集群运行正常。
[ ~]# mysql
"create database galera_test"
[ ~]# mysql
"show databases"
+--------------------+
| Database
+--------------------+
| information_schema |
| galera_test
| performance_schema |
+--------------------+
[ ~]# mysql
"show databases"
+--------------------+
| Database
+--------------------+
| information_schema |
| galera_test
| performance_schema |
+--------------------+
至此,我们的 MariaDB Galera Cluster 已经成功部署。
参考文章:[1][2]
本文系工程师原创文章。OneAPM是中国基础软件领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和SQL语句的实时抓取。想阅读更多技术文章,请访问OneAPM。标签:
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!当前位置:&>&&>&
配置MariaDB+Keepalived双主高可用数据库集群负载均衡
发布时间:
来源:服务器之家
利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟VIP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。
硬件拓扑如下:
VIP:192.168.1.200
mysql1:192.168.1.201
mysql2:192.168.1.202
操作系统:CentOS release 6.3(32位)
MySQL版本:MariaDB 5.5.31 Stable
下载地址(64位请下载64版本):https://downloads.mariadb.org/f/mariadb-5.5.31/kvm-tarbake-jaunty-x86/mariadb-5.5.31.tar.gz/from/http:/mirrors.scie.in/mariadb
Keepalived版本:Version 1.2.7
下载地址:http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
一、配置Centos运行环境:
rpm -qa|grep mysql
rpm -e mysql
yum -y remove mysql-server mysql
yum -y remove php-mysql
移除系统自带的mysql
yum -y install yum-fastestmirror
yum -y update
更新系统软件;
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
yum install -y ntp
ntpdate -d cn.pool.ntp.org
设置时区并同步系统时间
#Disable SeLinux
if [ -s /etc/selinux/config ]; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'
/etc/selinux/config
关闭安全增强
cat &&/etc/security/limits.conf&&eof
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
cat &&/etc/sysctl.conf&&eof
fs.file-max=65535
修改文件句柄的最大数量
安装一些必备软件
yum -y install gcc gcc-c++ gcc-g77 ncurses-devel bison
libaio-devel cmake&libnl* libpopt* popt-static
openssl-devel
二、安装maridDB:
1、下载相关软件源码包
[root@localhost
down]#&wget&https://downloads.mariadb.org/f/mariadb-5.5.31/kvm-tarbake-jaunty-x86/mariadb-5.5.31.tar.gz/from/http:/mirrors.scie.in/mariadb
2、配置编译器,提高性能
CFLAGS="-O3"
CXXFLAGS="-O3 -felide-constructors -fno-exceptions
-fno-rtti"
3、开始安装mariadb
添加mysql用户和用户组
[root@localhost down]#&groupadd mysql
[root@localhost down]#&useradd -s /sbin/nologin -M -g mysql
解压mariadb
[root@localhost down]#&tar -zxvf mariadb-5.5.31
[root@localhost down]#&cd mariadb-5.5.31
安装到/usr/local/mariamysql目录:
[root@localhost down]#&cmake .
-DCMAKE_INSTALL_PREFIX=/usr/local/mariamysql
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1& -DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci&& -DWITH_DEBUG=0
-DBUILD_CONFIG=mysql_release -DFEATURE_SET=community
-DWITH_EMBEDDED_SERVER=OFF && make && make
复制配置文件到/f
[root@localhost down]#&cp
/usr/local/mariamysql/support-files/f /f
设置mariamysql为系统服务
[root@localhost down]#&cp
/usr/local/mariamysql/support-files/mysql.server
/etc/init.d/mariamysql
初始化mariaDB数据库:
[root@localhost
down]#&/usr/local/mariamysql/scripts/mysql_install_db
--basedir=/usr/local/mariamysql/
--datadir=/usr/local/mariamysql/data/ --user=mysql
至此mariaDB安装完成。
三、keepalived安装:
1、下载源码包:
wget&http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
[root@localhost down]#&tar -zxvf
keepalived-1.2.7.tar.gz
[root@localhost down]# cd keepalived-1.2.7
[root@localhost keepalived-1.2.7]#& ./configure
--prefix=/usr/local/keepalived
安装到/usr/local/keepalived目录下;
至此keepalived安装完毕。
四、分别在201和202两台机器上都重复二,三安装好mariaDB和keepalived。
五、配置201数据库服务器:
1、设置mariaDB数据库配置文件:
[root@localhost /]# vi /f&
确保/f中有如下参数,没有的话需手工添加,并重启mysql服务。
log-bin=mysql-bin&
#启动二进制文件
server-id=1&
设置完毕启动mariaDB服务器
[root@localhost /]# service mariamysql start
2、登录mysql,然后在增加一个账号专门用于同步,如下:
[root@localhost /]# /usr/local/mariamysql/bin/mysql -uroot -p
&#初始密码为空到Enter password:处直接回车即可
MariaDB [(none)]& grant replication slave on *.* to
'backup'@'192.168.1.202' identified by 'backup'; flush
显示master状态:
MariaDB [(none)]&
记录下File和Position然后在202上面设置从201同步。
六、配置202数据库服务器:
[root@localhost /]# vi /f&
确保/f中有如下参数,没有的话需手工添加,并重启mysql服务。
log-bin=mysql-bin&
#启动二进制文件
server-id=10(此处要设置的跟201不同)
设置完毕启动mariaDB服务器。
[root@localhost /]# service mariamysql start
登录数据库:
[root@localhost /]# /usr/local/mariamysql/bin/mysql -uroot
MariaDB [(none)]& change master to
master_host='192.168.1.201',master_user='backup',master_password='backup',master_log_file='mysql-bin.000010',master_log_pos=245;
注意:245对应上面在201上面记下的Position,mysql-bin.000010对应201上面记录的File
执行成功后,输入命令显示从库状态:
MariaDB [(none)]& show slave status G;
Slave_IO_Running: Yes& & & & &
Slave_SQL_Running: Yes
两项都显示Yes时说明从201同步数据成功。
至此201为主202为从的主从架构数据设置成功!
七、设置201和202互为主从:
1、202机器上增加一个帐号专门用于同步数据:
MariaDB [(none)]& grant replication slave on *.* to
'backup'@'192.168.1.201' identified by 'backup'; flush
2、显示202做为主库时的状态:
MariaDB [(none)]&
3、在201数据库服务器上:
MariaDB [(none)]& change master to
master_host='192.168.1.202',master_user='backup',master_password='backup',master_log_file='mysql-bin.000005',master_log_pos=5005;
注意:5005对应上面在202上面记下的Position,mysql-bin.000005对应202上面记录的File
显示状态:
MariaDB [(none)]& show slave status G;
Slave_IO_Running: Yes& & & & &
Slave_SQL_Running: Yes
两项都显示Yes时说明从202同步数据成功。
至此201、202互为主从设置成功!
可以试试在这两台服务器上任何一台增加一个数据库,并建个表,增加一些数据看看,互为主从同步的状态是否成功!
首先在201上面:
MariaDB [(none)]& creat
MariaDB [(none)]&&
MariaDB [mysqltest]&&create table user(id int(5),name
char(10));
MariaDB [mysqltest]&&insert into user values
(00001,'zhangsan');
在202上面验证一下:
MariaDB [(none)]&
MariaDB [mysqltest]& select * from&
会发现201上面的数据已经自动同步到202上面了
同样在202上面:
MariaDB [mysqltest]&&insert into user values
(00002,'wander');
在201上面验证一下:
MariaDB [mysqltest]& select *
互为主从结构设置完毕
注意:如果同步不成功,首先要确保服务器3306端口打开的。
centos可以用service iptables stop关闭防火墙。
八、利用keepalived实现高可用
keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换;
1、keepalived设置:
201服务器上面,编辑keeplaived.conf配置文件:
[root@localhost /]# vi
/usr/local/keepalived/etc/keepalived/keepalived.conf
配置文件内容如下:
! Configuration File for keepalived
global_defs {
&& router_id mysql-ha
vrrp_instance VI_1 {
&&& state BACKUP
&&& interface eth0
&&& virtual_router_id 201
&&& priority 100&#优先级,高优先级竞选为master
&&& advert_int 1&
&&& nopreempt&#设置为不抢占
注:这个配置只能设置在backup主机上,而且这个主机优先级要比另外一台高,另一台不要设置这个选项
&&& authentication {
&&&&&&& auth_type PASS
&&&&&&& auth_pass 123456
&&& virtual_ipaddress {
&&&&&&& 192.168.1.200
virtual_server 192.168.1.200 3306 {
&&& delay_loop 2
&&& lb_algo rr
&&& lb_kind DR
&&& persistence_timeout 60
&&& protocol TCP
&&& real_server 192.168.1.201 3306 {
&&&&&&& weight 1
&&&&&&& notify_down
/usr/local/keepalived/etc/keepalived/mysql.sh
&&&&&&& TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 2
delay_before_retry 1
~ & & & & & & & &
编辑mysql服务停止后的切换脚本:mysql.sh
[root@localhost /]# vi
/usr/local/keepalived/etc/keepalived/mysql.sh
内容如下:
#!/bin/bash
pkill keepalived
2、启动201上面的keepalived
[root@localhost /]# /usr/local/keepalived/sbin/keepalived -f
/usr/local/keepalived/etc/keepalived/keepalived.conf -D
启动成功后会有三个keepalived进程
此是在任一局域机器上面ping
192.168.1.200发现已经可以ping通,并且用192.168.1.200这个IP也能够连接到数据库服务器。
3、在202机器上面重复1、2步骤;
配置keepalived.conf文件的时候注意要把&
real_server 192.168.1.201 3306改为&real_server 192.168.1.202
virtual_router_id 201 改为virtual_router_id 202
priority 100改为priority 90
去掉nopreempt&
至此MariaDB+Keepalived双主高可用配置MySQL-HA设置完毕。
可以试着把201上面的mariaDB停止&
[root@localhost /]#&ser
会发现连接192.168.1.200还是可以连接上去的,keepalived会自动切换到202的服务器上面去。这样,当一台数据库服务器发生故障时,另一台服务器可以立即切换过来,保证高可用。
Copyright &#169; . 版权所有

我要回帖

更多关于 storm集群部署 的文章

 

随机推荐