Re: ** trace file

  • From: A Joshi <ajoshi977@xxxxxxxxx>
  • To: Mathias Magnusson <mathias.magnusson@xxxxxxxxx>
  • Date: Sat, 25 Apr 2009 20:24:57 -0700 (PDT)


   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 <mathias.magnusson@xxxxxxxxx> wrote:
From: Mathias Magnusson <mathias.magnusson@xxxxxxxxx>
Subject: Re: ** trace file
To: ajoshi977@xxxxxxxxx
Cc: "oracle-l" <oracle-l@xxxxxxxxxxxxx>
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 <ajoshi977@xxxxxxxxx> 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 <tim@xxxxxxxxx> wrote:

From: Tim Gorman <tim@xxxxxxxxx>
Subject: Re: ** trace file
To: mathias.magnusson@xxxxxxxxx

Cc: ajoshi977@xxxxxxxxx, "oracle-l" <oracle-l@xxxxxxxxxxxxx>
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

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





Other related posts: