百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

数据库笔试面试138——在Oracle中,如何dump数据库内部结构?

mhr18 2024-09-13 20:36 24 浏览 0 评论

在Oracle中,如何dump数据库内部结构?

答案如下所示:

一些常用的dump事件,可以参考下表:

事件ID事件说明例子
10046enable SQL statement timinglevel 0:禁用SQL_TRACE,等价于SQL_TRACE=FALSElevel 1:启用标准的SQL_TRACE功能跟踪SQL语句,包括解析、执行、提取、提交、回滚、响应时间、服务时间、处理的行数,物理读和写的数目、执行计划以及其它一些额外信息,等价于SQL_TRACE=TRUElevel 4:Level 1 + 包括绑定变量(Bind Values)的详细信息level 8:Level 1 + 包括等待事件level 12:包括绑定变量与等待事件,包含Level 1 + Level 4 + Level 8ALTER SESSION SET EVENTS '10046 trace name context forever,level 12';
10053CBO Enable optimizer trace在分析SQL语句时,Dump出优化器所做的选择,级别level 1最详细ALTER SESSION SET EVENTS '10053 trace name context forever, level 1';
10704Print out information about what enqueues are being obtained当启用的时候,可以查看锁的调用信息ALTER SESSION SET EVENTS '10704 trace name context forever,level 10';
10710Event 10710 - Trace Bitmap Index Access跟踪位图索引的访问情况ALTER SESSION SET EVENTS '10710 trace name context forever, level 1';
10711Event 10711 - Trace Bitmap Index Merge Operation跟踪位图索引合并操作ALTER SESSION SET EVENTS '10711 trace name context forever, level 1';
10712Event 10712 - Trace Bitmap Index OR Operation跟踪位图索引或操作情况ALTER SESSION SET EVENTS '10712 trace name context forever, level 1';
10713Event 10713 - Trace Bitmap Index AND Operation跟踪位图索引与操作ALTER SESSION SET EVENTS '10713 trace name context forever, level 1';
10714Event 10714 - Trace Bitmap Index MINUS Operation跟踪位图索引MINUS操作ALTER SESSION SET EVENTS '10714 trace name context forever, level 1';
10715Event 10715 - Trace Bitmap Index Conversion to ROWIDs Operation跟踪位图索引转换ROWID操作ALTER SESSION SET EVENTS '10715 trace name context forever, level 1';
10716Event 10716 - Trace Bitmap Index Compress/Decompress跟踪位图索引压缩和解压缩情况ALTER SESSION SET EVENTS '10716 trace name context forever, level 1';
10719Event 10719 - Trace Bitmap Index DML跟踪位图索引列的DML操作(引起位图索引改变的DML操作)ALTER SESSION SET EVENTS '10719 trace name context forever, level 1';
10730Event 10730 - Trace Fine Grained Access Predicates跟踪细粒度审计的断语ALTER SESSION SET EVENTS '10730 trace name context forever, level 1';
10731Event 10731 - Trace CURSOR Statements跟踪CURSOR的语句情况,跟踪游标声明,LEVEL 1表示跟踪父游标和子游标;LEVEL 2只跟踪子游标ALTER SESSION SET EVENTS '10731 trace name context forever, level level';
10928Event 10928 - Trace PL/SQL Execution跟踪PL/SQL执行情况ALTER SESSION SET EVENTS '10928 trace name context forever, level 1';
10938Event 10938 - Dump PL/SQL Execution Statistics转储PL/SQL执行统计信息,使用前需要执行脚本文件:$ORACLE_HOME/rdbms/admin/tracetab.sqlALTER SESSION SET EVENTS '10938 trace name context forever, level 1';

flush_cache刷新BUFFER CACHEALTER SESSION SET EVENTS 'immediate trace name flush_cache';

DROP_SEGMENTS手工删除临时段。当这些临时段无法自动清除的时候可以手工清除alter session set events 'immediate trace name DROP_SEGMENTS level ts#+1'; --ts#是指要删除临时段的表空间的ts#

global_area1 包含PGA2 包含SGA4 包含UGA8 包含indrect memoryALTER SESSION SET EVENTS 'immediate trace name global_area level n';

Library Cache1 library cache统计信息2 包含hash table histogram3 包含object handle4 包含object结构(Heap 0)ALTER SESSION SET EVENTS 'immediate trace name library_cache level 10';

Row Cachedump数据字典缓冲区中的信息:1 row cache统计信息2 包含hash table histogram8 包含object结构ALTER SESSION SET EVENTS 'immediate trace name row_cache level n';

Process State分析进程状态ALTER SESSION SET EVENTS 'immediate trace name processstate level 10';

systemstatedump所有系统状态和进程状态,分析系统状态,最好每10分钟一次,做三次对比ALTER SESSION SET EVENTS 'immediate trace name systemstate level 10';

errorstackdump错误栈信息,通常Oracle发生错误时前台进程将得到一条错误信息,但某些情况下得不到错误信息,可以采用这种方式得到Oracle错误0 Error stack1 level 0 + function call stack2 level 1 + process state3 level 2 + context areaalter session set events '604 trace name errorstack forever'; --表示当出现604错误时,dump错误栈和进程栈ALTER SESSION SET EVENTS 'immediate trace name errorstack level n';alter session set events '942 trace name errorstack level 3';alter system set events='1438 trace name errorstack forever,level 3';alter system set events='1438 trace name errorstack off';

Work Area1 SGA信息2 Workarea Table摘要信息3 Workarea Table详细信息ALTER SESSION SET EVENTS 'immediate trace name workareatab_dump level n';

Latches1 latch信息2 统计信息ALTER SESSION SET EVENTS 'immediate trace name latches level n';

events1 session2 process3 systemALTER SESSION SET EVENTS 'immediate trace name events level n';

block分析数据文件块,转储数据文件n的块m:alter system dump datafile n block m;ALTER SYSTEM DUMP DATAFILE file# BLOCK block#;ALTER SYSTEM DUMP DATAFILE file# BLOCK MIN min # BLOCK MAX max #;

File Headerdump所有数据文件的头部信息:1 控制文件中的文件头信息2 level 1 + 文件头信息3 level 2 + 数据文件头信息10 level 3alter session set events 'immediate trace name file_hdrs level 1'; --表示dump 所有数据文件头部的控制文件项。alter session set events 'immediate trace name file_hdrs level 2'; --表示dump 所有数据文件的通用文件头。alter session set events 'immediate trace name file_hdrs level 10'; --表示dump 所有数据文件的完整文件头。

Control file转储控制文件:1 文件头信息2 level 1 + 数据库信息 + 检查点信息3 level 2 + 可重用节信息10 level 312alter system set events 'immediate trace name controlf level 12';

Redo log Header分析日志文件头:1 控制文件中的redo log信息2 level 1 + 文件头信息3 level 2 + 日志文件头信息10 level 3alter session set events 'immediate trace name redohdr level 1'; --表示dump redo日志头部的控制文件项。alter session set events 'immediate trace name redohdr level 2'; --表示dump redo日志的通用文件头。alter session set events 'immediate trace name redohdr level 10'; --表示dump redo日志的完整文件头。

Redo log分析日志文件ALTER SYSTEM DUMP LOGFILE 'FileName';

Loghistdump控制文件中的日志历史项:1 dump控制文件中最早和最迟的日志历史项>1 dump 2的n次方个日志历史项alter session set events 'immediate trace name loghist level 1'; --表示只dump最早和最迟的日志历史项。alter session set events 'immediate trace name loghist level 4'; --表示dump 16个日志历史项。
10013Instance Recovery用于监视事务恢复,在STARTUP时跟踪事务恢复ALTER SESSION SET EVENTS '10013 trace name context forever, level 1';
10015Undo Segment Recovery转储UNDO SEGMENT头部,Dump Undo Segment Headers,在事务恢复后做Dump回退段头信息ALTER SESSION SET EVENTS '10015 trace name context forever, level 1';
10032sort statistics (SOR*)转储排序的统计信息,level 10是最详细的ALTER SESSION SET EVENTS '10032 trace name context forever, level 10';
10033sort run information (SRD*/SRS*)转储排序增长的统计信息ALTER SESSION SET EVENTS '10033 trace name context forever, level 10';
10035Write parse failures to alert log file解析失败写入告警日志alter system set events '10035 trace name context forever,leve 5';alter system set events '10035 trace name context off';
10059simulate error in logfile create/clear模拟Redo日志中的创建和清除错误
10061disable SMON from cleaning temp segment阻止SMON进程在启动时清除临时段
10079trace data sent/received via SQL*Net转储SQL*NET统计信息ALTER SESSION SET EVENTS '10079 trace name context forever, level 2';
10081segment High Water Mark has been advanced转储高水位标记变化ALTER SESSION SET EVENTS '10081 trace name context forever, level 1';
10104dump hash join statistics to trace file转储HASH连接统计信息,用level 10ALTER SESSION SET EVENTS '10104 trace name context forever, level 10';
10200consistent read buffer status转储一致性读信息
10201consistent read undo application转储一致性读中Undo应用
10209enable simulated error on control file允许在控制文件中模拟错误
10210check data block integrity触发数据块检查事件event = "10210 trace name context forever, level 10"
10213crash after control file write模拟在写控制文件后崩溃
10214simulate write errors on control file模拟在控制文件中的写错误,levelnumber从1-9表示产生错误的块号,大于等于10则每个控制文件将出错
10215simulate read errors on control file模拟在控制文件中的读错误
10220show updates to the transaction table转储Undo头部变化
10221show changes done with undo转储Undo变化
10224index block split/delete trace10224事件可以分析索引块分裂及删除alter session set events '10224 trace name context forever,level 10';alter session set events '10224 trace name context off';
10229simulate I/O error against datafiles模拟在数据文件上的I/O错误
10231skip corrupted blocks on _table_scans_设置在全表扫描时忽略损坏的数据块alter session set events '10231 trace name context off'; -- 关闭会话期间的数据块检查event = "10231 trace name context forever, level 10" -- 对任何进程读入SGA的数据块进行检查
10232dump corrupted blocks symbolically when kcbgotten将设置为软损坏(DBMS_REPAIR包设置或DB_BLOCK_CHECKING为TRUE时设置)的数据块dump到跟踪文件
10241remote SQL execution tracing/validation转储远程SQL执行
10246print trace of PMON actions to trace file跟踪PMON进程,将PMON的动作输出到trace文件中alter session set events '10246 trace name context forever,level 4';alter session set events '10246 trace name context off';
10252shared IO pool error simulation模拟写数据文件头部错误
10253limit SQL text returned from X$KGLNA[1]模拟写重做日志文件错误
10270Debug shared cursors转储共享游标
10285Simulate control file header corruption模拟控制文件头部损坏
10286Simulate control file open error模拟控制文件打开错误
10287Simulate archiver error模拟归档出错
10357turn on debug information for direct path调试直接路径机制
10500turn on traces for SMON跟踪SMON进程
10608trace create bitmap index跟踪位图索引的创建
10622test/trace online index (re)build测试或转储索引的在线创建和重建
10708print out trace information from the RAC buffer cache跟踪RAC的Buffer Cache
28401
屏蔽密码延迟验证ALTER SYSTEM SET EVENTS '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1';--屏蔽密码延迟验证ALTER SYSTEM SET EVENTS '28401 TRACE NAME CONTEXT OFF'; --关闭28401事件

& 说明:

有关dump的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2135959/。

相关推荐

Redis合集-使用benchmark性能测试

采用开源Redis的redis-benchmark工具进行压测,它是Redis官方的性能测试工具,可以有效地测试Redis服务的性能。本次测试使用Redis官方最新的代码进行编译,详情请参见Redis...

Java简历总被已读不回?面试挂到怀疑人生?这几点你可能真没做好

最近看了几十份简历,发现大部分人不是技术差,而是不会“卖自己”——一、简历死穴:你写的不是经验,是岗位说明书!反面教材:ד使用SpringBoot开发项目”ד负责用户模块功能实现”救命写法:...

redission YYDS(redission官网)

