Oracle AWR如何实现数据导入/导出

网友投稿 554 2023-12-31

Oracle AWR如何实现数据导入/导出

这篇文章主要介绍Oracle AWR如何实现数据导入/导出,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Oracle AWR如何实现数据导入/导出

LINUX状态下,连接oracle用户:su - oracle

1.上传采集快照.dmp文件至服务器  (dbid:4292035712)  919219826

2.在服务器端创建目录 (即文件夹awrtest)

$> mkdir /home/oracle/awrtest

3.把第一步中上传的.dmp文件,移动到第二步中创建的文件夹中:

$> cp /var/ftp/AWR_10107.dmp(如果原文件后缀名是.DMP一定要改成小写.dmp) /home/oracle/awrtest

4.切换至sqlplus状态,并且启动数据库

$> sqlplus / as sysdba  SQL>startup;

5. 创建数据库目录便于数据库查找

SQL> create directory AWRTESTas /home/oracle/awrtest

6.加载数据文件:

SQL> @?/rdbms/admin/awrload.sql SQL>Entervalue for directory_name: AWRTEST ////注意:输入directory name 时,字母需要大写  Enter value forfile_name: AWR_10107///注意:此处不要加文件后缀名 Enter value for schema_name: AWR_STAGE //(一般默认就行) Enter value fordefault_tablespace: USERS  Entervalue for temporary_tablespace: //(回车默认)

  出现一下文字,就说明导入成功了!

... Creating AWR_STAGE user | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Loading the AWR data from the following | directory/file: | /home/oracle/awr | AWRDAT_9239_9394.dmp | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |*** AWR Load Started ...| | This operation will take a few moments. The | progress of the AWR load operation can be | monitored in the following directory/file: | /home/oracle/awr | AWRDAT_9239_9394.log | ... Dropping AWR_STAGE user End of AWR Load ----------------------------------------------------------------------------------

报错症状:(注意文件夹复权的问题!)

[root@localhost ~]# cd /home/oracle/ [root@localhost oracle]# ls -lt total 660 drwxr-xr-x 2 root   root 4096 Aug 6 02:07 awr drwxr-xr-x 2 root   root 4096 Aug 6 02:04 awrtest2 -rw-r--r-- 1 oracle oinstall 326088 Jul  8 22:13 zhongxing.html -rw-r--r-- 1 oracle oinstall 311525 Jul  1 12:48 HUAYOUSHIJI.html drwxr-xr-x 3 oracle oinstall 4096 Jul 1 11:32 awrtest1 drwxr-xr-x 2 oracle oinstall 4096 Jul 1 01:10 awrtest drwxr-xr-x 2 oracle oinstall 4096 Jun 30 12:47 jishubu drwxr-xr-x 3 oracle oinstall 4096 Jun 22 14:58 Desktop [root@localhost oracle]# chmod -R 777 awr [root@localhost oracle]# ls -lt total 660 drwxrwxrwx 2 root   root 4096 Aug 6 02:07 awr drwxr-xr-x 2 root   root 4096 Aug 6 02:04 awrtest2 -rw-r--r-- 1 oracle oinstall 326088 Jul  8 22:13 zhongxing.html -rw-r--r-- 1 oracle oinstall 311525 Jul  1 12:48 HUAYOUSHIJI.html drwxr-xr-x 3 oracle oinstall 4096 Jul 1 11:32 awrtest1 drwxr-xr-x 2 oracle oinstall 4096 Jul 1 01:10 awrtest drwxr-xr-x 2 oracle oinstall 4096 Jun 30 12:47 jishubu drwxr-xr-x 3 oracle oinstall 4096 Jun 22 14:58 Desktop [root@localhost oracle]#

其他报错问题 解决参考地址:

http://space.itpub-/12129601/viewspace-735524 http://www.xifenfei.com/3966.html   惜分飞  http://blog.163.com/jet_it_life/blog/static/205097083201262431444951/directory  创建不正确导致的ORA-39070 http://www.douban.com/note/37656300/oracle impdp/expdp 的权限问题 http://space.itpub-/519536/viewspace-664406 侯圣文老师

AWR数据迁移参考地址:

春风:  http://www.dbdream.org/?p=223eygle: AWR 与 Statspack 数据的导出与迁移http://www.eygle.com/archives/2010/08/awr_statspack_extract.html

7.执行相关脚本:(如逻辑读脚本、db-time脚本等)

   查看dbid:

SQL> select dbid from v$database; 223805804 SQL> setpagesize 500 # su - oracle  $  cd awrtest/ #根据自己的安装目录确认 $  ls (查看当前目录下文件,确认相关文件名)

生成逻辑读-语句: 

SELECT case when to_number(to_char(c.end_interval_time, mi))<15 or to_number(to_char(c.end_interval_time, mi))>=45

then to_char(round(c.end_interval_time, hh34),yyyy-mm-dd hh34:mi)

else to_char(c.end_interval_time, yyyy-mm-dd hh34)||:30                                                                        

      end end_time,                                                                                                                

case when max(decode(a.instance_number, 1, a.value - b.value, null))<0 then null

else max(decode(a.instance_number, 1, a.value - b.value, null))

      end INST1,                                                                                                                   

case when max(decode(a.instance_number, 2, a.value - b.value, null))<0 then null

           else max(decode(a.instance_number, 2, a.value - b.value, null))                                                         

      end INST2,                                                                                                                   

case when max(decode(a.instance_number, 3, a.value - b.value, null))<0 then null

else max(decode(a.instance_number, 3, a.value - b.value, null))

      end INST3,                                                                                                                   

case when max(decode(a.instance_number, 4, a.value - b.value, null))<0 then null

           else max(decode(a.instance_number, 4, a.value - b.value, null))                                                         

end INST4

FROM sys.wrh$_sysstat a, sys.wrh$_sysstat b, sys.wrm$_snapshot c                                                                   

WHERE a.stat_id =3143187968                                                                                                        

AND b.stat_id = a.stat_id

  AND a.snap_id = b.snap_id + 1                                                                                                    

  AND a.snap_id = c.snap_id                                                                                                        

  and a.dbid =&dbid                                                                                                                

and b.dbid = a.dbid

  and c.dbid = a.dbid                                                                                                              

  and a.instance_number = b.instance_number                                                                                        

and a.instance_number = c.instance_number

group by a.snap_id, case when to_number(to_char(c.end_interval_time, mi))<15 or to_number(to_char(c.end_interval_time, mi))>=45

                then to_char(round(c.end_interval_time, hh34),yyyy-mm-dd hh34:mi)                                              

else to_char(c.end_interval_time, yyyy-mm-dd hh34)||:30

      end                                                                                                                          

ORDER BY a.snap_id; 

注意:结尾的分号不能少。

生成db-time数据语句: 

SELECT TO_CHAR(b.end_interval_time, yyyy-mm-dd hh34:mi:ss) snap_time,

  --DB Time(s),

  CASE

WHEN (ROUND((a.VALUE - lag(a.VALUE, 1) OVER(ORDER BY a.snap_id)) / 1000000))<0

    THEN 0

ELSE ROUND((a.VALUE - lag(a.VALUE, 1) OVER(ORDER BY a.snap_id)) / 1000000)

  END AS "db time(s)"

FROM

  (SELECT snap_id,

    VALUE

FROM dba_hist_sys_time_model

  WHERE stat_name     = DB time

  and dbid=&db_id

AND INSTANCE_NUMBER = &instance_id) a,

  dba_hist_snapshot b

WHERE b.dbid=&db_id

AND a.snap_id       = b.snap_id

AND b.INSTANCE_NUMBER = &instance_id

--AND b.end_interval_time > sysdate-30

ORDER BY 1;

Enter value for db_id: 4292035712

Enter value for instance_id: 1  ///(单实例输入1,RAC 的根据实际情况输入相应的值)

Enter value for db_id: 4292035712

Enter value for instance_id: 1

8.导入excel表 ,生成趋势图

   excel里边选择数据 -导入-自文本

   选择导入的数据-生成曲线图-双击横坐标选择文本格式

9. 观察趋势图高峰值,导出AWR报告,Oracle用户下执行如下命令:

@?/rdbms/admin/awrrpti

导出的AWR报告有两种类型格式: .txt 和 .html

系统默认导出是.html      一般输入时间间隔天数:7 

按照步骤,连续操作就行。

Enter value for dbid: 4292035712 Using 4292035712 for database Id Enter value for inst_num: 1(输入实例个数) Using 1 for instance number

例如:导出时间点为:7月1日 11点 12点 负载高峰时段的AWR数据。

注意:在导出报告时,文件起名时要手动添加后缀名.html

以上是“Oracle AWR如何实现数据导入/导出”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:vue用axios调用后端接口?
下一篇:vue拖拽组件(vue 拖动组件)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~