内容简介:为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主服务器的mysql挂掉之后,数据也不会丢失,同时也提高了数据库的效率。master 192.168.174.129slave 192.168.174.130
一、 MYSQL 主从备份
为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主服务器的mysql挂掉之后,数据也不会丢失,同时也提高了数据库的效率。
1.环境
master 192.168.174.129
slave 192.168.174.130
master和slave的防火墙都为关闭状态,selinux也为disabled,不然会出错,selinux设置重启生效。
2.在master和slave上安装mysql和mysql-server
注:mysql master数据库版本和slave数据库版本要相同,或者slave版本比master高
mysql安装可以yum安装也可以源码安装,本文采用yum安装
yum -y install mysql mysql-server
在主服务器和从服务器上打开mysql服务,并设置开机自启
service mysqld restart
chkconfig mysqld on
3.mysql mater配置
打开mysql配置文件/etc/my.cnf,在mysqld下添加
log-bin=mysql-bin ---------启动二进制日志系统
binlog-do-db=test ---------要同步的数据库
server-id=1 ---------服务id,主服务器server-id比从服务器server-id小
binlog-ignore-db=mysql ------避免同步mysql用户配置
重启mysql
service mysqld restart
进入数据库mysql
mysql -u root -p
初始状态mysql默认没有密码,如果要设置密码可以使用mysqladmin -u root -p "password",设置密码,这样也会更安全一些
创建一个同步账号,并赋予权限
查看master的状态信息,记录下file和position的值,在后边的slave配置中会用到
4.mysql slave配置
打开mysql配置文件/etc/my.cnf,在mysqld下添加
server-id=2 -------- 服务id,从服务器server-id比主服务器server-id大
replication-ignore-db=mysql -- 屏蔽对mysql库的同步
replication-do-db=test ---------要同步的数据库名,与主服务器配置保持一致
master-connect-retry=60 --------断点重连时间
master-host=192.168.174.129
master-user=test
master-password=test
master-port=3306
进入mysql
mysql -u root -p
停止slave服务:stop slave;
配置slave同步,完成后开启slave服务
change master to master_host='192.168.174.129',master_user='test',master_password='test',master_log_file='mysql-bin.000026',master_log_pos=346;
这里的master_log_file和master_log_pos要和前面记录的file和position一致
查看slave状态
show slave status\G;
当两个running都为yes时即配置成功,可以在主服务上对test数据库操作,看是否这些操作会同步到从服务器上
二、MySQL主主备份
主主备份的设置就是将从服务器上的设置在主服务器上操作一遍,主服务器上的操作在从服务器上操作一遍,这里就不再赘述
三、 MySQL+Keepalived
环境:
keepalived主机:192.168.174.129
keepalived备机:192.168.174.130
VIP:192.168.174.222
测试主机:192.168.174.133
master、slave、keepalived主机、keepalived备机、测试主机的防火墙都为关闭状态,selinux也为disabled,不然会出错,selinux设置重启生效。
1.keepalived
keepalived可以监控服务状态,当主服务宕机后可以将服务自动漂移至从服务,利用keepalived+mysql可以实现mysql的高可用性,当mysql主服务器宕机后,从服务器接管主服务器的工作,保证对外服务,keepalived还可以实现虚拟ip对外服务,保证内部服务器安全,同时keepalived的主从机制也保证了服务的高可用性
2.keepalived安装
这里和前边博文中keepalived安装步骤基本一样,主要是配置文件不一样,博主为熟悉keepalived安装又啰嗦了一遍,下载keepalived源码安装包,解压
进入keepalived解压目录,执行
./configure --prefix=/usr/local/keepalived
拷贝keepalived启动文件到/etc/init.d下,这样keepalived服务才能为系统识别
cp /root/package/keepalived-1.4.5/keepalived/etc/init.d /etc/init.d
执行
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin
新建文件夹keepalived
mkdir /etc/keepalived
将keepalived的配置文件拷贝过来,keepalived启动时会从/etc/keepalived目录下查找keepalived.conf配置文件,如果没有找到则使用默认的配置。
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
以上操作在keepalived主机和备机上都执行
修改主机配置文件
修改备机配置文件
主机和备机配置文件只有router_id和vrrp_instance的state和priority不同
开启主机和备机的keepalived服务
service keepalived start
在测试机上ping 虚拟IP192.168.174.222,成功,而且我的内网内192.168.174.222的ip
使用虚拟IP192.168.174.222连接3306端口的mysql服务,连接之前需要在mysql主服务和mysql从服务器为测试机ip赋予权限
使用虚拟IP192.168.174.222连接3306端口的mysql服务,使用授权的用户和密码,成功
查看当前数据库
查看mysql从服务器数据库可知连接的应该是从数据库
停止mysql从服务器服务:service mysqld stop,再次在测试机连接虚拟IP192.168.174.222连接3306端口的mysql服务,成功
也可以查出数据库
keepalived+mysql主从同步成功
四、MySQL读写分离
mysql读写分离是在mysql主从同步的基础上做的,mysql主服务器负责写,多台mysql从服务器负责读,mysql主从同步仅仅是把mysql主服务器的数据库同步到了mysql从服务器上,如果要实现读写分离,还需要一个服务器去协调。这个服务就是mysql-proxy。
1.环境配置
mysql主服务器:192.168.174.129
mysql从服务器:192.168.174.130
mysql-proxy服务器:192.168.174.131
master、slave以及mysql-proxy服务器的防火墙都为关闭状态,selinux也为disabled,不然会出错,selinux设置重启生效。
2.mysql-proxy安装
mysql的读写分离是靠过rw-splitting.lua脚本实现的,因此需要安装lua。
安装之前先安装包依赖
yum -y install gcc* gcc-c++ autoconf automake zlib* libxml* ncurses-devel libmcrypt libtool* flex* pkgconfig* libevent* glib*
wget 下载lua,很小,很快就能下载完成,解压
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
进入 lua 解压后目录,执行
make linux
make && make install
export LUA_CFLAGS="-I/usr/local/include" LUA_LIBS="-L/usr/local/lib -llua -ldl" LDFLAGS="-lm"
下载mysql-proxy,解压
执行
mkdir /usr/local/mysql-proxy
cp * /usr/local/mysql-proxy
cd /usr/local/mysql-proxy
修改rw-splitting.lua文件
修改连接数,默认为4,即只有当有四台mysql服务器时才启用读写分离,为了试验成功,改为1
vim /usr/local/mysql-proxy/rw-splitting.lua
启动msyql-proxy
cd /usr/local/mysql-proxy/bin
./mysql-proxy --proxy-read-only-backend-addresses=192.168.174.130:3306 --proxy-backend-addresses=192.168.174.129:3306 --proxy-lua-script=/usr/local/mysql-proxy/rw-splitting.lua &
参数说明:
--proxy-read-only-backend-addresses ---------只读服务器ip地址
--proxy-backend-addresses ----------------------服务器地址(mysql主服务器)
--proxy-lua-script ----------------------------lua脚本路径
& -----------------------------------------------------表示后台执行
mysql主从备份+mysql读写分离配置完成。
Linux公社的RSS地址: https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-09/154113.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
An Introduction to the Analysis of Algorithms
Robert Sedgewick、Philippe Flajolet / Addison-Wesley Professional / 1995-12-10 / CAD 67.99
This book is a thorough overview of the primary techniques and models used in the mathematical analysis of algorithms. The first half of the book draws upon classical mathematical material from discre......一起来看看 《An Introduction to the Analysis of Algorithms》 这本书的介绍吧!