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

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

sinye56 2024-10-07 14:48 5 浏览 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/。

相关推荐

Linux基础知识之修改root用户密码

现象:Linux修改密码出现:Authenticationtokenmanipulationerror。故障解决办法:进入单用户,执行pwconv,再执行passwdroot。...

Linux如何修改远程访问端口

对于Linux服务器而言,其默认的远程访问端口为22。但是,出于安全方面的考虑,一般都会修改该端口。下面我来简答介绍一下如何修改Linux服务器默认的远程访问端口。对于默认端口而言,其相关的配置位于/...

如何批量更改文件的权限

如果你发觉一个目录结构下的大量文件权限(读、写、可执行)很乱时,可以执行以下两个命令批量修正:批量修改文件夹的权限chmod755-Rdir_name批量修改文件的权限finddir_nam...

CentOS「linux」学习笔记10:修改文件和目录权限

?linux基础操作:主要介绍了修改文件和目录的权限及chown和chgrp高级用法6.chmod修改权限1:字母方式[修改文件或目录的权限]u代表所属者,g代表所属组,o代表其他组的用户,a代表所有...

Linux下更改串口的权限

问题描述我在Ubuntu中使用ArduinoIDE,并且遇到串口问题。它过去一直有效,但由于可能不必要的原因,我觉得有必要将一些文件的所有权从root所有权更改为我的用户所有权。...

Linux chown命令:修改文件和目录的所有者和所属组

chown命令,可以认为是"changeowner"的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。当只需要修改所有者时,可使用...

chmod修改文件夹及子目录权限的方法

chmod修改文件夹及子目录权限的方法打开终端进入你需要修改的目录然后执行下面这条命令chmod777*-R全部子目录及文件权限改为777查看linux文件的权限:ls-l文件名称查看li...

Android 修改隐藏设置项权限

在Android系统中,修改某些隐藏设置项或权限通常涉及到系统级别的操作,尤其是针对非标准的、未在常规用户界面显示的高级选项。这些隐藏设置往往与隐私保护、安全相关的特殊功能有关,或者涉及开发者选项、权...

完蛋了!我不小心把Linux所有的文件权限修改了!在线等修复!

最近一个客户在群里说他一不小心把某台业务服务器的根目录权限给改了,本来想修改当前目录,结果执行成了根目录。...

linux改变安全性设置-改变所属关系

CentOS7.3学习笔记总结(五十八)-改变安全性设置-改变所属关系在以前的文章里,我介绍过linux文件权限,感兴趣的朋友可以关注我,阅读一下这篇文章。这里我们不在做过的介绍,注重介绍改变文件或者...

Python基础到实战一飞冲天(一)--linux基础(七)修改权限chmod

#07_Python基础到实战一飞冲天(一)--linux基础(七)--修改权限chmod-root-groupadd-groupdel-chgrp-username-passwd...

linux更改用户权限为root权限方法大全

背景在使用linux系统时,经常会遇到需要修改用户权限为root权限。通过修改用户所属群组groupid为root,此操作只能使普通用户实现享有部分root权限,普通用户仍不能像root用户一样享有超...

怎么用ip命令在linux中添加路由表项?

在Linux中添加路由表项,可以使用ip命令的route子命令。添加路由表项的基本语法如下:sudoiprouteadd<network>via<gateway>这...

Linux配置网络

1、网卡名配置相关文件回到顶部网卡名命名规则文件:/etc/udev/rules.d/70-persistent-net.rules#PCIdevice0x8086:0x100f(e1000)...

Linux系列---网络配置文件

1.网卡配置文件在/etc/sysconfig/network-scripts/下:[root@oldboynetwork-scripts]#ls/etc/sysconfig/network-s...

取消回复欢迎 发表评论: