主从复制Linux版本
配置主服务器
在[mysqld]节点下加入两句话
重启服务:service mysql restart
登录mysql:mysql –uroot -proot
配置从服务器
修改/etc/my.cnf增加一行
重启服务
通过mysql命令配置同步日志的指向:
master_host 主服务器的IP地址
master_port 主服务器的PORT端口
master_log_file 和主服务器show master status中的File字段值相同
master_log_pos 和主服务器show master status中的Position字段值相同
启动从服务
注意:如果出错,可以看后面的错误信息。观察Slave_SQL_Running_State字段,它会记录详细的错误信息。如果正常,上面两个线程执行都应该是YES。这样当主库创建数据库、创建表、插入数据时,从库都会立刻同步,这样就实现了主从复制。
扩展:同步日志
binlog基本定义:二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存到磁盘中。
作用:可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和局域时间点的恢复)、MySQL的复制(主主数据库的复制、主从数据库的复制)
二进制日志的信息:
1)文件位置:默认存放位置为数据库文件所在目录下 /var/lib/mysql
2)文件的命名方式:名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog)
3)状态的查看
保存日志的格式是二进制不能直接查看,必须借助命令行工具才能阅读。mysql自带了mysqlbinlog工具,一般放置在mysql安装目录下的bin目录下执行
mysqlbinlog mysql-bin.000001
后面那个参数是日志文件,日志文件一般放在mysql的数据库存储文件目录下,以配置文件log-bin的值为文件名,一串000001这样的数字为扩展名。
拓展:从库只读主从复制还可以进行吗/p>
一主两从
一主多从
这种方案好处是对主的影响最小,但缺点是越往后的同步的时间越久。
注意:这两种方式的同步都会有时间差,在非常大的并发下,同步的时间差就会暴漏出来,导致可能查询的数据读到脏数据。
所以最终解决方案应该是分布式。
主从从链条
这种结构不行。第二个从配置为第一个从的子节点。目的是,主修改数据,从1数据随主修改,从2数据随从1修改。但实际中是实现不了的。现象为主修改,从1修改,从2不变。从1修改,从2才修改。
分布式数据库系统的优点
降低费用。分布式数据库在地理上可以式分布的。其系统的结构符合这种分布的要求。允许用户在自己的本地录用、查询、维护等操作,实行局部控制,降低通信代价,避免集中式需要更高要求的硬件设备。而且分布式数据库在单台机器上面数据量较少,其响应速度明显提升。
提高系统整体可用性。避免了因为单台数据库的故障而造成全部瘫痪的后果。
易于扩展处理能力和系统规模。分布式数据库系统的结构可以很容易地扩展系统,在分布式数据库中增加一个新的节点,不影响现有系统的正常运行。这种方式比扩大集中式系统要灵活经济。在集中式系统中扩大系统和系统升级,由于有硬件不兼容和软件改变困难等缺点,升级的代价常常是昂贵和不可行的。
微信开源PhxSQL
PhxSQL 是一个兼容 MySQL、服务高可用、数据强一致的关系型数据库集群。
PhxSQL 以单 Master 多 Slave 方式部署,在集群内超过一半机器存活的情况下,可自身实现自动 Master 切换,且保证数据一致性。PhxSQL 基于 Percona 5.6 开发。Percona 是 MySQL 的一个分支,功能和实现与 MySQL 基本一致。
配置步骤
1) 主从复制时,只需把从slave01复制一下即可,变成从slave02。无需修改server-id,无需修改auto.cnf。
2) 修改配置文件
a)dbServer.xml
增加一个dbServer节点:
修改multiPool配置
注意:如果让master也负责读,就配置;如果master只负责写就从这里删除。
b)amoeba.xml
如果只是一个从就直接写从的名称也可以
如果要配置多个从,就必须写multiPool。引用dbServer.xml中配置的这个节点名称
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24909 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!