关于PV,流量和带宽
参加了DTCC归来之后,各大电商技术大牛都会自豪的分享一下自己公司网站的PV,流量等等。当时也是一知半解,回来之后赶紧查了查,也算是扫扫盲。以下摘自网络中,自己稍稍做了整理,对于PV,流量和带宽的理解,可以分成几个问题可能更加容易理解。问题1:首先什么是PV,技术角度讲,1个PV是指从浏览器发出一个对网络服务器的R...
快速定位隐蔽的sql性能问题及调优
在前几天,有个开发同事问我一个问题,其实也算是技术救援,他说在有个job数据处理的频率比较高,在测试环境中很难定位出在哪有问题,而且速度也还能接受,但是在生产环境中总是会慢一些,希望我能在测试环境中协助他们,看看是不是sql语句出什么问题了还是其它相关的问题。这种类似实时监控的语句,从第一印象来说,很可...
关于Oracle和MySQL中的无密码登录
无密码登录在一定程度上能够简化流程,对于密码敏感,但是又需要提供访问权限的情况下是一个不错的选择。尤其是在乙方在做一些操作的时候,要密码和给密码是一个纠结的问题。不给没法工作,给了又对信息安全又影响。在Oracle和MySQL中都有相应的解决方案,大道至简,这个功能的目的都是类似的。在Oracle中可以通过设置wal...
简单对比MySQL和Oracle中的一个sql解析细节
SQL的语法解析器是一个很强大的内置工具集,里面会涉及到很多的编译原理的相关知识,语法分析,词法分析。。一大堆看起来很理论的东东,不过看起来枯燥之余,它们的价值也更加明显。借用一下网络中的原话:如果我们考究一下历史,就会发现很多被称为程序设计大师的人都是编译领域的高手.写出第一个微型机上运行的Basic语言...
关于Oracle数据恢复的两个临界点
有的网友对我之前写的一篇技术博文中的描述提出了疑问,http://blog.itpub.net/23718752/viewspace-1436965/其中的主要意思是:oracle中采用了undo+redo机制来作为数据恢复的基石,数据的恢复是通过前后台结合来实现的,在缓存级别,通过dbwr,能够把修改后的数据块刷入数据文件,这是一个异步的过程,不会因为发生数据变更...
对一道if-else相关的程序题的简单分析
今天同事在微信群里提出了一个问题,看似是一个面试题。大体的意思就是补充下面if条件使得输出 Hello Worldif(){System.out.print("Hello");}else{System.out.println(" world");}乍一看这个题目就是类似脑筋急转弯之类的问题。一看就不可能实现,本来if-else之类的逻辑处理就会占据很多...
持续近7个小时的索引扫描的查询优化分析
昨天客户的DBA反映有一个数据抽取的任务持续了很长时间最后超时退出了,让我看看有什么地方可以调优一下。找到了对应的日志,发现在一个大表抽取的时候,抽取持续了将近7个小时,最后超时退出了。对于这个问题,有以下几个方面需要考虑一下。1)为什么这个问题之前没有发现过2)是否是由某些变化导致了这个问题3)这个...
关于Oracle中重启数据库的一个bug
关于drop database在oracle中是致命的操作,这个操作自己在测试环境中体验过,会完全删除数据文件,因此这个操作非常敏感但是实用性不强,不过话说过来,这个操作也不是随便就能执行的,除了操作敏感的权限之外,其实还是有一些前提条件的。在数据库open状态,是无法运行这个命令的。SQL> drop database TEST;drop datab...
一个清理脚本的改进思路
前几天同事问我一个问题,说在unix环境下有个目录下的文件/文件夹太多了,已经报了开始报系统错误了,客户希望能够定时进行这些目录的清理。我连到那个环境去查看,ls都需要等待很长时间没有反应,最后尝试使用find命令,根据文件名来查找的时候反应才相对要快一些。同事计划使用crontab来实现。使用的命令大体如下:59...
我身边的一些数据库事故
最近携程的数据事故闹得沸沸扬扬,不管是什么原因,问题终究发生了。在问题发生的时候,更关键的是解决方法和防范措施,一般在升级或者重大的生产演练中,我们都有一个lesson learn,就是总结问题,总结经验,防范规范。一线人员在各种重大活动中都发挥了重要的作用,我还是喜欢那句华为任正非的那句话:让听得见炮声的人指...
11g Active DataGuard初探
原本dataguard中日志应用和数据库只读查询是一个互斥的关系,两者不能并存。如果需要应用日志,则数据库只能在Mount状态下 使用recover managed standby database disconnect from session来不断地从后台进行日志应用。如果想查看备库中的数据情况,则只能使用recover managed standby database cancel来取消日志应用,然...
半自动化运维之快速连接到指定环境(一)
在大量的分布式环境中,可能存在着大量的主机配置,ip配置,数据库实例配置,甚至操作系统用户,数据库用户密码也不同,这个时候如果记录在10条左右还能应付,但是如果给你几百个这样的环境,每次都需要先查找对应的操作系统用户,主机名或者IP就显得很麻烦,尽管已经设置了ssh信任连接。但是还是需要你知道用户名的前提下...
巧用外部表备份历史数据
在很多的系统中,随着时间的推移,都会沉淀大量的历史数据。一般数据量达到一定程度都会考虑使用分区表来处理。根据业务规则,可能有些历史数据隔一段时间就需要做清理了,这个时候历史数据就需要在分区级进行清理。在不同的系统,不同厂商都有不同的实现方案。但是从数据安全角度来说,都需要做备份工作,也是预防万一。...
一次ORA-00600问题的排查和分析(上)
昨天处理了一起ora-00600的错误,其中也经历了各种曲折,真是雾里看花,看透了之后发现很多问题都是有原因的。起初是开发说有一个job运行的时候报错了,数据库版本是11.2.0.2.0等到问题提交到我这,客户已经检查了一些信息了。但是还是没有结论。对于这个问题,我还是照例开始检查数据库日志。在那个时间段内里出现了o...
一次ORA-00600问题的排查和分析(下)
继续昨天对于 ORA-00600问题的排查和分析(上)http://blog.itpub.net/23718752/viewspace-1696076/我们发现了一大堆的ORA错误。我们首先排除了deadlock造成的ora-00600错误。从日志的分析的整体情况来说,虽然很多错误在metalink中都有相关的文章说明,但是提供的方案可执行性还是值得商榷的。毕竟一出现问题就是bug,就需...
毕业设计的小故事
今天晚上正在琢磨该写点什么,站在自己的书架前开始搜索,无意中竟然翻到了自己以前的学习笔记,发现以前还是很认真的。真是好记性不如烂笔头,自己当初记录的一些记录现在看来还是也还是有价值的。就简单说说吧。记得当时的毕业实习是一并在中软参加的,算是边培训边做实习。自己也是意气风发,感觉熟悉了java的基本语法就...
重启数据库的一场闹剧
在几周前,某个测试环境在尝试impdp导入dump的时候报了错误,有个DBA立马做了kill session的操作,但是持续了5个小时,session状态还是KILLED,于是他们就在等待session被pmon回收。结果又等了几个小时,还是KILLED状态。最后两拨DBA在交接的时候把这个问题就说明了一下,另外一个DBA继续尝试impdp就报了下面的错误。Con...
关于aio的设置的讨论
之前在博文中分享过一个ora错误。对于此,根据日志分析了相关的ora错误,但是从客户的角度还是希望能够提前做些什么,所以aio的设置就成为刻不容缓的一个任务。但是对于aio的设置大家还是存在一定的分歧。在此贴出来供大家讨论,在oracle官方文档中也没有详细的说明和建议。首先aio的设置在/etc/sysctl.conf就有设置,...
一条sql语句的改进探索
昨天同事找我,让我帮忙看两个sql问题,第一个问题是一个sql语句执行频率极高,但是目前的执行速度还是比较慢,希望我看看能不能调优一下。另外一个问题是一个查询执行速度比较慢,但是执行频率不高。我们还是循序渐进,一个一个来看。第一个sql语句如下5knr1ywqugtq8/* TransactionLog_selectByAccRangeTrx_3 */SELE...
海量数据迁移之传输表空间(一)
在自己接触的很多的数据迁移工作中,使用外部表在一定程度上达到了系统的预期,对于增量,批量的数据迁移效果还是不错的,但是也不能停步不前,在很多限定的场景中,有很多物理迁移中使用传统方法还是相当不错的,传输表空间就是一个样例。最近的有一个数据迁移任务是需要把一些全新的数据表迁移到另外一个库中,因为这些...