网站在使用缓存后,使绝大多数部分读操作都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中,缓存过期)和全部的写操作需要访问数据库完成,但是仍有一部分读操作(缓存访问不命中,缓存过期)和全部的写操作需要访问数据库,在网站用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈.
目前大部分主流数据库都是提供主从热备,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上.网站利用数据库这一功能,实现数据库读写分离,从而改善服务器负载压力。如图所示。
应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库获得数据.为了便于应用程序访问读写分离后的数据库,通常在应用服务器使用专门的数据访问模块,使数据库读写分离对应用透明。
实现(centos mysql5.5中操作)
准备工作:两台虚拟主机。
比如:192.168.95.11为主服务器
192.168.95.12为从数据库服务器
1.在192.168.95.11中创建一个192.168.95.12主机中科院登录的mysql用户
用户名:mysql2
密码:mysql2
mysql>GRANTREPLACATIONSLAVEON*。*TO ’mysql2‘ @ ’192.168.95.12‘ IDENTFIED BY ’mysql2‘ ;
mysql>flush privileges;