python主从_Python 体验 MySQL 主从复制过程

这两天一直在尝试想利用mysql的主从复制架构去做些东西,所以大胆尝试了一把。

网上也一直流传mysql的master/slave的可靠性、健壮性、成熟性...

最后一步就是把程序架上去,本来考虑选型PHP

Zend框架来测试的,可能是回顾最近Python的学习体会,而且python的脚本也比较简单,于是就是他了。

整个体验操作几天前已抽空完成,现在回顾总结整个过程,提纲大致如下:

了解mysql主从复制原理

真实机配置安装

通过不同配置操作验证整个复制过程

安装MySQLdb

写python脚本,批量操作数据

观察数据复制效果

一、了解MySQL主从复制原理

主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。

当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。

从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

考虑到有些架构的复杂性,有主-从-从/主-主-从等,但有一种情况要尽量避免,那就是尽量不要对从数据做更新操作,否则同步会因为冲突而停止。

如果有冲突发生要尽早预警,更改同步位置,继续开启同步过程。

二、真实机配置安装

1.配置主 172.16.74.48 在my.cnf 文件 [mysqld]段后,修改如下

vi /etc/my.cnf

server-id = 1

1.) 启动msyql

service mysqld start

2.) 分别给两台slave授权

mysql> GRANT REPLICATION SLAVE ON

*.* TO 'slave74_49'@'172.16.74.49' identified by

'123456';

mysql> GRANT REPLICATION SLAVE ON

*. * TO'slave74_46'@'172.16.74.46' identified by

'123456';

2.分别配置两台slave

1.) 第一台(ip 172.16.74.46)

vi /etc/my.cnf

server-id = 2

master-host = 172.16.74.48

master-user = slave74_46

master-password = 123456

启动msyql

service mysqld start

进入mysql 输入以下命令

mysql> START slave;

mysql> quit;

2.)第二台(ip 172.16.74.49)

vi /etc/my.cnf

server-id = 3

master-host = 172.16.74.48

master-user = slave74_49

master-password = 123456

启动msyql

service mysqld start

进入mysql 输入以下命令

mysql> START slave;

mysql> quit;

三、通过不同配置操作验证整个复制过程

四、安装MySQLdb

大多数人应该在这里会走弯路,在python setup.py make 提示失败!

下载后执行该模块即可在线安装最新版本的 easy_install

# python ez_setup.py

通过这种方式就安装成功了 easy_install ,之后可用如下方式安装扩展模块 XXX

# easy_install XXX

比如安装MySQLdb:

# easy_install MySQLdb

MySQLdb在Python中也就相当于JAVA中的MySQL的JDBCDriver同理对待即可!

如果碰到以下问题,参考如下:

export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql:$LD_LIBRARY_PATH

or

ln -s /usr/local/mysql/lib/libmysqlclient_r.so.16 /usr/lib/libmysqlclient_r.so.16

五、写python脚本,批量操作数据

通过python批量插入100W条数据,共耗时385秒!

六、观察数据复制效果

我尝试过用我最快的速度去查看slave的同步状态,感官几乎分辨不出差别,近乎实时!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值