数据结构——树
一、树的概念:树其实是区别于线性表,线性结构的另一种数据结构,本质是结点的有限集。树的定义有两点:1)有且仅有一个特定的称为根(root)的结点;2)当结点数量>1时,其余结点可分为若干个互不相交的有限集,其中每个集合也可以看作一颗树,称之为根的子树。1.度(结点的分类):结点拥有的子树的数量
深入解析 MongoDB Plan Cache
前段时间笔者遇到一个MongoBDPlanCache的bug,于是深究了下MongoDB优化器相关源码。在这里分享给大家,一方面让大家知道MongoDB优化器工作原理,一方面就是避免踩坑。首先帖一下笔者反馈给官方的bug地址:https://jira.mongodb.org/browse/SERVE
深入浅出MongoDB复制
申明本文由笔者首发于InfoQ:《深入浅出MongoDB复制》MongoDB中文社区:《深入浅出MongoDB复制》由于自己开了blog,所以将之前比较好的文章挪过来便于大家浏览。综述笔者最近在生产环境中遇到许多复制相关问题,查阅网上资料发现官方文档虽然系统但是不够有深度,网上部分深度文章则直接以源
深入浅出 Redis client/server交互流程
申明本文由笔者首发于InfoQ:《深入浅出Redisclient/server交互流程》由于自己开了blog,所以将之前比较好的文章挪过来便于大家浏览。综述最近笔者阅读并研究redis源码,在redis客户端与服务器端交互这个内容点上,需要参考网上一些文章,但是遗憾的是发现大部分文章都断断续续的非系
Redis 内存分配分析
为什么要分析之前业务反应,数据导入到Redis中,内存是原来文件占用的几倍。所以这里来介绍一下Redis是如何分配内存的。并且在我们日常去评估一个新上线的业务redis内存使用也是非常有帮助的。需要了解的这里以简单的RedisString数据类型作为例子,其他数据类型可以作为参考,只要不是采用压缩数
如何解决Redis 主从数据不一致问题
线上问题近期我们在对Redis做大规模迁移升级的时候,采用模拟复制协议的方式进行数据传输同步。在此期间,我们遇到如下两个问题:迁移前后Redis过期时间不一致。迁移前后Rediskey数量不一致。迁移前后Redis过期时间不一致针对第一个问题,Redis过期时间不一致问题,通过测试并且查阅Redis
ASM磁盘组异机迁移
环境:Source:OS:redhat6.3DB:OralceRAC11.2.4.0destination:OS:redhat6.3DB:OralceRAC11.2.4.0背景:客户的PC机上面有两个实例,压力太大,需要迁移出一个实例。数据量TB级别,因为同平台,同版本,外挂存储。所以这里采用直接迁
shutdown abort模式丢失redo,使用隐含参数启库
shutdownabort模式丢失redolog无法open数据库通过告警报错ORA-00354:corruptredologblockheader从该错误可以看出当前日志的redoblock的header出现问题,导致oracle无法读取redo进行恢复。通过以下检查发现数据库文件头都一致,没有需
oradebug推进scn
有时候我们遇到如下错误:ORA-01092:ORACLEinstanceterminated.DisconnectionforcedORA-00600:internalerrorcode,arguments:[2662],[0],[5685940],[0],[5685970],[4194432],[
一个表空间使用率查询sql的优化
话不多说,直接上执行计划:SQL>setlines500;SQL>setpagesize9999;SQL>setlong9999;SQL>select*fromtable(dbms_xplan.display_cursor('41348610',null,'advanced'
BBED标记坏块以及修复坏块
创建测试表:ZBDBA@orcl11g>select*fromzbdba;NAME------------------------------------------------------------zbdbahuihuiZBDBA@orcl11g>ZBDBA@orcl11g>Z
一次数据文件头不一致恢复
SYS@orcl11g>alterdatabasedatafile6online;alterdatabasedatafile6online*ERRORatline1:ORA-01113:file6needsmediarecoveryORA-01110:datafile6:'/opt/oracl
bbed修改undo段状态(ORA-01578)
ZBDBA@orcl11g>select*fromzbdba;select*fromzbdba*ERRORatline1:ORA-01578:ORACLEdatablockcorrupted(file#3,block#1449)ORA-01110:datafile3:'/opt/oracle/
跳过丢失归档进行恢复
在我们恢复的时候,发现中间缺失归档,大部分dba认为从缺失的归档开始以后的归档都无法进行恢复。但是我们从非常规的方式,修改数据文件对应的信息是可以跳过该缺失的归档,并且利用后面的归档进行恢复的。SYS@orcl11g>recoverdatafile6;ORA-00279:change20543
使用bbed修改数据
bbed是一个强大的工具,允许我们绕过oracle直接从数据文件中修改对应的内容ZBDBA@orcl11g>select*fromemp;EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO-----------------------------------------
一张6亿条数据表引发的事故
业务人员告诉我某系统磁盘IO持续高达300MB/s,系统平台为AIX,遂topas查看果然如此。用下面脚本到Oracle数据库中看了一下:SELECTDisk_ReadsDiskReads,Executions,SQL_ID,SQL_TextSQLText,SQL_FullTextSQLFullTe