每天分享一个架构知识Redission是一个基于Redis的分布式Java锁框架,它提供了各种锁实现,包括可重入锁、公平锁、读写锁等。使用Redission可以方便地实现分布式锁。red...

从数据库行锁到分布式事务:电商库存防超卖的九重劫难与破局之道

2023年6月18日我们维护的电商平台在零点刚过3秒就遭遇了严重事故。监控大屏显示某爆款手机SKU_IPHONE13_PRO_MAX在库存仅剩500台时,订单系统却产生了1200笔有效订单。事故复盘发...

SpringBoot系列——实战11:接口幂等性的形而上思...

欢迎关注、点赞、收藏。幂等性不仅是一种技术需求,更是数字文明对确定性追求的体现。在充满不确定性的网络世界中,它为我们建立起可依赖的存在秩序,这或许正是技术哲学最深刻的价值所在。幂等性的本质困境在支付系...

如何优化系统架构设计缓解流量压力提升并发性能?Java实战分享

如何优化系统架构设计缓解流量压力提升并发性能?Java实战分享在高流量场景下。首先,我需要回忆一下常见的优化策略,比如负载均衡、缓存、数据库优化、微服务拆分这些。不过,可能还需要考虑用户的具体情况,比...

Java面试题: 项目开发中的有哪些成长?该如何回答

在Java面试中,当被问到“项目中的成长点”时,面试官不仅想了解你的技术能力,更希望看到你的问题解决能力、学习迭代意识以及对项目的深度思考。以下是回答的策略和示例,帮助你清晰、有说服力地展示成长点:一...

互联网大厂后端必看!Spring Boot 如何实现高并发抢券逻辑?

你有没有遇到过这样的情况?在电商大促时,系统上线了抢券活动,结果活动刚一开始,服务器就不堪重负,出现超卖、系统崩溃等问题。又或者用户疯狂点击抢券按钮,最后却被告知无券可抢,体验极差。作为互联网大厂的后...

每日一题 |10W QPS高并发限流方案设计(含真实代码)

面试场景还原面试官:“如果系统要承载10WQPS的高并发流量,你会如何设计限流方案?”你:“(稳住,我要从限流算法到分布式架构全盘分析)…”一、为什么需要限流?核心矛盾:系统资源(CPU/内存/数据...

Java面试题:服务雪崩如何解决?90%人栽了

服务雪崩是指微服务架构中,由于某个服务出现故障,导致故障在服务之间不断传递和扩散,最终造成整个系统崩溃的现象。以下是一些解决服务雪崩问题的常见方法:限流限制请求速率:通过限流算法(如令牌桶算法、漏桶算...

面试题官:高并发经验有吗,并发量多少,如何回复?

一、有实际高并发经验(建议结构)直接量化"在XX项目中,系统日活用户约XX万,核心接口峰值QPS达到XX,TPS处理能力为XX/秒。通过压力测试验证过XX并发线程下的稳定性。"技术方案...

瞬时流量高并发“保命指南”:这样做系统稳如泰山,老板跪求加薪

“系统崩了,用户骂了,年终奖飞了!”——这是多少程序员在瞬时大流量下的真实噩梦?双11秒杀、春运抢票、直播带货……每秒百万请求的冲击,你的代码扛得住吗?2025年了,为什么你的系统一遇高并发就“躺平”...

其实很多Java工程师不是能力不够,是没找到展示自己的正确姿势。

其实很多Java工程师不是能力不够,是没找到展示自己的正确姿势。比如上周有个小伙伴找我,五年经验但简历全是'参与系统设计''优化接口性能'这种空话。我就问他:你做的秒杀...

PHP技能评测(php等级考试)

公司出了一些自我评测的PHP题目,现将题目和答案记录于此,以方便记忆。1.魔术函数有哪些,分别在什么时候调用?__construct(),类的构造函数__destruct(),类的析构函数__cal...

你的简历在HR眼里是青铜还是王者?

你的简历在HR眼里是青铜还是王者?兄弟,简历投了100份没反应?面试总在第三轮被刷?别急着怀疑人生,你可能只是踩了这些"隐形求职雷"。帮3630+程序员改简历+面试指导和处理空窗期时间...

取消回复欢迎 发表评论: