Check OGG  until no data queuing in replication process:testRO:a)login  test5 –l oggmgrb)oggc)#ggsci> lag *check lag=0{note: when check lag result = 0, proceed next step]  [GGSCI的lag命令可以查询复制延迟, 如:    GGSCI> lag <replicat>](At EOF, no more reco…
It is great to be able to build small utilities on top of an excellent RDBMS. Thank you MySQL. This is a small but complex utility to perform online schema change for MySQL. We call it OSC and the source is here. Some ALTER TABLE statements take too…
  需求变更是信息化过程中的家常便饭,而在变更过程中如何尽可能小的影响在线业务是比较头疼的事情.举个车联网监控的例子:原终端设备上传车辆的经纬度数据,新的终端设备支持同时上传速度数据,而旧的车辆状态表数据量超过亿级,此时如果Alter table add column将会造成数据表上锁,导致上传或查询车辆状态数据等待.AppBoxFuture的存储引擎在设计之初也是采用锁表的方案,后来考虑到上述应用场景决定支持online schema change,但带来了另一个难题是如何保证分布式环境下的一…
F1: A Distributed SQL Database That Scales   http://disksing.com/understanding-f1-schema-change   mark…
http://severalnines.com/blog/online-schema-upgrade-mysql-galera-cluster-using-toi-method     As a follow-up to the Webinar on Zero Downtime Schema Changes in Galera Cluster, we’ll now walk you through the detailed steps on how to update your schema.…
这是<高性能 MySQL(第三版)>第四章<Schema 与数据类型优化>的读书笔记. 1. 选择优化的数据类型 数据类型的选择原则: 越小越好:选择满足需求的最小类型.注意,增大数据类型的范围是耗时操作,尽量避免. 简单:整型比字符操作代价更低. 尽量避免 NULL 列:列最好指定为 NOT NULL,除非确实可以是 NULL.如果查询中包含可为 NULL 的列,会使索引.索引统计和值比较都更复杂.可为 NULL 的列占用更多存储空间,在 MySQL 里也需要特殊处理.如果可为…
一.安装 percona 包 1.安装仓库的包 https://www.percona.com/doc/percona-repo-config/yum-repo.html sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm 如果成功将看下如下信息 [root@node1 ~]# sudo yum install http://…
有一个表有上千W数据, 用什么方法给这个表加一个字段最快?1. alert2. 建一个表和第一个表一样,只是多了要加的字段,然后用多个INSERT INTO SELECT语句limit写入3. 就是导出多个文件,然后用loadfile4. 其它? 试过2.5KW数据, alert要156m.INSERT INTO SELECT 100W要5m46s 两个工具选择: http://www.percona.com/software/percona-toolkit http://www.percona…
Awesome Big Data A curated list of awesome big data frameworks, resources and other awesomeness. Inspired byawesome-php, awesome-python, awesome-ruby, hadoopecosystemtable & big-data. Your contributions are always welcome! Awesome Big Data Frameworks…
Servlet3.0提供@WebFilter注解将一个实现了javax.servlet.Filter接口的类定义为过滤器,这样我们在web应用中使用过滤器时,也不再需要在web.xml文件中配置过滤器的相关描述信息了. 下面我们来创建一个过滤器,体验一下使用@WebFilter注解标注过滤器,如下所示: 过滤器的代码如下: 1 package me.gacl.web.filter; 2 import java.io.IOException; 3 import javax.servlet.Filt…
https://github.com/onurakpolat/awesome-bigdata A curated list of awesome big data frameworks, resources and other awesomeness. Inspired by awesome-php, awesome-python, awesome-ruby, hadoopecosystemtable & big-data. Your contributions are always welco…
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了.下面就针对Mycat的基础知识和应用做一总结性梳理,这些内容有的是从网上收集的,有的是自己做的测试验证信息,如有错误,烦请谅解和指出! 一.MyCat简单介绍MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以…
https://files-cdn.cnblogs.com/files/aquester/Linux后台开发工具箱.pdf 目录 目录 1 1. 前言 3 2. 脚本类工具 3 2.1. sed命令-字符串文本操作 3 2.2. sed和awk使用外部变量 4 2.3. awk给外部变量赋值 4 3. 设备类工具 4 3.1. 查看网卡型号 4 3.2. dmidecode查看所有硬件信息工具 5 3.3. lscpu查看cpu工具 5 3.4. lspci查看主板工具 5 3.5. lsscs…
David Berube  | June 12, 2018 |  Posted In: MySQL Modern applications often feature the use of data in many different languages. This is often true even of applications that only offer a user facing interface in a single language. Many users may, for…
Table of Contents Analyze MySQL PerformanceTuningSlow queries and Slowlog Brought to you by Rick James Analyze MySQL Performance When asked to analyze the performance of a MySQL server, there are two main tasks (tuning and slowlog) I like to start wi…
在安装MariaDB的时候了解到代替InnoDB的TokuDB,看简介非常的棒,这里对ToduDB做一个初步的整理,使用后再做更多的分享. 什么是TokuDB? 在MySQL最流行的支持全事务的引擎为INNODB.其特点是数据本身是用B-TREE来组织,数据本身即是庞大的根据主键聚簇的B-TREE索引. 所以在这点上,写入速度就会有些降低,因为要每次写入要用一次IO来做索引树的重排.特别是当数据量本身比内存大很多的情况下,CPU本身被磁盘IO纠缠的做不了其他事情了.这时我们要考虑如何减少对磁盘的…
分形树简介 原文:http://www.bitstech.net/2015/12/15/tokudb-index-introduction/ 分形树是一种写优化的磁盘索引数据结构. 在一般情况下, 分形树的写操作(Insert/Update/Delete)性能比较好,同时它还能保证读操作近似于B+树的读性能.据Percona公司测试结果显示, TokuDB分形树的写性能优于InnoDB的B+树), 读性能略低于B+树. 类似的索引结构还有LSM-Tree, 但是LSM-Tree的写性能远优于读性…
1 OSC介绍 在我们的数据库操作中,更改表结构是一个常见的操作,而当我们的表数据量非常大时,我们更改表结构的时间是非 常的长,并且在跟改期间,会生成一个互斥锁,阻塞对整个表的所有操作,这样,对于我们线上数据来说是无法容忍 的,以往的做法中,为了不影响线上业务,我们一般采用:先在线下从库更改表结构,然后替换线上从库,这样一台 台的修改,最后做一下主库切换,这个过程会耗费很长时间,并且在做主库切换时,风险也非常的大,OSC(Online Schema Change)大多都是利用了触发器的原理,实现…
1.安装准备 Zabbix4.0对基础架构有一定的要求,对的英文尤其PHP状语从句:MySQL: 类型 内容 服务端运行环境 Linux和PHP与Web服务器和数据库 服务端操作系统 CentOS7.5-1804 PHP PHP 5.4.0(官方要求5.4.0+) Web服务器 Apache2.4.6(官方要求1.3.12+) 数据库 Percona的服务器57-5.7.22(官方要求5.0.3 - 8.0.x) 安装方式 YUM RPM 客户端操作系统 AIX / Linux / Window…
ylbtech-MySQL-TokuDB:MySQL 高性能存储引擎:TokuDB 1.返回顶部 1. 在安装MariaDB的时候了解到代替InnoDB的TokuDB,看简介非常的棒,这里对ToduDB做一个初步的整理,使用后再做更多的分享. 什么是TokuDB? 在MySQL最流行的支持全事务的引擎为INNODB.其特点是数据本身是用B-TREE来组织,数据本身即是庞大的根据主键聚簇的B-TREE索引. 所以在这点上,写入速度就会有些降低,因为要每次写入要用一次IO来做索引树的重排.特别是当数…
一.pt-online介绍 pt-online-schema-change是percona公司开发的一个工具,在percona-toolkit包里面可以找到这个功能,它可以在线修改表结构 原理: 首先它会新建一张一模一样的表,表名一般是_new后缀 然后在这个新表执行更改字段操作 然后在原表上加三个触发器,DELETE/UPDATE/INSERT,将原表中要执行的语句也在新表中执行 最后将原表的数据拷贝到新表中,然后替换掉原表 使用pt-online-schema-change执行SQL的日志…
Linux后台开发工具箱-葵花宝典 一见 2016/11/4 目录 目录 1 1. 前言 4 2. 脚本类工具 4 2.1. 双引号和单引号 4 2.2. 取脚本完整文件路径 5 2.3. 环境变量和变量 5 2.4. sed命令-字符串文本操作 5 2.5. sed和awk使用外部变量 6 2.6. awk给外部变量赋值 6 2.7. 浮点计算 6 2.8. 字符串操作 7 2.8.1. 删除前尾空格 7 2.8.2. 大小写转换 7 2.8.3. 不区分大小写比较 7 2.8.4. 取字符串…
Awesome Go      financial support to Awesome Go A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python. Contributing Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you…
第13章 迁移.升级.备份.恢复数据库本章将为读者讲述数据库的各种维护任务:迁移.升级.备份和恢复.因为每个人熟悉的工具不同,其对应的迁移.升级.备份和恢复的方式也都略有不同,本书将尽量对笔者认为最具普遍性的一些操作进行讲述.另外还整理出了一些注意事项,DBA需要有缜密的思维,要考虑到可能出现的各种情况,并能够冷静地处理异常情况. 13.1 升级 MySQL的升级主要有两类,一种是对数据库表结构或数据的变更,另一种是数据库版本的升级. 13.1.1 升级表结构或变更数据 可以直接在命令行下键入S…
使用场景 在线数据库的维护中,总会涉及到研发修改表结构的情况,修改一些小表影响很小,而修改大表时,往往影响业务的正常运转,如表数据量超过500W,1000W,甚至过亿时 在线修改大表的可能影响 在线修改大表的表结构执行时间往往不可预估,一般时间较长 由于修改表结构是表级锁,因此在修改表结构时,影响表写入操作 如果长时间的修改表结构,中途修改失败,由于修改表结构是一个事务,因此失败后会还原表结构,在这个过程中表都是锁着不可写入 修改大表结构容易导致数据库CPU.IO等性能消耗,使MySQL服务器性…
Mycat读写分离.主从切换.分库分表的操作记录   系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了.下面就针对Mycat的基础知识和应用做一总结性梳理,这些内容有的是从网上收集的,有的是自己做的测试验证信息,如有错误,烦请谅解和指出! 一.MyCat简单介绍MyCat是一个开源的分布式数据库…
前言: 随着互联网技术的不断发展, MySQL 相关生态也越来越完善,越来越多的工具涌现出来.一些公司或个人纷纷开源出一些不错的工具,本篇文章主要介绍几款 MySQL 相关实用工具.提醒下,这里并不介绍 Navicat 等这类图形化操作工具哦. 1. SQL 审核 web 工具 SQL 审核与执行,可能是各个公司或团队比较困扰的事情.若没有平台工具支持,只能通过人工的方式来处理,效率低且质量没办法保证.为了规范操作,提高效率,大多数团队可能会自己开发或引入开源工具.这里介绍两款开源免费的 web…
使用场景: 在线修改大数据量表结构(ALTER tables without locking them) 文档参考:https://www.percona.com/doc/percona-toolkit/LATEST/pt-online-schema-change.html 好处: 降低主从延时的风险 可以限速.限资源,避免操作时MySQL负载过高 建议: 在业务低峰期做,将影响降到最低 直接原表修改缺点: 当表的数据量很大的时候,如果直接在线修改表结构,严重影响线上环境,而且耗时不可预估 注意…
更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlockingSession.execute()触发: public void execute(RouteResultset rrs, int type) { // clear prev execute resources clearHandlesResources(); if (LOGGER.isDe…
前言 SQLite作为嵌入式数据库,通常针对的应用的数据量相对于DBMS的数据量小.所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面.而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多.就拿Oracle来说吧,它对数据文件不仅从物理上进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分DM也一样.不管怎么说,数据库文件要存储大量的数据,为了更好管理,查询和操作数据文件,DBMS不得不从物理上.逻…