Maxscale db 防火墙
数据库防火墙过滤器用于阻止与一组规则匹配的查询。与传统的基于GRANT的特权系统相比,它可以用于防止有害的查询到达后端数据库实例,或者限制对数据库的访问。目前,该过滤器不支持多语句。
https://mariadb.com/kb/en/mariadb-enterprise/5954/
先看个配置样例123456789101112[DatabaseFirewall]type=filtermodule=dbfwfilterrules=/home/user/rules.txt[Firewalled Routing Service]type=servicerouter=readconnrouterservers=server1user=myuserpasswd=mypasswdfilters=DatabaseFirewall
Rule 语法1234rule NAME deny { wildcard | columns VALUE... | regex REGEX | limit_queries COUNT TIMEPERIOD HOLDOFF | no_where_clause ...
Maxscale routing hints
Maxscale 的允许对router规则施加hint,强制sql重定向到某台指定server。
这对于某些不能容忍主从延时的操作,比如创建商品订单,紧接着要查看订单内容,非常有用,可以直接hint到master进行查询,可以保持很好的用户体验。
1.准备工作1.1开启hint模块要使用它routing hints,需要启用 hintfilter 模块,
123456789101112[Read Service]type=servicerouter=readconnrouterouter_options=masterservers=server1user=maxuserpasswd=maxpwdfilters=Hint #在服务中调用此模块[Hint]type=filtermodule=hintfilter #启动模块
为了便于观察,我们还要设置参数 log_info=1 ,方便日志输出。
1.2 测试脚本准备这个功能在CLi看不到,需要写到程序中,我们用python演示。需要的大体环境在此简单罗列,
1234yum install python-devel mys ...
DBProxy FAQ
Q1:公司内部使用的DBProxy相对于360开源的Atlas做了哪些改进?详见 release_notes
Q2:CentOS/Ubuntu/**Debian默认源中glib2的版本是2.28.**8-4.el6,会导致DBProxy make报错,如何获取正确glib2版本?glib-2.4.2.0.tar.xz download
编译安装的步骤
(1) 安装依赖项
Ubuntu & Debian
apt-get install gettext libffi-dev automake python
CentOS
yum install zlib-devel zlib libffi libffi-devel gettext automake libtool autoconf
(2) 运行 autoreconf命令
autoreconf -ivf
(3) 运行如下命令进行安装
12345678910111213tar xf glib-2.42.0.tar.xzcd glib-2.42.0./configuremake[ Become root if nece ...
DBProxy USER GUIDE
DBProxy是由美团点评公司技术工程部DBA团队(北京)开发维护的一个基于MySQL协议的数据中间层。它在奇虎360公司开源的Atlas基础上,修改了部分bug,并且添加了很多特性。目前DBProxy在美团点评广泛应用,包括美团支付、酒店旅游、外卖、团购等产品线,公司内部对DBProxy的开发全面转到github上,开源和内部使用保持一致。目前只支持MySQL(Percona)5.5和5.6。
主要功能:
读写分离
从库负载均衡
IP过滤
分表
DBA可平滑上下线DB
自动摘除宕机的DB
监控信息完备
SQL过滤
从库流量配置
本文整理自Github上DBProxy的文档
1 总体信息 1.1 关于本手册 1.2 DBProxy概述 1.2.1 DBProxy简介 1.2.2 DBProxy主要特性 1.2.3 DBProxy发展历程 1.3 文档中的符号含义说明 1.4 约定 1.5 各发布版本信息2 安装与部署3 使用教程 ...
来自Mcafee的MySQL审计插件
项目地址https://github.com/mcafee/mysql-audit/
安装将安装包libaudit_plugin.so文件复制到 plugin_dir 目录
1234567mysql> show global variables like 'plugin_dir';+---------------+------------------------------+| Variable_name | Value |+---------------+------------------------------+| plugin_dir | /usr/local/mysql/lib/plugin/ |+---------------+------------------------------+1 row in set (0.01 sec)
可以使用两种方式安装,
1234567方法1:[mysqld] plugin-load=AUDIT=libaudit_plugin.so 不需要重启,生产环境建议 ...
DRBD 配置
DRBD(Distributed Replicated Block Device) 分布式复制块设备,这是一种基于软件、无共享、复制的解决方案。在服务器之间的块设备(包括硬盘、分区、逻辑卷)进行镜像。也就是说当某一个应用程序完成写操作后,它提交的数据不仅仅会保存在本地块设备上,DRBD也会将这份数据复制一份,通过网络传输到另一个节点的块设备上,这样,两个节点上的块设备上的数据将会保存一致,这就是镜像功能。
环境说明
主机1
主机2
hostname
s1
s2
IP
192.168.1.202
192.168.1.203
DRDB
基础环境配置设置主机名1234567[root@s1 /]# hostname s1[root@s1 /]#vim /etc/sysconfig/network HOSTNAME=s1[root@s2 /]# hostname s2[root@s2 /]#vim /etc/sysconfig/network HOSTNAME=s2
关闭防火墙和selinuxs1,s ...
HeartBeat 实现 HAproxy 双机高可用
Heartbeat 官方介绍 Heartbeat is a daemon that provides cluster infrastructure (communication and membership) services to its clients. This allows clients to know about the presence (or disappearance!) of peer processes on other machines and to easily exchange messages with them. In order to be useful to users, the Heartbeat daemon needs to be combined with a cluster resource manager (CRM) which has the task of starting and stopping the services (IP addresses, web servers, etc.) that cluster w ...
MySQL HA with Fabric
环境概述
此文将搭建一个两节点的fabric HA集群环境如下:主机: centos6.5MySQL: 5.7.18 多实例
角色
IP
port
备注
Fabric
localhost
3306
管理节点
node1
localhost
3307
HA成员
node1
localhost
3308
HA成员
安装FabricFabric现在已经合并到 utilities 中了,但是,下载注意官方的提示:MySQL Fabric is included in MySQL Utilities versions prior to 1.6.2.1.6.2之前它还在 utilities 里,但是目前最新的GA版本号是1.6.5,并不在里面,我们需要下上一个GA。链接在此:https://cdn.mysql.com//Downloads/MySQLGUITools/mysql-utilities-1.5.6-1.el6.noarch.rpmrpm 一下就可以用了。
MySQL配置重点设置下面四个参数
1234log_bingtid-mode=ONenforce-gtid ...
克隆虚拟机后的网卡报错
克隆完虚拟机,网卡肯定启动不起来。
会报错
12345service network restartShutting down loopback insterface: [ OK ]Bringing up loopback insterface: [ OK ]Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. [FAILED]
处理起来很简单,修改,/etc/udev/ru ...
MySQL 基于文件位置的复制到GTID复制的跨版本升级
MySQL 5.6 引入了global transaction identifiers (GTIDs,全局事务ID)的特性,这一特性是用来解决主从复制(replication)场景下的一些问题,GTID 只存在于 binlog 中,数据库中是没有的。
要了解 GTID 的话,官方文档是一定要看的,另外再推荐推荐三篇 Oracle 同学写的文章(需爬墙):
Failover and Flexible Replication Topologies in MySQL 5.6
Advanced use of Global Transaction Identifiers
Flexible Fail-over Policies Using MySQL and Global Transaction Identifiers
有兴趣的话也可以看下 GTID 的 worklog WL#3548
升级遇到的问题
GTID 能很好的解决 failover 问题,做到主库切换自动化,减轻 DBA 同学的负担,但是这个前提是所有的 MySQL 实例都是 5.6,如果线上实例是 5.5 的,必须全部升到 5 ...