暂无图片
oracle怎么查询出哪个对象造成的大量归档?
我来答
分享
吾喾
2022-10-13
oracle怎么查询出哪个对象造成的大量归档?

数据库产生大量的归档,现在想知道哪个对象造成?

AWR?SQL查询?

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
张sir

我一般这么弄:

1、查看产生归档的时间
alter session set nls_date_format='yyyymmdd hh24:mi:ss';

select lpad(to_char(first_time,'yyyymmdd hh24'),11) "TIME",trunc(sum(blocks*block_size)/1024/1024) "size(M)",count(*) from v$archived_log where first_time>trunc(sysdate-7) group by lpad(to_char(first_time,'yyyymmdd hh24'),11) order by 

2、根据以上时间,查看块变更量最大的对象。根据对象和时间去awr报告里找到对应的sql。
alter session set nls_date_format='yyyymmdd hh24:mi';
SELECT
TO_CHAR(BEGIN_INTERVAL_TIME, 'YYYY-MM-DD HH24') SNAP_TIME,
DHSO.OBJECT_NAME,
SUM(DB_BLOCK_CHANGES_DELTA) BLOCK_CHANGED
FROM
DBA_HIST_SEG_STAT DHSS,
DBA_HIST_SEG_STAT_OBJ DHSO,
DBA_HIST_SNAPSHOT DHS
WHERE
DHS.SNAP_ID = DHSS.SNAP_ID
AND DHS.INSTANCE_NUMBER = DHSS.INSTANCE_NUMBER
AND DHSS.OBJ# = DHSO.OBJ#
AND DHSS.DATAOBJ# = DHSO.DATAOBJ#
AND BEGIN_INTERVAL_TIME BETWEEN TO_DATE('2019-10-11 21:00', 'YYYY-MM-DD HH24:MI')
AND TO_DATE('2019-10-12 08:00', 'YYYY-MM-DD HH24:MI')
GROUP BY
TO_CHAR(BEGIN_INTERVAL_TIME, 'YYYY-MM-DD HH24'),
DHSO.OBJECT_NAME
HAVING
SUM(DB_BLOCK_CHANGES_DELTA) > 0
ORDER BY
SUM(DB_BLOCK_CHANGES_DELTA) DESC;

暂无图片 评论
暂无图片 有用 2
打赏 0
暂无图片
哇哈哈

最准确的就是LogMiner

暂无图片 评论
暂无图片 有用 1
打赏 0
吾喾
题主
2022-10-13
通过时间段的AWR能看出来吗
哇哈哈

在线查的话,归档-----redo----undo的思路

找生成大量undo的进程

1) 查 v$sess_io.block_changes   --发生更改的块
select s.sid, s.serial#, s.username, s.program,i.block_changes from v$session s, v$sess_io i where s.sid = i.sid order by 5 desc, 1, 2, 3, 4;
查多次比较差异,较大的增量表示会话产生的redo次数较多。

2) 查v$transaction.used_ublk v$transaction.used_urec        ---undo 块和undo记录数
select s.sid, s.serial#, s.username, s.program, t.used_ublk, t.used_urec from v$session s, v$transaction t where s.taddr = t.addr order by 5 desc, 6 desc, 1, 2, 3, 4;

查多次比较增量

暂无图片 评论
暂无图片 有用 1
打赏 0
lscomeon

看awr ,block change 还是 top segment来着

暂无图片 评论
暂无图片 有用 0
打赏 0
Root__Liu

看awr的Segments by DB Blocks Changes部分,,,,基本可以定位产生大归档的对象了

暂无图片 评论
暂无图片 有用 0
打赏 0
吾喾
题主
2022-10-13
感谢回答,mark
哇哈哈

学习

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle RAC数据库和经常所说的数据库有什么区别呢?
回答 3
已采纳
Oraclerac数据库主要是提供oracle实例进程,以供客户端访问集群系统。从Oracle运行机制来说,集群中每台服务器就是一个Oracle实例,多个实例对应同一个Oracle数据库,组成了Ora
ORA-00257: archiver error. Connect internal only, until freed. 但是archiver使用率是0,这个有大佬碰到过吗?
回答 1
首先,归档不一定是本地归档,你的ADG备库归档也检查一下。其次,根据归档位置showparameterlogarchivedest1去查看文件系统或者ASM使用率。
大家有遇到过rman把控制文件里边记录的备份信息删除了,而磁盘上的备份没有删除的情况吗?
回答 1
我想到的有下面两种,请参考,不一定说的就对。1.一开始删除报错(比如DG中主库日志没有同步到备库,归档日志不让删除),以后再进行删除时控制中已经没有记录,就无法通过rman删除归档日志,只能rm删除2
归档日志中name 为空的记录是否会影响空间占用
回答 2
已采纳
希望对你有所帮助,如有帮助,请采纳
centos7.6系统下oracle数据文件最大是多少?
回答 1
已采纳
1、64位linux和64位oracle,默认oracle表空间数据文件用的BLOCKSIZE是8k,表空间数据文件最大是32G。SQL>showparameterkcachesize查看数据库
dgbroker 修改归档路径
回答 1
应该是配置问题,建议按照文档重新配置一份。https://oraclebase.com/articles/11g/dataguardsetupusingbroker11gr2关于standbyarch
Oracle如何迁移审计表空间
回答 1
考虑到审计数据对业务影响较小,如果数据量不大的话,优先选择数据泵,简单,坑少,易上手如果数据量大的话,可以使用tts,可参考https://www.modb.pro/db/29346
Ubuntu22.04下可以安装oracle11G或者其他版本吗?运行稳定不
回答 1
可以安装,运行稳定
bbed对应offset已全部修改为何RESETLOGS还不一致
回答 3
检查:resetlogscount,scn这两个值可能被你修改了。如果resetlogs的信息不同,会被认为文件不属于这个化身。
当返回的数据量超过表数据的百分多少时,Oracle就不走索引了?
回答 3
这个没有确切的数值。一般而言,分析返回行和记录总数的比率,当值>20%时,全表扫描较优,0.1%20%之间,可以自行取舍。Oracle一般希望返回行数在5%以内的查询走索引。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~