数据库开启最小补充日志hang住
一、场景说明:
客户环境需要部署OGG,同事在数据库中执行添加最小补充日志,会话Hang住
二、环境测试
本次测试环境进行模拟,添加最小补充日志的操作,怎么会被Hang住呢?
2.1 模拟会话hang住
添加最小补充日志测试
SQL> select database_role,SUPPLEMENTAL_LOG_DATA_MIN from v$database;
DATABASE_ROLE SUPPLEME
---------------- --------
PRIMARY NO Sess1
SQL> conn scott/tiger
已连接。
SQL> desc a
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER()
SQL> insert into a values();
已创建 行。 Sess2 Hang住
C:\Users\Thinkpad>sqlplus / as sysdba
Oracle Database 11g Enterprise Edition Release 11.2.0.4. - 64bit Production
SQL> alter database add supplemental log data; Fri Sep ::
alter database add supplemental log data
SUPLOG: Previous supplemental logging attributes at scn =
SUPLOG: minimal = OFF, primary key = OFF
SUPLOG: unique = OFF, foreign key = OFF, all column = OFF
SUPLOG: procedural replication = OFF
SUPLOG: New supplemental logging attributes at scn =
SUPLOG: minimal = ON, primary key = OFF
SUPLOG: unique = OFF, foreign key = OFF, all column = OFF
SUPLOG: procedural replication = OFF Sess 1
SQL>rollback; 回滚事物结束
Sess 2 OK
SQL> alter database add supplemental log data;
2.2 尝试问题处理1)将2.1开启最小补充日志,调整为关闭最小补充日志;2)根据MOS文档进行操作
根据MOS 406498.1
创建输出Trace文件
conn / as sysdba
SQL> select * from v$diag_info where name='Default Trace File';
INST_ID NAME VALUE
--------------------------------------------------------------------------------
Default Trace File
C:\WIN_ORACLE_11_DATABASE\APP\diag\rdbms\win11\win11\trace\win11_ora_6524.trc
SQL> alter session set tracefile_identifier='SUPP';
SQL> select * from v$diag_info where name='Default Trace File';
INST_ID NAME VALUE
--------------------------------------------------------------------------------
Default Trace File
C:\WIN_ORACLE_11_DATABASE\APP\diag\rdbms\win11\win11\trace\win11_ora_6524_SUPP.trc
alter session set max_dump_file_size=unlimited;
alter session set events '32593 errorstack(3) systemstate(266)';
alter database add supplemental log data;
SQL> alter database drop supplemental log data; 3)本次实际测试,并未同MOS说明,观察到Trace文件,本次是通过与常规行锁TX contention处理方式相同。 通过v$session找到被阻塞的session
INST_ID SID SERIAL# USERNAME STATUS MACHINE SQL_ID EVENT s LAST_CALL_ET
------- ------ ------- -------------------- ---------- -------------------- -------------------- ------------------------------ ------- ------------
SYS ACTIVE WORKGROUP\ZHUOYANG 1u5y5b3gmh4rn enq: TX - contention
SYS ACTIVE WORKGROUP\ZHUOYANG 9gw8kwb4ajm6t SQL*Net message from client
本次可以发现,执行删除drop supplemental操作会话被hang住
SQL> select sql_text from v$sql where sql_id='1u5y5b3gmh4rn';
SQL_TEXT
------------------------------------------------------
alter database drop supplemental log data SQL> select BLOCKING_SESSION from v$session where sid= and serial#=;
BLOCKING_SESSION
----------------
182
查询阻塞源头session信息
select
INST_ID
,sid
,serial#
,USERNAME
,STATUS
,MACHINE
,SQL_ID
,EVENT
,(sysdate-LOGON_TIME)* as "s"
,LAST_CALL_ET
from gv$session where sid=;
INST_ID SID SERIAL# USERNAME STATUS MACHINE SQL_ID EVENT s LAST_CALL_ET
------- ------ ------- -------------------- ---------- -------------------- -------------------- ------------------------------ ------- ------------
SCOTT INACTIVE WORKGROUP\ZHUOYANG SQL*Net message from client SQL> select STATUS,START_TIME from v$transaction where ses_addr=(select saddr from v$session where sid= and serial#=);
STATUS START_TIME
---------- --------------------
ACTIVE // :: SQL> alter system kill session '182,47' immediate;
系统已更改。
SQL> select database_role,SUPPLEMENTAL_LOG_DATA_MIN from v$database;
DATABASE_ROLE SUPPLEME
---------------- --------
PRIMARY YES SQL> alter database drop supplemental log data;
数据库已更改。
2.3 事后总结
1)开启关闭最小补充日志,为何会被阻塞,
CAUSE
The statement ALTER DATABASE ADD SUPPLEMENTAL LOG DATA is waiting for TX lock in shared mode when there is any uncommitted transaction. This is the expected behavior. You can issue ALTER DATABASE ADD SUPPLEMENTAL LOG DATA when the database is open.
However, OracleDatabase will invalidate all DML cursors in the cursor cache,
which will have an effect on performance until the cache is repopulated.
Besides,we also need to wait for the completion of all the in-flight
transaction so that any redo generated after this DDL would have the right supplemental logging attributes.
存在未提交的事物,开启最小补充日志将处于等待TX lock
2)查询并杀死事物会话或进程
会话与事物对应
SQL> select STATUS,START_TIME from v$transaction where ses_addr=(select saddr from v$session where sid= and serial#=);
事物与会话进行对应 SQL>select sid,serial#,username,status,event,sql_id from v$session where saddr in(select ses_addr from v$transaction);
数据库开启最小补充日志hang住的更多相关文章
- mysql数据库开启慢查询日志
修改配置文件 在配置文件my.ini中加上下面两句话 log-slow-queries = C:\xampp\mysql_slow_query.log long_query_time=3 第一句使用来 ...
- 通过Oracle补充日志,找到锁阻塞源头的SQL
问题背景: 有时会考虑一件事情,如果在Oracle环境下出现了锁阻塞的情况,如何定位到SQL源头(通过session.lock.transaction等视图仅能定位到会话)?或许有人会想有没有可能通过 ...
- oracle 11g 数据库恢复技术 ---03 补充日志
三 补充日志(supplemental logging) 补充日志是对重做记录中变更矢量的补充信息,增加了变更矢量记载的记录量.Oracle某些功能要求启用补充日志才能正常或更好的工作,比如logmi ...
- 配置闪回恢复区开启归档,未配置清理归档脚本,数据库hang住
问题现象,测试环境执行SQL hang住 enmo:/home/oracle/worksh dg.sh SQL*Plus: Release Production on Mon May :: Copyr ...
- Oracle数据库shutdown immediate被hang住的几个原因
实验操作环境: 操作系统:Red Hat Enterprise Linux ES release 4 (Nahant Update 6) ...
- 一次数据库hang住的分析过程
现象: 普通用户和sysdba都无法登陆,业务中断 分析过程: 1.先做hanganalyze和systemstate dump $sqlplus -prelim "/as sysdba&q ...
- 数据库hang住 处理过程
当数据库出现严重的性能问题或者hang了的时候,我们非常需要通过systemstate dump来知道进程在做什么,在等待什么,谁是资源的持有者,谁阻塞了别人.在出现上述问题时,及时收集systems ...
- NDMCDB数据库hang住故障分析 - cursor: pin S wait on X
问题描写叙述: 上午刚刚到办公室,就有监控人员邮件反馈,昨晚NDMCDB407数据库被重新启动过,让我分析一下数据库重新启动的原因.因为昨晚业务有版本号上线,所以短信警告关闭了,所以没有短信下发到我手 ...
- 如何诊断oracle数据库运行缓慢或hang住的问题
为了诊断oracle运行缓慢的问题首先要决定收集哪些论断信息,可以采取下面的诊断方法:1.数据库运行缓慢这个问题是常见还是在特定时间出现如果数据库运行缓慢是一个常见的问题那么可以在问题出现的时候收集这 ...
随机推荐
- IntelliJ IDEA 2017.3 配置Tomcat运行web项目教程(多图)
小白一枚,借鉴了好多人的博客,然后自己总结了一些图,尽量的详细.在配置的过程中,有许多疑问.如果读者看到后能给我解答的,请留言.Idea请各位自己安装好,还需要安装Maven和Tomcat,各自配置好 ...
- 黑马vue---33、vue-resource 实现 get, post, jsonp请求
黑马vue---33.vue-resource 实现 get, post, jsonp请求 一.总结 一句话总结: vue-resource使用非常非常非常简单:this.$http.get('htt ...
- 002-01-RestTemplate-配置使用说明
一.概述 Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写 ...
- 阶段5 3.微服务项目【学成在线】_day18 用户授权_08-动态查询用户的权限-用户中心查询用户权限
3.3 用户中心查询用户权限 3.3.1 需求分析 认证服务请求用户中心查询用户信息,用户需要将用户基本信息和用户权限一同返回给认证服务. 本小节实现用户查询查询用户权限,并将用户权限信息添加到的用户 ...
- 【转】Selenium-xpath详解
1.XPATH是什么 XPATH是一门在XML文档中查找信息的语言,XPATH可用来在XML文档中对元素和属性进行遍历,主流的浏览器都支持XPATH,因为HTML页面在DOM中表示为XHTML文档.X ...
- PAT 甲级 1044 Shopping in Mars (25 分)(滑动窗口,尺取法,也可二分)
1044 Shopping in Mars (25 分) Shopping in Mars is quite a different experience. The Mars people pay ...
- SAP S/4 HANA与SAP Business Suite/R3(ECC)的区别
转自:https://blog.csdn.net/zhongguomao/article/details/53515203 去年SAP推出了新一代商务套件SAP S/4 HANA,无疑是ERP行业创新 ...
- Windows .net服务器系列 wmic命令使用示例--Examples of WMIC commands for Windows .NET SERVER Family
1.0 Method execution: NICCONFIG (Win32_NetworkAdapterConfiguration) WMIC NICCONFIG WHERE Index=1 CAL ...
- java编写的一段简单的网络爬虫demo代码
功能: 从网站上下载附件,并从页面中提取页面文章内容 关于NIO 在大多数情况下,Java 应用程序并非真的受着 I/O 的束缚.操作系统并非不能快速传送数据,让 Java 有事可做:相反,是 JVM ...
- LeetCode_122. Best Time to Buy and Sell Stock II
122. Best Time to Buy and Sell Stock II Easy Say you have an array for which the ith element is the ...