mysql
Miles_sys
这个作者很懒,什么都没留下…
展开
-
mysql隔离级别
原文链接 MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读转载 2016-10-21 10:21:02 · 382 阅读 · 0 评论 -
mysql 硬件环境优化
BIOS设置 其中#设置服务器在最大性能模式运行(很重要)Power Management → Power Profile Maximum Performance#intel超线程选项 Intel Hyperthreading Options IPMI配置(远程管理)磁盘 机械硬盘 SSD(建议使用MLC)SLC性能最好,价格最高,寿命长MLC折中方案原创 2016-09-12 15:20:23 · 556 阅读 · 0 评论 -
show binlog events
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]用于在二进制日志中显示事件。如果您不指定’log_name’,则显示第一个二进制日志。 LIMIT子句和SELECT语句具有相同的语法。实验:mysql> create table tbl (test TEXT);Query OK, 0 rows af原创 2016-07-21 11:29:18 · 2675 阅读 · 0 评论 -
MaxScale 安装
参考文档安装Step 1. 安装MariaDB Enterprise repository configuration package# rpm -i http://downloads.mariadb.com/enterprise/hakg-cyew/generate/10.1/mariadb-enterprise-repository.rpmStep 2. 安装MaxScale # yum ins原创 2016-07-20 16:54:34 · 1326 阅读 · 0 评论 -
mysqlbinlog
软件版本mysql> select version();+------------+| version() |+------------+| 5.6.27-log |+------------+1 row in set (0.00 sec)官方文档地址ROW模式优点:row level模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改原创 2016-07-29 17:30:39 · 473 阅读 · 0 评论 -
innodb缓冲池
innodb存储引擎缓冲池设置为21GBmysql> show variables like 'innodb_buffer_pool_size'\G;*************************** 1. row ***************************Variable_name: innodb_buffer_pool_size Value: 21474836原创 2016-06-23 15:50:22 · 640 阅读 · 0 评论 -
mysql后台线程
master thread 核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲、undo页的回收等。 IO thread 主要负责IO请求的回掉处理。分别为write、read、insert buffer和log IO thread。线程数量可以通过参数进行调整mysql> show variables like 'innodb_versio原创 2016-06-21 17:59:57 · 2533 阅读 · 0 评论 -
centos6.5 mysql5.6.24 单实例二进制包安装
检查系统是否含有mysql相关组件# rpm -qa |grep mysqlmysql-libs-5.1.71-1.el6.x86_64移除相关组件# yum remove mysql-libs*下载mysql二进制包# wget http://120.52.72.24/cdn.mysql.com/c3pr90ntc0td/archives/mysql-5.6/mysql-5.6.24-linux原创 2016-07-18 23:46:17 · 1132 阅读 · 0 评论 -
centos6.5 mysql5.6.24 单机多实例安装
单实例安装请参照该文档,本文再次基础上进行安装复制已有的配置文件# pwd/etc/mysql# cp -p mysql3306.cnf mysql3307.cnf # lltotal 8-rw-r--r--. 1 mysql mysql 2368 Jul 19 06:59 mysql3306.cnf-rw-r--r--. 1 mysql mysql 2368 Jul 19 06:59原创 2016-07-19 11:26:26 · 1943 阅读 · 0 评论 -
MySQL树形查询
原文链接 本文实例讲述了MySQL实现树状所有子节点查询的方法。分享给大家供大家参考,具体如下:在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深转载 2016-07-08 12:07:25 · 2540 阅读 · 0 评论 -
mysqldump原理及实践
系统环境# cat /etc/redhat-releaseCentOS release 6.5 (Final)# uname -aLinux miles 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux软件版本mysql> select version();+--原创 2016-07-28 21:45:26 · 479 阅读 · 0 评论 -
mysql体系结构
mysql主要由以下几部分组成 连接池组件管理服务和工具组件SQL接口组件查询分析器组件优化器组件缓冲组件插件式存储引擎物理文件原创 2016-06-22 21:24:55 · 319 阅读 · 0 评论 -
nginx as Database Load Balancer for MySQL or MariaDB Galera Cluster
原文链接Nginx is well-known for its ability to act as a reverse-proxy with small memory footprint. It usually sits in the front-end web tier to redirect connections to available backend services, provided转载 2016-07-18 17:51:35 · 1075 阅读 · 0 评论 -
mysql 半同步 5.6及5.7
5.6mysql半同步复制的原理图 通过图片,我们看到,当master提交事务时,并不等待slave节点确认。所以并不保证slave节点的事务是否也能commit成功(例如duplicate key error)。因此可能出现主库提交的数据,从库看不到的现象。5.7mysql半同步复制的原理图 通过图片,我们可以看到5.7把slave端ACK提前了。但是依然会有问题出现。当slave端ACK超原创 2016-09-13 14:07:49 · 1280 阅读 · 0 评论 -
mysql relay_log_recovery relay_log_info_repository
relay-log-info记录SQL线程读取Master binlog的位置,用于Slave 宕机后根据文件中记录的pos点恢复Sql线程master-info 记录IO线程读取已经读取到的master binlog位置,用于slave宕机后IO线程根据文件中的POS点重新拉取binlog日志sync_relay_log_info执行多少个事务后将relay-log-info,sync一下文件刷新原创 2016-09-13 17:05:43 · 1619 阅读 · 0 评论 -
mysql 常用函数
字符串函数 mysql> select concat('a','b','c'),concat('a',null);+---------------------+------------------+| concat('a','b','c') | concat('a',null) |+---------------------+------------------+| abc原创 2016-09-21 11:59:54 · 332 阅读 · 0 评论 -
innodb 日志
日志两种格式 物理的日志 记录完整的页记录页中被修改的 内容逻辑日志 记录执行的 SQL 语句物理日志相对比较大,比如索引分裂是会影响很多记录,导致日志量很大 逻辑日志日志量会很小,但是会有部分执行 数据一致性问题物理日志 优点:恢复时可直接通过日志覆盖,不依赖原页面上面的内容。并且是幂等的。缺点:日志量很大逻辑日志优点:日志量小缺点: 插入记录时 , 如果表中有多个索引原创 2016-09-24 12:30:44 · 506 阅读 · 0 评论 -
mysql redo undo
redoredo是数据库实例恢复的重要组成部分。其目的是保证数据库实例或服务器发生故障时,不会导致数据库崩溃,不会丢失已经提交的数据。并且通过RWA机制保证数据库被变更之前,其redo日志必须先写入日志缓冲区,而事务提交之前也必须首先保证将日志缓冲区和这个事务相关的redo信息写入到redo日志文件。 通过这一机制,可以保证数据库宕机后,重新启动实例,数据库中没有被及时写入数据文件中的buffer原创 2016-09-24 12:18:27 · 407 阅读 · 0 评论 -
mysql innodb checkpoint
https://www.percona.com/blog/2011/02/03/how-innodb-handles-redo-logging/https://blogs.oracle.com/mysqlinnodb/entry/redo_logging_in_innodb原创 2016-09-24 11:56:26 · 799 阅读 · 0 评论 -
mysql 提交读 可重复读
环境mysql> select version();+------------+| version() |+------------+| 5.6.31-log |+------------+1 row in set (0.00 sec)提交读查看当前数据库隔离级别mysql> select @@global.tx_isolation,@@tx_isolation;+--------原创 2016-09-23 17:20:11 · 2362 阅读 · 0 评论 -
mysql 字符集
查看可用字符集mysql> show character set;+----------+-----------------------------+---------------------+--------+| Charset | Description | Default collation | Maxlen |+----------+--原创 2016-09-23 11:39:47 · 345 阅读 · 0 评论 -
How InnoDB performs a checkpoint
原文链接 InnoDB’s checkpoint algorithm is not well documented. It is too complex to explain in even a long blog post, because to understand checkpoints, you need to understand a lot of other things that I转载 2016-09-22 17:05:02 · 372 阅读 · 0 评论 -
mysql 数据类型
查看一下mysql版本mysql> select version();+------------+| version() |+------------+| 5.6.27-log |+------------+1 row in set (0.01 sec)数值类型 整数类型创建测试表t1mysql> create table t1 (id1 int, in2 int(5));Que原创 2016-09-20 15:18:33 · 400 阅读 · 0 评论 -
xtrabackup 增量备份 恢复
step 1: 全备# innobackupex --defaults-file=/data/my.cnf --no-timestamp /data/backup/full_xtra_3333_20160825 --user root --password beijing --socket /data/mysql.sock测试数据mysql> create database miles原创 2016-08-26 14:49:00 · 396 阅读 · 0 评论 -
Mysql: 利用Xtrabackup搭建从库
STEP 1: 生成备份并prepare主库做一个全备,做好看到 completed OK 表明备份成功# innobackupex --defaults-file=/etc/my.cnf --user root --password XXX --no-timestamp /home/ssd/ali_backup/full_xtra_3306_20160825_1...160825 14:57:原创 2016-08-25 16:15:18 · 1293 阅读 · 0 评论 -
mysql xtrabackup mysqlbinlog Point-In-Time recovery
恢复到特定的时间点,可以使用innobackupex 和数据库binlog日志首先,我们需要一个数据库快照,使用innobackupex 生成一个全库备份# innobackupex --defaults-file=/etc/my.cnf --user root --password XXXX --no-timestamp /home/ssd/ali_backup/full_xtra_3306_20原创 2016-08-25 12:02:50 · 530 阅读 · 0 评论 -
mysql GTID主从复制 跳过复制错误
在mysqlGTID下,使用SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n会产生如下错误ERROR 1858 (HY000): sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transactio原创 2016-08-24 11:01:41 · 2611 阅读 · 0 评论 -
mysql连接方式
TCP/IP当客户端和mysql实例不在同一台服务器上时,两台机器通过TCP/IP网络连接# mysql -h192.168.74.128 -uroot -p需要注意在通过TCP/IP连接时,mysql会先检查一张权限视图,用来判断客户端IP是否允许连接到实例mysql> select host,user,password from mysql.user\G********************原创 2016-06-21 15:04:55 · 439 阅读 · 0 评论 -
mysql 行转列
原文链接 本文介绍的实例成功的实现了动态行转列。下面我以一个简单的数据库为例子,说明一下。数据表结构这里我用一个比较简单的例子来说明,也是行转列的经典例子,就是学生的成绩 三张表:学生表、课程表、成绩表学生表 就简单一点,学生学号、学生姓名两个字段CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `转载 2016-06-20 16:19:05 · 938 阅读 · 0 评论 -
mysql查找配置文件的顺序
通过以下命令可以查看mysql 实例启动时,会在哪些位置查找配置文件# mysql --help|grep my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT,/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf /usr/local/mys原创 2016-06-20 21:20:43 · 1982 阅读 · 0 评论 -
mysql多实例安装
多实例部署优势:充分利用系统资源 mysql为单进程多线程的模型,它对多核的利用不是很好,无法充分利用系统资源。所以服务器上可以考虑多实例部署资源隔离 如果不同的业务,部署在一个实例里,那么连接数、缓存等资源都是共享的。如果某个业务压力很大的话,很可能影响另一个业务的正常运行业务、模块隔离 例如,A业务需要支持移动端,那么久需要升级数据库以支持utf8mb4字符集。而B业务则不需要原创 2015-12-04 15:01:46 · 324 阅读 · 0 评论 -
mysql升级
演示以及5.5升级到5.6 当前数据库信息mysql> status;--------------mysql Ver 14.14 Distrib 5.5.46, for Linux (x86_64) using readline 5.1Connection id: 2Current database:Current user: root@localh原创 2015-12-03 20:29:14 · 351 阅读 · 0 评论 -
mysql线上安装部署
线上部署考虑因素: 版本选择,5.1、5.5还是5.6?5.1官方已不再维护,不建议5.5是现在线上使用最多的版本5.6最新的稳定版,已发布3年多,现在使用的也很多分支选择,官方社区版?persona server ? Mariadb ?官方版 推荐使用persona server 管理性能上有改进,并且完全兼容mysqlMariadb 是mysql原班人马开发的原创 2015-12-02 10:14:47 · 688 阅读 · 0 评论 -
mysql备份与恢复实践案例
恢复误删数据 case:误操作,删除数据忘记带完整条件,执行 delete from user where age > 30 [ and sex - male ] 需求:将被删除数据还原 恢复前提:完整的数据库操作日志(binlog) 演示: 测试表数据mysql> select * from user;+----+------+------+------+------------原创 2015-11-25 17:11:01 · 460 阅读 · 0 评论 -
pid及socket文件丢失,数据库无法启动问题
日志如下151119 19:11:45 mysqld_safe mysqld from pid file /data/mysql/miles.pid ended151119 19:14:56 mysqld_safe Starting mysqld daemon with databases from /data/mysql151119 19:14:56 [Note] /usr/local/mys原创 2015-11-20 10:04:09 · 823 阅读 · 0 评论 -
MySql ibdata1文件瘦身
MySql ibdata1文件太大如何缩小MySql innodb如果是共享表空间,ibdata1文件越来越大,达到了30多个G,对一些没用的表进行清空: truncate table xxx; 然后optimize table xxx; 没有效果 因为对共享表空间不起作用。 mysql ibdata1存放数据,索引等,是MYSQL的最主要的数据。 如果不把数据分开存放的话,这个文件的大小转载 2015-11-19 20:08:47 · 660 阅读 · 0 评论 -
mysql数据备份与恢复基础
mysqldump备份 备份所有库[root@miles ~]# mysqldump -uroot -pbeijing --socket=/data/mysql/mysql.sock --all-databases>/home/mysql/backup/all_db.sql查看备份[root@miles backup]# pwd/home/mysql/backup[root@miles原创 2015-11-19 19:57:38 · 642 阅读 · 0 评论 -
centOS6.4下Percona-XtraBackup的安装
去官网下载新版的xtrabackupwget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/redhat/6/x86_64/Percona-XtraBackup-2.3.2-r306a2e0-el6-x86_64-bundle.tar拆包tar xvf Percona-XtraBackup-2原创 2015-11-18 17:14:24 · 1444 阅读 · 0 评论 -
mysql参数调优
为何要调整参数 不同服务器之间的配置、性能不一样不同业务场景对数据的需求不一样Mysql的默认参数只是个参考值,并不适合所有的应用场景优化之前我们需要知道什么服务器相关的配置 服务器型号操作系统版本内核版本磁盘存储介质(sas sata ssd)业务相关的情况 读多写少,读少写多业务数据增长量mysql相关的配置服务器上需要关注那些硬件情况 cpu(几核、超线程)内存原创 2015-12-09 21:05:56 · 717 阅读 · 0 评论 -
mysql备份策略的制定
需要考虑的因素:1. 数据库是不是都是innoDB引擎表 -》决定备份方式,热备或冷备2. 数据量大小 -》逻辑备(量小)或物理备,全量或增量3. 数据库本地空间是否充足 -》备份到本地或远程4. 需要多快恢复 -》备份频率 小时或天原创 2015-11-20 17:34:18 · 421 阅读 · 0 评论