Re: ** trace file

From: A Joshi <>
Date: Sat, 25 Apr 2009 20:24:57 -0700 (PDT)
Message-ID: <>


   Thanks. I tried
> tracefile.trc

as suggested by Franck Pachot. The file size comes down to 0. However, when I do :

oradebug setospid 400

oradebug unlimit

oradebug event 10046 trace name context forever , level 12

It does not write to the file at all. I do need this to work. We have lot of processes that run long. They do different processing : going to one table then to other and doing different sql, update and I would like to get the trace different. There are also some changes to the data and amount of processing so I need to do this from time to time. At one point I forgot to do

oradebug event 10046 trace name context off

after five minutes and it created a huge trace file and I could not work with it. It is difficult to upload big files to oracle support metalink. I have done compress or done ftp to oracle site sometimes. So it is different scenario but my requirement is same : I would like to have a different trace file or have a way to reduce the size of the trace file. Without running the risk of no trace being written to it. It is much worse if nothing gets written to it. Thanks

  • On Thu, 4/23/09, Mathias Magnusson <> wrote: From: Mathias Magnusson <> Subject: Re: ** trace file To: Cc: "oracle-l" <> Date: Thursday, April 23, 2009, 2:53 AM

sounds as if you may need to revisit your requirements. This would create a file too large to work with. Has Oracle Support requested it?

Is the job not very repetitive so that any five minutes will look virtually identical (assuming it is one single batch process). If that would be the case, you would only need a trace for a short period.

If yo need all of this trace data, then you could copy from it to another file and then truncate it ( echo '' > <file>). That resets the file pointer, while not changing the inode for the file. While you're copying and truncating the file will be written to so make sure you're not missing some data or getting half written records, you will want to pause the process. In Solaris that should be possible with the pstop command. It requires root or logging in as the owner of the process.


On Thu, Apr 23, 2009 at 3:30 AM, A Joshi <> wrote:

Thanks Tim,


   tracefile_identifier does not seem to work for :

oradebug setospid 400

oradebug unlimit

oradebug event 10046 trace name context forever , level 12

I have a job that goes 8 hours. It is same sid, spid, pid etc. and I want a way to get a trace with different name. The trace file also grows very fast.


  • On Mon, 4/20/09, Tim Gorman <> wrote:

From: Tim Gorman <>
Subject: Re: ** trace file

Cc:, "oracle-l" <> Date: Monday, April 20, 2009, 4:37 PM   

Don't know if this helps, but be aware of ORADEBUG FLUSH and ORADEBUG CLOSE_FILE as well.  Might help with flushing remaining buffered output to the trace file, then closing the file-descriptor to the file.  Both may help you move the file without weirdness due to open file-descriptors....

Mathias Magnusson wrote:

  How do you empty the file? If that would be a solution for you, maybe the problem of not getting more data into it can be solved. It sounds to me as if the filename you use exists on a different inode as a result of the operation. Oracle would write to the inode it started writing to no matter what you do to the file. So if you empty it and the inode remains the same, I'd imagine new data would still show up in the file.   


          I also cannot remove the file or empty the
trace file. Because after that nothing goes into the file. Thanks




Received on Sat Apr 25 2009 - 22:24:57 CDT

Original text of this message