Oracle数据库性能障碍分析利器:SYSTEMSTATE DUMP介绍
当数据库出现严重的性能问题或者hang?的时候,我们非常需要通过systemstate dump来知道进程在做?么,在等待?么,谁是资源的持有者,谁阻塞了别人。
MVCC原理探究及MySQL源码实现分析
其实不管隔离级别,我们也抛开数据库中的ACID,我们思考一个问题:众所周知,InnoDB的数据都是存储在B-tree里面的,修改后的数据到底要不要存储在实际的B-tree叶子节点,session2是怎么做到查询出来的结果还是10,而不是20呢?
ASM 翻译系列第四十弹:理解ASM中 REQUIRED_MIRROR_FREE_MB和USABLE_FILE_MB的含义
在我的课上一个经常被问到的问题是ASM如何计算磁盘组REQUIRED_MIRROR_FREE_MB和USABLE_FILE_MB的值,这个问题的答案跟很多复杂问题的答案一样:要看情况。简单来说,视图V$ASM_DISKGROUP中的REQUIRED_MIRROR_FREE_MB值代表了如果ASM磁盘或ASM磁盘组出现了故障,要重新满足冗余度的定义,要求有多少的空闲空间。USABLE_FILE_MB的值代表了在满足冗余度之后,还有多少的剩余空间可以用。
ASM 翻译系列第三十九弹:物理元数据AT表
每一块由ASM管理的磁盘都会至少包含一个Allocation Table ,简称AT表,它是用来描述磁盘的AU分布情况的,AT表里的每一个条目都代表了磁盘上的一个AU,一旦某个AU被分配出去,AT表中此条目的内容会被更新,例如此AU属于的extent号和属于哪一个文件。
ASM 翻译系列第三十八弹:ASM数据清理
根据维基百科, 数据清理(data scrubbing)的定义是“一种数据纠错技术,利用后台任务周期性的扫描内存或存储的错误,在检测到错误后利用数据的多余副本来对数据进行纠正,数据清理可以减少数据错误不断累计的可能性,进而降低由数据错误带来的风险”。
ASM 翻译系列第三十七弹:ASM密码文件目录
本篇介绍ASM的13号文件-密码文件目录,密码文件给Oralce或ASM的本地或远程连接提供访问授权,在Oracle的12C版本,密码文件可以存放在ASM磁盘组中了,ASM的也专门为密码文件的管理设计了元数据结构-ASM Password Directory-ASM密码文件目录 ,元数据文件号为13。
ASM 翻译系列第三十六弹:ACFS磁盘组的重平衡操作
从Oracle 11.2版本开始,可以在ASM磁盘组之上创建通用的集群文件系统,被称为Oracle ASM Cluster File Systems或Oracle ACFS。要想创建一个ACFS文件系统,首先需要在ASM磁盘组之上创建特定的卷,这个卷在OS上是一个块设备,ACFS文件系统就创建于这些块设备之上。
ASM 翻译系列第三十五弹:ASM 253号文件——ASM spfile
从ASM版本11.2开始,ASM spfile可以储存在ASM磁盘组里。事实上,在安装ASM时,OUI就已经把ASM spfile放在了磁盘组中。对于单实例环境和集群环境都是这样。在安装过程中创建的第一个磁盘组是spfile的默认位置,但这不是必要的。ASM spfile还是可以放在文件系统上,就是$ORACLE_HOME/dbs目录下。
ASM 翻译系列第三十四弹:ASM磁盘组重要属性介绍
磁盘组的属性是ASM 11.1版本引入的,是磁盘组层面而非ASM实例层面的。磁盘组的属性有一些只能在创建磁盘组时指定,有一些只能在创建之后指定,还有一些可以在任何时候指定。本篇内容是对本系列文章-【ASM Attributes Directory】的展开。
ASM 翻译系列第三十三弹:REQUIRED_MIRROR_FREE_MB的含义
REQUIRED_MIRROR_FREE_MB和USABLE_FILE_MB是V$ASM_DISKGROUP[_STAT]视图中非常有趣的两列。Oracle Support部门收到的很多问题是关于这两列的意义以及它们的值是怎么计算的。我本打算写些文章介绍一下,但是我意识到我不可能比Harald van Breederode做的更出色。因此我征得了他的同意来直接参考他的文章,所以还是请欣赏他的大作吧。
ASM 翻译系列第三十二弹:ASM INTERNAL Find block in ASM
在本系列文章《Where is my data》中,我已经演示了如何从ASM磁盘中定位和抽取一个Oracle的block,为了让这件事做起来不那么复杂,我又写了一个perl脚本find_block.pl来简化整个操作,只需要提供数据文件的名称和需要提取的block,这个脚本就可以输出从ASM磁盘组中抽取块的命令。
ASM 翻译系列第三十一弹:了解ASM文件的空间分配
本文主要是对ASM文件的空间分配进行一些探讨和研究。ASM空间分配的最小单位是AU,默认的AU size是1MB,但在Exadata下AU 的默认大小是4MB。
semi-sync原主库加入集群阻塞问题分析
前段时间支持客户处理问题的时候,发现一个semi-sync复制主从切换原master加入集群时,复制同步阻塞,无法继续同步数据的问题,非常有参考意义,整理一下,供大家参考。
MySQL排序内部原理探秘
MySQL排序其实是一个老生长谈的问题了,但是我们这次想由浅入深详细的说说MySQL排序模式,怎么影响MySQL选择不同的排序模式和怎么优化排序。
事务已提交另外会话查询不到的问题解析
今天遇到一个很有趣的问题:跑python代码程序,使用python程序开启两个session连接数据库,在第二个session往t表插入一行记录,并commit了;在第一个session去查t表,发现t表中查询不到刚插入的这条记录记录。而拿相同的python代码程序,在另一套环境上,也开启2个session,重复上面的操作,结果居然可以查到记录。开发人员认为,我在session 2上数据都插入进去了,并且提交了,为什么sessioin 1查询不到?并且相同的代码,连的同一个mysql环境,怎么两次结果都不一样?
ASM 翻译系列第十弹:ASM Internal ASM DISK header
ASM磁盘头可能是ASM元数据中最广为人知的部分。之前你可能认为当它被破坏或丢失时,只能寄希望于Oracle技术支持人员协助来恢复。在本节中将解释ASM磁盘头的重要性和它包含的信息。
ASM 翻译系列第九弹:高级知识ASM Toolbox
本篇文章主要介绍几个大家应该熟练掌握的ASM工具。
ASM 翻译系列第八弹:ASM Internal ASM file extent map
当ASM创建一个文件时(例如数据库实例要求创建一个数据文件),它会以extent为单位分配空间。一旦文件被创建,ASM会传递extent映射表给数据库实例,后续数据库实例能在不和ASM实例交互的情况下访问这个文件。如果一个文件的extent需要被重新定位,比如磁盘组进行rebalance操作,ASM会告知数据库实例关于extent映射表的变更。
ASM 翻译系列第二弹:ASM 12C 版本新特性
?随着Oracle 12c的发布,也就意味着全新版本的ASM面世了。已知的重大新特性有Flex ASM,数据预校验和更加便捷的磁盘管理操作。
ASM 翻译系列第一弹:基础知识 ASM AU,Extents,Mirroring 和 Failgroups
当向ASM磁盘组添加磁盘时,failgroup可以手工指定,ASM会智能的把磁盘添加到正确的failgroup中。