Welcome 微信登录

首页 / 数据库 / MySQL

MySQL 物理备份死锁分析

MySQL 物理备份死锁分析

背景本文对 5.6 主备场景下,在备库做物理备份遇到死锁的case进行分析,希望对大家有所帮助。这里用的的物理备份工具是 Percona-XtraBackup(PXB),有的同学可能不清楚其备份流程,所以这里先简单说下,PXB的备份步骤是这样的: 1. 拷贝 InnoDB redo log,这是一个单独的线程在拷,直到备份结束; 2. 拷贝所有InnoDB ibd文件; 3. 加全局读锁,执行 FLUSH TABLES WITH READ LOCK(FTW...
Ubuntu 16.04.1 安装MyCat

Ubuntu 16.04.1 安装MyCat

Mycat是一个开源的分布式数据库系统,但是由于真正的数据库需要存储引擎,而Mycat并没有存储引擎,所以并不是完全意义的分布式数据库系统。安装Java环境,配置全局环境变量MyCAT是使用JAVA语言进行编写开发,使用前需要先安装JAVA运行环境(JRE),由于MyCAT中使用了JDK7中的一些特性,所以要求必须在JDK7以上的版本上运行。安装JDK,本文安装版本为jdk-8u101-linux-x64.tar.gz可以从官网http://www.ora...
MySQL升级 参考分享

MySQL升级 参考分享

MySQL的升级相对来说还是比较简单的。它支持两种方式的升级:原地升级(In-place Upgrade)关闭数据库,替换旧的二进制文件,重启数据库,执行mysql_upgrade逻辑升级(Logical Upgrade)用mysqldump导出数据,安装新的数据库版本,将数据导入到新的数据库中,执行mysql_upgrade但是MySQL版本众多,不仅有各种大版本,譬如5.1,5.5,5.6,5.7,同一个大版本中也会有各种小版本。那么官方支持怎么的升级...
浅析MySQL复制

浅析MySQL复制

MySQL的复制是基于binlog来实现的。流程如下涉及到三个线程,主库的DUMP线程,从库的IO线程和SQL线程。1. 主库将所有操作都记录到binlog中。当复制开启时,主库的DUMP线程根据从库IO线程的请求将binlog中的内容发送到从库。2. 从库的IO线程接受到主库DUMP线程发送的binlog事件后,将其写到本地的relay-log。3. 从库的SQL线程重放relay-log中的事件。实际上,在MySQL 4.0之前,复制只有两个线程,ma...
从MySQL 5.5迁移到MariaDB 10.1.14

从MySQL 5.5迁移到MariaDB 10.1.14

迁移计划如下: 1.备份MySQL 5.5的数据库,对指定库进行备份。 2.还原到Mariadb,然后建立复制。 3.然后就可以愿意啥时候切换就啥时候切换。遇到的问题: 因为一般都是innodb,所以我想用xtrabackup工具备份。备份后发现还原需要依赖innodb的表空间切换。 1.表空间切换,必须要打开innodb_file_per_table。也就是说所有的表都要有独立的文件。有一些表虽然是innodb但是存在ibdata下面。 幸好...
浅析MySQL基于ROW格式的二进制日志

浅析MySQL基于ROW格式的二进制日志

上文分析的二进制日志实际上是基于STATEMENT格式的,下面我们来看看基于ROW格式的二进制日志,毕竟,两者对应的binlog事件类型也不一样,同时,很多童鞋反映基于ROW格式的二进制日志无法查到原生的DML语句,关于这个问题,其实官方也给出了解决方案,下面,将一一揭晓。关于 MySQL二进制日志 http://www.linuxidc.com/Linux/2016-08/134341.htm首先,来几条测试数据mysql> set binlog_...
Linux 系统中的MySQL数据库默认区分大小写

Linux 系统中的MySQL数据库默认区分大小写

今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到,而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不区分大小写的,后来查资料才发现,在Linux系统中MySQL默认是严格区分大小写的,可以在配置文件中添加配置,用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时...
<< 941 942 943 944 945 946 947 948 949 950 >>