mysql高可用 mysql三个分支 mysql-coding事件衍生知识 数据库高可用-python重连数据库包DBUtils

一 了解 mysql历史

Percona公司更偏向于运维工具;MariaDB更偏向于功能的完善;Oracle MySQL它介于两者之间。
本文coding的主角是 MariaDB 容器镜像:

mariadb-galera:10.4.12-debian-10-r88

模式:

mysql -uroot -p$MARIADB_ROOT_PASSWORD -e "select * from mysql.wsrep_cluster_members;"

二 有兴趣的同学 可以简单了解 mysql五种高可用方案

https://zhuanlan.zhihu.com/p/25960208

三 重点说说 MariaDB Galera Cluster缺点

加入新节点时开销大,需要复制完整数据;
不能有效地解决写扩展的问题,所有的写操作都发生在所有的节点;
有多少个节点,就有多少份重复的数据;
由于事务提交需要跨节点通信,即涉及分布式事务操作,因此写入会比主从复制慢很多,节点越多,写入越慢,死锁和回滚也会更加频繁;
对网络要求比较高,如果网络出现波动不稳定,则可能会造成两个节点失联,Galera Cluster集群会发生脑裂,服务将不可用.
仅支持InnoDB/XtraDB存储引擎,任何写入其他引擎的表,包括mysql.*表都不会被复制,DDL语句可以复制,但是insert into mysql.user(MyISAM存储引擎)之类的插入数据不会被复制;
Delete操作不支持没有主键的表,因为没有主键的表在不同的节点上的顺序不同,如果执行select … limit …将出现不同的结果集;
整个集群的写入吞吐量取决于最弱的节点限制,集群要使用同一的配置.
————————————————
版权声明:本文为CSDN博主「willblog」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/networken/article/details/106297814

四 Python数据库连接池DBUtils

原文:https://blog.csdn.net/zhaihaifei/article/details/54016939/
使用mysqldb自带的conn.ping(重连

def executeSQL(self,sql=""):
        try:
            self.conn.ping()
        except Exception,e:
            self.log.error("Msql出了问题")
            self.log.error(str(e))
            while True:
                try:
                    self.conn = MySQLdb.connect(self.config.get('mysql_server'),self.config.get('mysql_user'),self.config.get('mysql_pass'),self.config.get('mysql_db_name'),connect_timeout=60,compress=True,charset="UTF8")
                    break
                except Exception,e:
                    self.log.error("尝试重连接失败")
                    time.sleep(2)
                    continue
            self.cursor=self.conn.cursor()
        try:
            self.cursor.execute(sql)
            self.conn.commit()
            return 1
        except Exception,e:
            self.log.error(str(e))
            return 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值