mysql主从数据库的优势

上传人:鲁** 文档编号:487140313 上传时间:2022-09-12 格式:DOCX 页数:10 大小:58.67KB
返回 下载 相关 举报
mysql主从数据库的优势_第1页
第1页 / 共10页
mysql主从数据库的优势_第2页
第2页 / 共10页
mysql主从数据库的优势_第3页
第3页 / 共10页
mysql主从数据库的优势_第4页
第4页 / 共10页
mysql主从数据库的优势_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《mysql主从数据库的优势》由会员分享,可在线阅读,更多相关《mysql主从数据库的优势(10页珍藏版)》请在金锄头文库上搜索。

1、MySQL主从服务器配置的优势在MySQL数据库中,支持单项、异步复制。在复制过程中,一个服务器充当 主服务器,而另外一台服务器充当从服务器。如下图所示。此时主服务器会将更 新信息写入到一个特定的二进制文件中。并会维护文件的一个索可用来跟踪日志 循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到 主服务器时,从服务器会通知主服器从服务器的日志文件中读取最后一次成功更 新的位置。然后从服务器会接收从那个时刻起发生的任何更新,然后锁住并等到 主服务器通知新的更新。这就是MySQL服务器数据库复制原理的基本说明。作为数据库管理员,对于 这个原理只要有几个基本的了解即可。其需要关注

2、的是,我们可以从这个复制功能中得到哪些实惠?好处一:实现服务器负载均衡通过服务器复制功能,可以在主服务器和从服务器之间实现负载均衡。即可 以通过在主服务器和从服务器之间切分处理客户查询的负荷,从而得到更好的客 户相应时间。通常情况下,数据库管理员会有两种思路。一是在主服务器上只实现数据的更新操作。包括数据记录的更新、删除、新 建等等作业。而不关心数据的查询作业。数据库管理员将数据的查询请求全部 转 发到从服务器中。这在某些应用中会比较有用。如某些应用,像基金净值预测的 网站。其数据的更新都是有管理员更新的,即更新的用户比较少。而查询的用户 数 量会非常的多。此时就可以设置一台主服务器,专门用来

3、数据的更新。同时 设置多台从服务器,用来负责用户信息的查询。将数据更新与查询分别放在不同 的服务器 上进行,即可以提高数据的安全性,同时也缩短应用程序的响应时间、 提高系统的性能。二是在主服务器上与从服务器切分查询的作业。在这种思路下,主服务器不 单单要完成数据的更新、删除、插入等作业,同时也需要负担一部分查询作业。 而从服务器的话,只负责数据的查询。当主服务器比较忙时,部分查询请求会自 动发送到从服务器重,以降低主服务器的工作负荷。当然,像修改数据、插入数据、删除数据等语句仍然会发送到主服务器中,以便主服务器和从服务器数据的 同步。要在数据库之间实现负载的均衡,其关键点就是数据同步的时间。如

4、果主服 务器与从服务器之间数据的更新时间比较长,此时从主服务器中查询得到的数 据就会同从从服务器中得到的数据有差异。而如果同步的时间比较短,如实现同 步复制,对网络带宽、服务器设备等就有比较高的要求。可见这个同步的时间选择直接关系到其应用的效果。那么这个同步的时间应 该选择多少呢?这没有一个固定的答案。主要是看用户的需要。如用户对数据的 及时性要求并不是很高,或者数据更新的频率不是很高,那么这个同步的时间可 以稍微长一点。但是如果这个数据的及时性要求很高,如股票的价格等等,此时 就需要能够实现同步更新。所以具体要看企业实际的应用才能够决定采用什么 样的同步时间。在采取这个应用时,需要注意MyS

5、QL数据库的复制是单向的。即只能够将数 据从主服务器复制到从服务器,而不能够将数据从从服务器发生到主服务器。 这也就是说,数据库管理员不能够在从服务器上更新数据,否则的话,就可能会 与主服务器上的数据产生冲突。默认情况下,系统会自动利用主服务器上的数据 来更新从服务器上的数据。即在从服务器上所做的任何更改,到时候都会失效。 如果是用户的请求,一般不用担心。系统会自动判断用户的请求是查询请求还是 数据 更新请求。并自动根据请求的类型转发到不同的服务器上。主要是数据库 管理员,不要手痒痒,手动去更新从服务器上的数据。否则的话,就会导致从服 务器与主服 务器之间数据的冲突。好处二:通过复制实现数据的

6、异地备份如上图所示,可以定期的将数据从主服务器上复制到从服务器上,这无疑是 先了数据的异地备份。在传统的备份体制下,是将数据备份在本地。此时备份作 业与数据库服务器运行在同一台设备上,当备份作业运行时就会影响到服务器的 正常运行。有时候会明显的降低服务器的性能。同时,将备份数据存放在本地, 也 不是很安全。如硬盘因为电压等原因被损坏或者服务器被失窃,此时由于备 份文件仍然存放在硬盘上,数据库管理员无法使用备份文件来恢复数据。这显然 会给企业 带来比较大的损失。而如果使用复制来实现对数据的备份,就可以在从服务器上对数据进行备 份。此时不仅不会干扰主服务气的正常运行,而且在备份过程中主服务器可以继

7、 续处理相关的更新作业。同时在数据复制的同时,也实现了对数据的异地备份。 除非主服务器和从服务器的两块硬盘同时损坏了,否则的话数据库管理员就可以 在最 短时间内恢复数据,减少企业的由此带来的损失。在通过这种方式进行异地备份时,主要需要注意如下二个细节:一是数据更新的时间。如果要采取这种方式进行备份,那么对于数据同步的 时间,要小于等于数据备份的周期。只有如此,才能够确保最近更新的数据被正确的备份。此时即使主服务器出现了故障,用户丢失的也只是最近一个备份周期 的数据。二是从服务器上硬盘的空间。根据一般用户的心态,从服务器的配置往往比 主服务器要低。但是现在从服务器要承担起数据备份的任务,为此对于

8、硬盘的空 间要求就要比主服务器要高。其不但要能够存储主服务器上的数据,而且还要对 其进行备份。为此一般要求,从服务器上的存储空间是主服务器上的两倍。否则 的话,就容易出现磁盘空间不足而导致备份作业失败。好处三:提高数据库系统的可用性数据库复制功能实现了主服务器与从服务器之间数据的同步,增加了数据库 系统的可用性。当主服务器出现问题时,数据库管理员可以马上让从服务器作为 主服务器,用来数据的更新与查询服务。然后回过头来再仔细的检查主服务器的 问题。此时一般数据库管理员也会采用两种手段。一是主服务器故障之后,虽然从服务器取代了主服务器的位置,但是对于主 服务器可以采取的操作仍然做了一些限制。如仍然

9、只能够进行数据的查询,而不 能够进行数据的更新、删除等操作。这主要是从数据的安全性考虑。如现在一些 银行系统的升级,在升级的过程中,只能够查询余额而不能够取钱。这是同样的 道理。二是从服务器真正变成了主服务器。当从服务器切换为主服务器之后,其地 位完全与原先的主服务器相同。此时可以实现对数据的查询、更新、删除等操 作。 为此就需要做好数据的安全性工作。即数据的安全策略,要与原先的主服务器完 全相同。否则的话,就可能会留下一定的安全隐患。Mysql主从方案介绍mysql主从方案主要作用:读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql 语句非常的慢,导致锁表,影响前台服务

10、。如果前台使用master,报表使用slave, 那么报表sql将不会造成前台锁,保证了前台速度。发扬不同表引擎的优点。目前Myisam表的查询速度比innodb略快,而写入并 发innodb比myisam要好。那么,我们可以使用innodb作为master,处理高并 发写入,使用master作为slave,接受查询。或在myisam slave中建立全文索 引,解决innodb无全文索引的弱点。热备,slave和master的数据“准实时”同步。准备工作。先分别安装两台MYSQL配置MASTER。找到f文件,修改:server-id log_bin expire_logs_days max_

11、binlog_size binlog_do_db binlog_do_db binlog_ignore_db=1=/var/log/mysql/mysql-bin.log=10=100M=DB_AdidasFootball=DB_CodeBuilder= test其中,作为主机,server-id必须为1.binlog_do_db为需要复制的dbo binlog_ignore_db为忽略复制的db。需要增 加DB的话,就增加相应的一行。重启master数据库,运行检查:mysql show master status; #检查是否以 master 形式启动了。+| File| Position

12、 | Binlog_Do_DB|Binlog_Ignore_DB |+-+| mysql-bin.000002 |1087 | DB_AdidasFootball,DB_CodeBuilder | test|+-+1 row in set (0.00 sec)mysql show variables like %log%;#需要看到这样的一行,说明binlog已经开启了: log_bin | ON在master上为slave建立用户mysql grant replication slave, reload, super on *.* to slaveT0.* identified by 123

13、456;这样,主机配置完毕。配置slaveserver-id= 2 #随便什么数字,多台slave注意不能为重复就 可以了。#log_bin= /var/log/mysql/mysql-bin.log #slave 的 binlog就没有必要再开启了。注释掉。=192.168.0.3=slave=123456#master 的 IP#上面操作中,建立的用户名#上面操作中,建立的密码master-hostmaster-usermaster-password重启slave,检查salve状态slave:mysql show slave status;#很多很多列接下来,将主机数据copy过来这个流

14、程比较复杂:)各个步骤注意所在的机器slave:mysql stop slave; #停掉 slave 的复制先。master:mysql flush tables with read lock;锁掉 master 服务器的所有表, 禁止写入。master:mysql show master status; #还是上面的语句,查看并记录下 Filemysql-bin.000002, Position 1087+| File| Position | Binlog_Do_DB|Binlog_Ignore_DB |+-+| mysql-bin.000002 |1087 | DB_AdidasFoot

15、ball,DB_CodeBuilder | test|+-+1 row in set (0.00 sec)chluomaster:$ mysqldump AdidasFootball AdidasFootball.sql #在命令 行中导出DB的数据,这里是bash操作:)master:mysql unlock tables; #导出完成之后,解锁。master可以继续跑起 来了。chluoslave:$ mysql AdidasFootball change master to- master_log_file=mysql-bin.000002, #将这里修改为刚记录下来的数据- master_log_pos=1087; #还有这里 slave:mysql start slave;完成。注意事项从机必须有其需要的数据库,才能够进行同步,否则会忽略。=老王指正=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号