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

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

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

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: