自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Data & Analysis

Data & Analysis & Safety

  • 博客(108)
  • 收藏
  • 关注

原创 【MySQL】online ddl 工具之pt-online-schema-change

MySQL ddl 的问题现状在运维mysql数据库时,我们总会对数据表进行ddl 变更,修改添加字段或者索引,对于mysql 而已,ddl 显然是一个令所有MySQL dba 诟病的一个功能,因为在MySQL中在对表进行ddl时,会锁表,当表比较小比如小于1w上时,对前端影响较小,当时遇到千万级别的表 就会影响前端应用对表的写操作。目前InnoDB引擎是通过以下步骤来进行DDL的:1...

2018-09-29 17:01:40 315

转载 5分钟了解MySQL5.7的Online DDL雷区

Part1:写在最前Online DDL,当新手听到这个名字的时候,非常高兴,以为无论什么情况下,修改表结构都不会锁表,理想很丰满,现实很骨感!读完本文,教你如何避开这些雷区,安全的修改表结构。话不多说,我们分别来看下MySQL5.6和MySQL5.7在修改表结构上的相同和异同。  Part2:5.6.25的表现①首先我们构造数据并进行测试mysql> create...

2018-09-29 16:06:50 179

转载 pt-online-schema-change原理解析

都说pt-toolkit工具集中的pt-online-schema-change可以在线不锁表修改表结构,那么这个工具具体是什么原理呢,请见下面娓娓道来: 1.pt-online-schema-change工具的使用限制:1)、如果修改表有外键,除非使用 --alter-foreign-keys-method 指定特定的值,否则工具不予执行2)、被修改表必须要有主键,否则报错:Ca...

2018-09-29 15:28:54 855

转载 案发现场:被注入的软件及 ORA-600 16703 灾难的恢复

最近帮助一个客户恢复数据库,遇到了如下这个问题。让我们再一次惊醒于数据安全,如果不做好防范,问题总是会来得猝不及防。 客户在尝试启动数据库时,是这样一个 ORA-600 错误映入眼帘,反复重试无法消除问题,历史备份,同样存在问题,客户毫无防范的,陷入一场数据库灾难: SQL*Plus: Release 11.2.0.4.0 Production on Fri Jul 20 22:...

2018-09-29 14:42:41 270

转载 mysql dml阻塞online ddl

1.版本1)操作系统 cat /etc/issuecat /etc/issueCentOS release 6.6 (Final)Kernel \r on an \m cat /proc/versioncat /proc/versionLinux version 2.6.32-504.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org...

2018-09-29 14:35:21 316

转载 MySQL Seconds_Behind_Master的问题

Seconds_Behind_Master:In essence, this field measures the time difference in seconds between the slave SQL thread and the slave I/O thread.上面解释了Seconds_Behind_Master这个值的真正含义,那么它的值到底是怎么计算出来的呢?官方解释如下:...

2018-09-29 13:27:31 383

转载 MySQL · 答疑解惑 · 备库Seconds_Behind_Master计算

背景在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log。备库sql线程执行relay log从而保持和主库同步。 理论上主库有更新时,备库都存在延迟,且延迟时间为备库执行时间+网络传输时间即t4-t2。那么mysql是怎么来计算备库延迟的?先来看show slave status中的一些信息,io线程...

2018-09-29 13:05:27 263

转载 MySQL同步状态双Yes的假象及seconds_behind_master的含义

近期由于特殊原因有一台主库宕机了一个小时没有处理,说起来这是个挺不好啥意思的事情,但是由于这个事情反而发现个比较诡异的情况,那就是在主库宕机一个小时候后,监控才发出从库IO thread中断的报警,也就是说在那一个小时内,从库的同步状态是双Yes的。这是多么诡异的现象,那么这是因为什么原因呢?我们下来分析一下。   众所周知,MySQL的同步是异步完成的,其中IO thread负责接收从主...

2018-09-29 11:16:06 551

转载 MySQL主库binlog(master-log)与从库relay-log关系代码详解

主库binlog: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

2018-09-29 10:59:19 1533

转载 MYSQL MDL锁之select阻塞ddl操作

今天做了一个简单的测试,当session1做一个小表的查询结束后,session2对些表做alter操作,发现session会由于拿不到这个 阻表的MDL锁而被阻塞,这种情况在oracle中是不会发生的,由于经常用oracle的思维去学mysql,觉得这样的结果有点不可思议。session 1:  mysql> use l5m Database changed ...

2018-09-28 17:18:27 566

转载 xtrabackup 备份恢复过程详解

xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速度快,占用磁盘空间小等特点,并且支持不同情况下的多种备份形式。xtrabackup的官方下载地址为http://www.percona.com/software/percona-xtrabackup。xtrabackup包含两个主要的工具,即xtraba...

2018-09-28 16:57:35 545

转载 mysql之 redo log

重做日志(redo log)前言:之前一直弄不清楚 mysql 里面 bin log 和 innodb log 文件的区别,在脑子里面一直有个疑问 binlog 日志文件已经可以用来进行数据库的日志备份恢复了,怎么又多了一个 redo log 文件了。相信也有很多人有这个疑惑,现在把整个过程文档整理出来,希望对大家有所帮忙。如果对 Oracle 很了解,那么在整个学习 innoDB lo...

2018-09-28 16:42:13 719

转载 Mysql redo、undo、bin、relay log 区别

redo log 和 undo logundo log:为了实现事务原子性,要么全部完成commit,要么全部回滚rollback,Innodb用于实现mvcc(多版本并发控制) 例如:将user=’A’ 改为 user=’B’,则undo log中会记录下user=’A’和事务版本等信息 一旦事务完成,所有修改必须被记录下,保证数据一致性(后面redo log解释)redo log...

2018-09-28 16:37:14 643

转载 MySQL 闪回原理与实战

DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚。传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据。此法费时费力,甚至需要停机维护,并不适合快速回滚。也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能。 MySQL闪回(flashback)利用binlog直接进行回滚,能快速恢复且不用停机。本文将...

2018-09-28 16:15:22 268

转载 Linux的strings命令查看glibc版本

在安装运行一些软件时,经常会遇到glibc的版本错误,通过下面的方法,可以查看本机或者安装软件自带的glibc版本。strings能输出文件中的可打印字符串(可指定字符串的最小长度),通常用来查看非文本文件(如二进制可执行文件)中的可读内容。比如:# strings /lib/tls/libc.so.6 | grep GLIBCGLIBC_2.0GLIBC_2.1GLIBC_2....

2018-09-28 14:53:01 2435

转载 mysql中binlog_format模式与配置详解

mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。对应的,binlog的格式也有三种:STATEMENT,ROW,MIXED。① STATEMENT模式(SBR)每一条会修改数据...

2018-09-28 13:44:10 690

转载 MySQL Flashback 闪回功能详解

阅读目录1. 简介 2. 闪回原理 3. flashback安装 4. 使用简介 5. Flashback工具使用注意点 附回到顶部1. 简介mysqlbinlog flashback(闪回)用于快速恢复由于误操作丢失的数据。在DBA误操作时,可以把数据库恢复到以前某个时间点(或者说某个binlog的某个pos)。比如忘了带where条件的update、delete操作,传...

2018-09-28 13:36:07 2985

转载 MySQL 聚簇索引&&二级索引&&辅助索引

MySQL非聚簇索引&&二级索引&&辅助索引mysql中每个表都有一个聚簇索引(clustered index ),除此之外的表上的每个非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。以InnoDB来说,每个InnoDB表具有一个特殊的索引称为聚集索引。如果您的表上定义有主键,该主键索引是聚集索引。如果你不定义为您的表的主键时,M...

2018-09-27 15:42:48 258

转载 RAC中的css,crs,evm说明

从Oracle 10g RAC 开始,Oracle 已捆绑其自身的群集软件。初始发行版本称为 Oracle Cluster Ready Service (CRS)。CRS 用作通用术语时表示 《Oracle clusters software 》,用作特定术语时表示 《Oracle clusters software 》 中的一个组件。在后续发行版本中,Oracle 的通用 CRS 被重命名为...

2018-09-26 20:57:51 911

原创 Oracle 11gR2 RAC 实例 Admin-Managed 与 Policy-Managed 区别

在Oracle 11gR2 RAC 创建实例的时候,会让我们选择配置类型:Admin-Managed 和 Policy-Managed ,如下:   官网文档解释如下: 6.1 Understanding ServerPoolsServer pools arelogical divisions of a cluster into pools of servers, whic...

2018-09-26 20:50:58 1075

转载 Oracle CSS Service

今天被问到Oracle CSS Service是什么?一时跟CSS Cascading Style Sheets(层叠样式表单) 搞混了。在网上面查一段以作参考:从 Oracle 10g RAC 开始,Oracle 已捆绑其自身的群集软件。初始发行版本称为 Oracle Cluster Ready Service (CRS)。CRS 用作通用术语时表示 《Oracle clusters sof...

2018-09-26 20:47:06 749

转载 MySQL的InnoDB的幻读问题

MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。 提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的结果...

2018-09-26 15:47:43 289

转载 自己动手实践理解数据库REPEATABLE READ && Next-Key Lock

本文引用网址:https://www.cnblogs.com/songwenjie/p/8643684.html[REPEATABLE READ]首先设置数据库隔离级别为可重复读(REPEATABLE READ):set global transaction isolation level REPEATABLE READ ;set session transaction isola...

2018-09-26 15:09:19 337

转载 MySQL参数:innodb_flush_log_at_trx_commit 和 sync_binlog

innodb_flush_log_at_trx_commit 和 sync_binlog 是 MySQL 的两个配置参数。它们的配置对于 MySQL 的性能有很大影响(一般为了保证数据的不丢失,会设置为双1,该情形下数据库的性能也是最低的)。1、innodb_flush_log_at_trx_commitinnodb_flush_log_at_trx_commit:是 InnoDB 引擎特...

2018-09-26 14:09:28 1105

转载 【MySQL】为什么不要问我DB极限QPS/TPS

为什么不要问我DB极限QPS/TPS背景 相信很多开发都会有这个疑问,DB到底可以支撑多大的业务量,如何去评估?对于这个很专业的问题,DBA也没有办法直接告诉你,更多的都是靠经验提供一个看似靠谱的结果,这里主要说明数据库容量评估的难点。定性分析借用学校时候做物理题的一个思考方法 -- 极限法;我们假设两种极限场景: 极限场景一,所有SQL 都是主键等值查询。极限场景二,所有SQL 都是...

2018-09-26 13:47:26 257

转载 关于MySQL的TPS和QPS

TPS - Transactions Per Second(每秒传输的事物处理个数),这是指服务器每秒处理的事务数,支持事务的存储引擎如InnoDB等特有的一个性能指标。 计算方法:TPS = (COM_COMMIT + COM_ROLLBACK)/UPTIMEuse information_schema;select VARIABLE_VALUE into @num_com f...

2018-09-26 11:08:17 259

转载 Oracle执行计划详解

本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容。    并有总结和概述,便于理解与记忆!+++目录---    一.相关的概念    Rowid的概念    Recursive Sql概念    Predicate(谓词)    DRiving Table(驱动表)    Probed Table(被探查表)  ...

2018-09-25 17:10:49 354

转载 Oracle查看执行计划的几种方式

查看SQL执行计划的几种方法:一、 利用autotrace查看执行计划注意:autotrace所查询的执行计划并不是真实的执行计划(这个计划是从PLAN_TABLE中来的),是CBO预估的SQL> set autot用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]方括号内的字母都可以省略。...

2018-09-25 16:30:45 445

转载 Oracle 有关 Consistent gets 的测试

一.Consistentgets 说明 我们使用autotrace 查看执行计划和统计信息时,会显示类似如下信息:  0  recursive calls   :递归调用。一般原因:dictionary cache未命中;动态存储扩展;PL/SQL语句 0  db block gets    :bufer中读取的block数量,用于insert,update,delete,...

2018-09-25 15:08:19 400

转载 自动更新Oracle统计信息

1.需求描述:Oracle不定时更新数据表的统计信息,当数据量增多时,更新频率逐渐变慢;当编写某些大的查询sql时,如访问最近一个月的销售汇总,调优后的评估值在1000左右,执行时间在10几分钟;但是一两个月后,执行时间突然增长,4,5个小时都查询不出了结果;2.需求分析:通过分析发现,某些大表的统计日期已经有2,3个月没有更新了。select table_name, num_...

2018-09-25 13:51:59 4165

转载 有关Oracle统计信息的知识点

一、什么是统计信息统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息。例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于统计信息。CBO正是根据这些统计信息数据,计算出不同访问路径下,不同join 方式下,各种计划的成本,最后选择出成本最小的计划。统计信息是存放在数据字典表中的,如tab$,一般可通过察看某些视图来...

2018-09-25 11:23:08 3656

转载 oracle查看和更新统计表的信息

在OEM中查看数据库的会话时,发现有一个会话的SQL要10多秒在PL SQL中执行 SQL按F5查看这个SQL的计划,发现别的地方有 调用索引,oracle统计值查看select * from dba_tables where table_name = TABLE检查一下字段last_analyzed 的值,其值就是最后一次统计更新的日期更新查看全表分析   完全计算法: ...

2018-09-25 11:21:46 11818

转载 关于 db block gets,consistent gets,physical reads的概念

在Oracle的文档中有这样的解释:Recursive Calls: Number of recursive calls generated at both the user and system level. Oracle Database maintains tables used for internal processing. When it needs to change these...

2018-09-22 10:58:03 255

转载 oracle分区表中本地索引和全局索引的适用场景

【背景】分区表创建好了之后,如果需要最大化分区表的性能就需要结合索引的使用,分区表有两种索引:本地索引和全局索引。既然存在着两种的索引类型,相信存在即合理。既然存在就会有存在的原因,也就是在特定的场景中就更能发挥出索引的性能的;本文档通过测试,总结出两种索引的适合的场景; 【测试环境】数据库版本:11.2.0.3分区表的创建脚本: CREATE TABLE SCOTT.P...

2018-09-21 16:45:11 696

转载 ORACLE分区表梳理系列(一)- 分区表概述、分类、使用方法及注意事项

前言本文着重阐述分区表的概念、优势,以及常用分区表的使用方法及使用过程中的注意事项。 对于分区表的日常维护方法,如:索引的维护、分区的合并等,将在后续文章中再详细介绍。 本文涉及的相应演示,使用的数据库版本为oracle 11.2.0.4。 本文常用分区表的使用方法,主要以较为常规的范围分区、列表分区、hash分区以及组合分区为主。 本文主要涉及的数据字典视图包括XX_TAB_PART...

2018-09-21 16:04:22 383

转载 MySQL主从同步延迟原因及解决办法

MySQL主从延迟原因以及解决方案:谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作(mysql5.6版本之前),主库对所有DDL和DML产生binlog,binlog是顺序写,所以效率很高。slave的Slave_IO_Running线程会到主库取日志,效率会比较高,slave的Slave_SQL_Running线程将主库的D...

2018-09-21 15:59:07 3973

转载 Mysql配置参数sync_binlog说明

MySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去。默认,sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新。这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。如果sync_binlog>0,表示每sync_binlog次事务...

2018-09-21 15:32:11 1463

转载 mysql出现主从同步延迟有哪些原因?如何解决?

1、从库太多导致复制延迟优化:建议从库数量3-5个为宜 2、从库的硬件比主库差优化:提升硬件性能 3、慢SQL语句过多优化:SQL语句执行时间太长,需要优化SQL,包括建立索引或者采用分库分表等。 4、主从复制的设计问题优化:主从复制单线程,可以通过多线程IO方案解决;另外mysql5.6.3支持多线程的IO复制。 5、主从之间的网络延迟优化:...

2018-09-21 10:51:23 333

转载 oracle 反向键索引的原理和用途(减少索引热点块)!

 我们知道Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。对于主键值是按顺序(递增或递减)加入的情况,默认的B-Tree索引并不理想。这是因为如果索引列的值具有严格顺序时,随着数据行的插入,索引树的层级增长很快。搜索索引发生的I/O读写次数和索引树的层级数成正比,也就是说,一棵具有5个层级的B -Tree索引,在最终读取到索引数据时最多可能发生多达5次I/O操作...

2018-09-18 14:42:33 353

转载 Mysql基础知识2

1. 主键 超键 候选键 外键主 键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。超 键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即没有冗余元素的超键。外 键:...

2018-09-18 11:37:02 214

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除