ASH如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据

Posted ^_^小麦苗^_^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASH如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据相关的知识,希望对你有一定的参考价值。

ASH如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据

 

1.1  BLOG文档结构图

wpsF4F7.tmp 

1.2  前言部分

1.2.1  导读和注意事项

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~

如何导出ASH数据--利用exp导出基表的数据(重点)

12c的expdp参数VIEWS_AS_TABLES选项

expdp工具不能导出哪些对象?

Tips

本文在itpubhttp://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimiaolhr有同步更新

文章中用到的所有代码相关软件相关资料及本文的pdf版本都请前往小麦苗的云盘下载小麦苗的云盘地址见:http://blog.itpub.net/26736162/viewspace-1624453/

若网页文章代码格式有错乱,下载pdf格式的文档来阅读

本篇BLOG,代码输出部分一般放在一行一列的表格中。

本文有错误或不完善的地方请大家多多指正,您的批评指正是我写作的最大动力。

 

1.2.2  相关文章链接

12c的dmp文件导入11g中参考:【故障处理】IMP-00010错误 12Cdmp文件导入11G,地址为:http://blog.itpub.net/26736162/viewspace-2128197/

 

1.2.3  本文简介

众所周知,视图只是一个查询数据的窗口,其不存储数据,所以在使用exp等工具导出的时候只能导出其定义,而不能导出视图的查询结果数据。在Oracle 12c中,可以采用expdp中的一个新增参数VIEWS_AS_TABLES来将视图作为表来导出,非常实用,不过对于一些特殊的表仍然不能采用expdp导出,例如SYSSYSTEM下的一些表,AUD$表不能使用expdp来导出。

另外,对于一些安全类很高的系统是不允许随意创建表,也不允许使用PLSQL Developer等客户端的工具,那么若是查询DBA_HIST_ACTIVE_SESS_HISTORY等视图的时候就非常不方便了,这个时候我们可以将该视图的内容导出来,然后导入到我们自己的测试库中就可以随意的进行分析了。那么,如何来导出这些数据的内容呢?本文将详细介绍这些内容

1.3  如何导出ash数据?

根据前边的分析,我们知道视图的查询结果数据不能直接导出,那么我们可以导出这个视图的基表数据:

SELECT D.NAME, D.TYPE, D.REFERENCED_NAME, D.REFERENCED_TYPE

  FROM DBA_DEPENDENCIES D

 WHERE D.NAME IN (\'DBA_HIST_ACTIVE_SESS_HISTORY\',

                  \'DBA_HIST_PLAN_OPERATION_NAME\',

                  \'DBA_HIST_PLAN_OPTION_NAME\',

                  \'DBA_HIST_SQLCOMMAND_NAME\',

                  \'DBA_HIST_TOPLEVELCALL_NAME\')

   AND D.TYPE = \'VIEW\'

 ORDER BY D.NAME, D.REFERENCED_NAME;

wpsF4F8.tmp 

主要涉及的表是图中方框里的去掉X$表后的7个表,其中最主要的还是WRH$_ACTIVE_SESSION_HISTORY表,该表是一个分区表,导出的时候可以按照时间进行导出。其它表都是很小的表,可以全量导出。

下面尝试使用exp和expdp来导出。

 

1.3.1  expdp导出sys用户下的表报错ORA-39165 ORA-39166

[oracle@orcltest ~]$ more /tmp/expdp_ash_lhr_01.par

query=SYS.WRH$_ACTIVE_SESSION_HISTORY:"WHERE SAMPLE_TIME BETWEEN TO_DATE(\'2016-12-02 08:30:00\', \'YYYY-MM-DD HH24:MI:SS\') AND TO_DATE(\'2016-12-08 23:38:00\', \'YYYY-MM-DD HH24:MI:SS\')"

[oracle@orcltest ~]$

[oracle@orcltest ~]$ expdp \\\'/ AS SYSDBA\\\' directory=DATA_PUMP_DIR tables=\'SYS.WRH$_ACTIVE_SESSION_HISTORY\',\'SYS.WRM$_SNAPSHOT\',\'SYS.WRH$_EVENT_NAME\',\'SYS.WRH$_SQLCOMMAND_NAME\',\'SYS.WRH$_PLAN_OPERATION_NAME\',\'SYS.WRH$_PLAN_OPTION_NAME\',\'SYS.WRH$_TOPLEVELCALL_NAME\' dumpfile=expdp_ash_lhr_01.dmp parfile=/tmp/expdp_ash_lhr_01.par  EXCLUDE=STATISTICS VERSION=11.2.0.1  REUSE_DUMPFILES=Y

 

Export: Release 11.2.0.3.0 - Production on Fri Dec 16 16:49:52 2016

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TABLE_03":  "/******** AS SYSDBA" directory=DATA_PUMP_DIR tables=SYS.WRH$_ACTIVE_SESSION_HISTORY,SYS.WRM$_SNAPSHOT,SYS.WRH$_EVENT_NAME,SYS.WRH$_SQLCOMMAND_NAME,SYS.WRH$_PLAN_OPERATION_NAME,SYS.WRH$_PLAN_OPTION_NAME,SYS.WRH$_TOPLEVELCALL_NAME dumpfile=expdp_ash_lhr_01.dmp parfile=/tmp/expdp_ash_lhr_01.par EXCLUDE=STATISTICS VERSION=11.2.0.1 REUSE_DUMPFILES=Y

Estimate in progress using BLOCKS method...

Total estimation using BLOCKS method: 0 KB

ORA-39166: Object SYS.WRH$_ACTIVE_SESSION_HISTORY was not found.

ORA-39166: Object SYS.WRM$_SNAPSHOT was not found.

ORA-39166: Object SYS.WRH$_EVENT_NAME was not found.

ORA-39166: Object SYS.WRH$_SQLCOMMAND_NAME was not found.

ORA-39166: Object SYS.WRH$_PLAN_OPERATION_NAME was not found.

ORA-39166: Object SYS.WRH$_PLAN_OPTION_NAME was not found.

ORA-39166: Object SYS.WRH$_TOPLEVELCALL_NAME was not found.

ORA-31655: no data or metadata objects selected for job

Job "SYS"."SYS_EXPORT_TABLE_03" completed with 8 error(s) at 16:49:53

 

 

查询MOS

DataPump Export (EXPDP) Fails With Error ORA-39165: Schema SYS Was Not Found (文档 ID 553402.1)

该文章给出了如下答案:

1. There Oracle 导出 ASH的dump信息

Oracle生成ASH报告

数据泵导出导入物化视图

[ORACLE]Oracle ASH报告生成和性能分析

如何跳过 ash/dash shell 函数中的第一个参数?

如何将oracle用户下的表,视图结构导出