问题背景: 有时会考虑一件事情,如果在Oracle环境下出现了锁阻塞的情况,如何定位到SQL源头(通过session.lock.transaction等视图仅能定位到会话)?或许有人会想有没有可能通过AWR相关的数据库性能历史视图找到有用的信息呢?答案是否定的,因为AWR仓库中的历史性能数据都是收集的有性能问题的会话.语句.活动,而最初加锁的那个update语句执行速度非常快,往往根本达不到AWR收集的阀值,不被Oracle注意到.而Oracle注意到的都是被“它”给阻塞的那些会话. 是不是没方…
1.归档模式: Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志组.当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行. 如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档.比如,当前在使用联…
日常维护中,经常会碰到线程被阻塞,导致数据库响应非常慢,下面就看看如何获取是哪个线程导致了阻塞的. blog地址:http://blog.csdn.net/hw_libo/article/details/39080809 1. 环境说明RHEL 6.4 x86_64 + MySQL 5.6.19事务隔离级别:RR 2. 测试过程   3. 查看锁阻塞线程信息这里用几中方法进行分析:3.1  使用show processlist查看MySQL [(none)]> show processlist;…
三 补充日志(supplemental logging) 补充日志是对重做记录中变更矢量的补充信息,增加了变更矢量记载的记录量.Oracle某些功能要求启用补充日志才能正常或更好的工作,比如logminer(日志挖掘器).闪回事务查询.闪回事务等. 对于insert和delete来说,常规的重做记录记载了被更改的行的所有字段,没有什么补充,但是update例外,不但所有字段的旧值没有被记录(除非更新所有字段),有时update还是导致行迁移, 补充日志主要就是为update服务的,补充的目的就是…
一.场景说明: 客户环境需要部署OGG,同事在数据库中执行添加最小补充日志,会话Hang住 二.环境测试 本次测试环境进行模拟,添加最小补充日志的操作,怎么会被Hang住呢? 2.1 模拟会话hang住 添加最小补充日志测试 SQL> select database_role,SUPPLEMENTAL_LOG_DATA_MIN from v$database; DATABASE_ROLE SUPPLEME ---------------- -------- PRIMARY NO Sess1 SQ…
在SQL Server数据库或OACLE数据库当中,通常一个会话持有某个资源的锁,而另一个会话在请求这个资源,就会出现阻塞(blocking).这是DBA经常会遇到的情况.当出现SQL语句的阻塞时,很多人想查看阻塞的源头(哪个SQL语句阻塞了哪个SQL),这样方便直观.简洁明了的定位问题.但是很多时候,很多场景,我们通过SQL语句并不能或者说不容易定位到阻塞者(Blocker)的SQL语句,当然我们可以很容易找到被阻塞的SQL语句,以及它在等待的锁资源.下面我们先分析一下SQL Server数据…
Oracle事务之一:锁和隔离 一. 事务概述 事务管理是数据库处理的核心.数据库既要保证用户能并发地执行事务,还要保证数据库的一致性. 当第一条可执行的SQL开始执行,就隐形地开始了一个事务,直到遇到下面的几种情况: 1.Commit:提交事务. 2.RollBack:回滚. 3.DDL语句:执行和提交DDL语句结果前首先提交当前所有DML语句,成为隐式提交. 4.程序正常退出:自动提交. 5.不正常的程序失败:隐式回滚. 二.事务特性 事务的四个特性:A(原子性).C(一致性).I(隔离性)…
Oracle的事务和锁(PPT-I-283-293) 10.1 什么是事务 必须具备以下四个属性,简称ACID 属性:原子性(Atomicity):  事务是一个完整的操作.事务的各步操作是不可分的(如原子不可分):各步操作要么都执行了,要么都不执行.一致性(Consistency):1)一个事务结束之后,所有会话发起的查询所看到的该事务的结果都是一致的(commit后的查询有同样的结果).                                   2)一个查询的结果必须与数据库在查询…
Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败.查看监听日志listener.log的大小已经超过4G. 解决方法: 删除listener.log(删除前可以先做备份),然后重启监听.监听重启后会自动创建一个新的日志文件. 补充: 在监听进程运行时,无法对listener.log做删除或者重命名操作. 如果不想重启监听,删除监听日志.可以按如下…
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 告警日志(monitor alter log file). Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量   …