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

60次阅读
没有评论

共计 6664 个字符,预计需要花费 17 分钟才能阅读完成。

这篇文章主要介绍 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 AWRTEST as  /home/oracle/awrtest;

6. 加载数据文件:

SQL  @?/rdbms/admin/awrload.sql
SQL Enter value for directory_name: AWRTEST //// 注意:输入 directory name  时,字母需要大写  
Enter value for file_name: AWR_10107 /// 注意:此处不要加文件后缀名
Enter value for schema_name: AWR_STAGE //(一般默认就行)
Enter value for default_tablespace: USERS 
Enter value 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.net/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.net/519536/viewspace-664406  侯圣文老师 

AWR 数据迁移参考地址:

 春风: http://www.dbdream.org/?p=223
eygle: 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 如何实现数据导入 / 导出”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计6664字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)