SQL> show parameter user_dump_destNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest                       string      /oracle/admin/mydb/udump
SQL> alter database backup controlfile to trace;Database altered.SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@localhost ~]$ ls /oracle/admin/mydb/udump/
[oracle@localhost ~]$问题:为什么在/oracle/admin/mydb/udump下并没有生成脚本。
[oracle@localhost ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Wed Jul 1 23:32:46 2009Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining optionsSQL> alter database backup controlfile to trace as '/oracle/backup/ctl.sql';Database altered.SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@localhost ~]$ ls /oracle/backup/
ctl.sql
[oracle@localhost ~]$
这样就可以。

解决方案 »

  1.   

    是不是写的太多了,简单点:
    alter database backup controlfile to trace; 没有生成脚本
    alter database backup controlfile to trace as '/oracle/backup/ctl.sql'; 生成了脚本
    这是什么原因。
      

  2.   

    不会吧,如果不成功,该报错了。find / -name .... 查找一下
      

  3.   


    SQL> alter database backup controlfile to trace; 这个是把controlfile的脚步dump到user trace文件里。按照你的信息应该是在
     /oracle/admin/mydb/udump 下的某个.trc文件里。这里看你的目录都是空的,估计你是在实例启动以后,把udump的目录文件都删除了吧,这样的话,信息是cache在oracle里的,你shutdown immedaite的时候就会出现。给你一个function来查看当前session的trace文件的文件名如下
    create or replace function gettracename  return varchar2 is
      v_result varchar2(200);
    begin
      SELECT    d.VALUE
           || '/'
           || LOWER (RTRIM (i.INSTANCE, CHR (0)))
           || '_ora_'
           || p.spid
           || '.trc' into v_result
      FROM (SELECT p.spid
              FROM v$mystat m, v$session s, v$process p
             WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
           (SELECT t.INSTANCE
              FROM v$thread t, v$parameter v
             WHERE v.NAME = 'thread'
               AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
           (SELECT VALUE
              FROM v$parameter
             WHERE NAME = 'user_dump_dest') d;
             
      return v_result;
    end gettracename;运行SQL> select gettracename() from dual;即可
    GETTRACENAME()
    -----------------------------------------------------------------------F:\DEVELOPER\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP/orcl_ora_3800.trc
      

  4.   

    开新的session登陆就会有产生了。