Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

20

积分

1

好友

9

主题
1#
发表于 2013-1-12 19:23:31 | 查看: 4163| 回复: 4
在网上查了查原因都是给出转储命令的含义等,没有说明转储文件不存在的原因或解决方法。请大师指点,下面是我的实验步骤。
  1. SYS>select * from V$version;

  2. BANNER
  3. ----------------------------------------------------------------
  4. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
  5. PL/SQL Release 10.2.0.1.0 - Production
  6. CORE    10.2.0.1.0      Production
  7. TNS for Linux: Version 10.2.0.1.0 - Production
  8. NLSRTL Version 10.2.0.1.0 - Production

  9. SYS>sho parameter user

  10. NAME                                 TYPE        VALUE
  11. ------------------------------------ ----------- ------------------------------
  12. license_max_users                    integer     0
  13. parallel_adaptive_multi_user         boolean     TRUE
  14. user_dump_dest                       string      /u01/oracle/admin/lun/udump

  15. SYS>sho parameter trace

  16. NAME                                 TYPE        VALUE
  17. ------------------------------------ ----------- ------------------------------
  18. log_archive_trace                    integer     0
  19. sql_trace                            boolean     FALSE
  20. trace_enabled                        boolean     TRUE
  21. tracefile_identifier                 string


  22. SYS>sho parameter max_dump_file_size

  23. NAME                                 TYPE        VALUE
  24. ------------------------------------ ----------- ------------------------------
  25. max_dump_file_size                   string      UNLIMITED

  26. SYS>alter session set events 'immediate trace name heapdump level 2050';

  27. Session altered.


  28. [oracle@apollon ~]$ cd /u01/oracle/admin/lun/udump

  29. [oracle@apollon udump]$ ls
  30. [oracle@apollon udump]$ ll
  31. total 0

  32. --权限
  33. [oracle@apollon udump]$ cd ..
  34. [oracle@apollon lun]$ ll
  35. total 24
  36. drwxr-x--- 2 oracle oinstall 4096 Jan 12 18:59 adump
  37. drwxr-x--- 2 oracle oinstall 4096 Jan 12 18:02 bdump
  38. drwxr-x--- 2 oracle oinstall 4096 Oct 13 11:13 cdump
  39. drwxr-x--- 2 oracle oinstall 4096 Oct 13 11:13 dpdump
  40. drwxr-x--- 2 oracle oinstall 4096 Oct 13 11:16 pfile
  41. drwxr-x--- 2 oracle oinstall 4096 Jan 12 17:46 udump

  42. --空间使用情况

  43. [oracle@apollon lun]$ du -h
  44. 4.0K    ./dpdump
  45. 4.0K    ./udump
  46. 100K    ./adump
  47. 44K     ./bdump
  48. 8.0K    ./pfile
  49. 4.0K    ./cdump
  50. 168K    .


  51. [oracle@apollon lun]$ df -h
  52. Filesystem            Size  Used Avail Use% Mounted on
  53. /dev/sda2              20G  8.8G  9.7G  48% /
  54. /dev/sda1             3.8G   78M  3.6G   3% /boot
  55. tmpfs                 506M     0  506M   0% /dev/shm
  56. /root/Desktop/10gR2_Document.iso
  57.                       1.3G  1.3G     0 100% /10gora

  58. SYS>alter session set events 'immediate trace name buffers level 3';

  59. Session altered.


  60. [oracle@apollon lun]$ cd udump/
  61. [oracle@apollon udump]$ ls
  62. [oracle@apollon udump]$ ll
  63. total 0
复制代码
就是这么一个过程,却没有trace文件。请各位大师帮忙分析一下。
是龙先学会盘着,是虎先学会卧着,等待时机,蓄势待发
2#
发表于 2013-1-12 23:06:13

oradebug setmypid
>alter session set events 'immediate trace name buffers level 3';

oradebug tracefile_name;

回复 只看该作者 道具 举报

3#
发表于 2013-1-13 01:07:35
  1. [oracle@localhost ~]$ sqlplus /nolog

  2. SQL*Plus: Release 10.2.0.1.0 - Production on D??úáù 1?? 12 08:58:50 2013

  3. Copyright (c) 1982, 2005, Oracle.  All rights reserved.

  4. SQL> conn /as sysdba
  5. Connected.
  6. SQL> show parameter dump

  7. NAME                                 TYPE        VALUE
  8. ------------------------------------ ----------- ------------------------------
  9. background_core_dump                 string      partial
  10. background_dump_dest                 string      /u01/app/oracle/admin/song/bdu
  11.                                                  mp
  12. core_dump_dest                       string      /u01/app/oracle/admin/song/cdu
  13.                                                  mp
  14. max_dump_file_size                   string      UNLIMITED
  15. shadow_core_dump                     string      partial
  16. user_dump_dest                       string      /u01/app/oracle/admin/song/udu
  17.                                                  mp
  18. SQL> !ls /u01/app/oracle/admin/song/udump

  19. SQL> alter session set events 'immediate trace name buffers level 3';

  20. Session altered.

  21. SQL> !ls /u01/app/oracle/admin/song/udump    --第一次是会产生trace
  22. song_ora_5100.trc


  23. SQL> !rm  /u01/app/oracle/admin/song/udump/*  --删 掉

  24. SQL> !ls /u01/app/oracle/admin/song/udump

  25. SQL> alter session set events 'immediate trace name buffers level 3';

  26. Session altered.

  27. SQL> !ls /u01/app/oracle/admin/song/udump    --没有发生trace

  28. SQL> oradebug setmypid
  29. Statement processed.
  30. SQL> oradebug close_trace
  31. Statement processed.
  32. SQL> alter session set events 'immediate trace name buffers level 3';

  33. Session altered.

  34. SQL> !ls /u01/app/oracle/admin/song/udump
  35. song_ora_5100.trc
复制代码

回复 只看该作者 道具 举报

4#
发表于 2013-1-14 09:47:53
感谢两位大师,让我找到的问题的根源。

原因据我分析是这样!(抱歉还是没有给全数据,因忽略了一些细节,所以可能给帮忙解决问题的人带来一定的判断影响。)

因为在数据库经过一段时间的使用之后会在以下示范中产生trace文件
  1. [root@apollon ~]# su - oracle
  2. [oracle@apollon ~]$ cd /u01/oracle/admin/lun/udump
  3. [oracle@apollon udump]$ ls
  4. lun_ora_26462.trc  lun_ora_26605.trc  lun_ora_26784.trc  lun_ora_26851.trc  lun_ora_4930.trc
  5. lun_ora_26582.trc  lun_ora_26630.trc  lun_ora_26824.trc  lun_ora_4881.trc   lun_ora_4977.trc
复制代码
这是我没进行转储命令之前的操作!
然后为了让我转储的文件更加的一目了然,我又进行了一下操作,即删除!
  1. [oracle@apollon udump]$ rm -rf *
  2. [oracle@apollon udump]$ ls
  3. [oracle@apollon udump]$ ll
  4. total 0
复制代码
根据以上两位大师的分析

我刚刚又进行了实验
  1. SYS>oradebug setmypid
  2. Statement processed.

  3. SYS>alter session set events 'immediate trace name buffers level 3';

  4. Session altered.

  5. Elapsed: 00:03:08.63
  6. SYS>oradebug tracefile_name
  7. /u01/oracle/admin/lun/udump/lun_ora_4977.trc
  8. SYS>!ls /u01/oracle/admin/lun/udump/lun_ora_4977.trc
  9. ls: /u01/oracle/admin/lun/udump/lun_ora_4977.trc: No such file or directory

  10. SYS>oradebug close_trace
  11. Statement processed.
  12. SYS>oradebug tracefile_name
  13. /u01/oracle/admin/lun/udump/lun_ora_4977.trc
  14. SYS>!ls /u01/oracle/admin/lun/udump/lun_ora_4977.trc
  15. ls: /u01/oracle/admin/lun/udump/lun_ora_4977.trc: No such file or directory

  16. SYS>alter session set events 'immediate trace name buffers level 3';

  17. Session altered.

  18. Elapsed: 00:03:01.44
  19. SYS>oradebug tracefile_name
  20. /u01/oracle/admin/lun/udump/lun_ora_4977.trc
  21. SYS>!ls /u01/oracle/admin/lun/udump/
  22. lun_ora_4977.trc
复制代码
那么以上操作让我想起了一个事,就是trace文件是以追加形式写入,除非文件到达一定存储限度,否则不会更新文件名。

再次感谢两位大师。愿这个小问题也能给后来人以提醒!!

回复 只看该作者 道具 举报

5#
发表于 2013-1-14 10:40:30
学习了,不能轻易就把trace全部删了。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 06:45 , Processed in 0.048429 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569