Re: ** trace file

  • From: Mathias Magnusson <mathias.magnusson@xxxxxxxxx>
  • To: ajoshi97@xxxxxxxxx
  • Date: Sun, 26 Apr 2009 05:58:19 +0200

Could your problem be solved by creating smaller files after the trace has
finished? Or do you have to get smaller ones while running to manage the
diskspace?

If you did the echo, then what happened? Did the file not get any more data?
If not, did the inode change?

Do you really need hours of trace information with all binds and waits? If
you are not investigating individual wait events, then you could of course
save a lot of space by not requsting the wait information.


Reading that much data from a raw trace would seem more than daunting. But
it ought to be technically possible somehow. Woudl splitting after creating
the trace file be an option? If not, then looking into why you do not get
more data after truncating the file is what I think would be your next step.

One additional option could be to set client, module, and action for
different parts of your code to allow you to trace just the statements you
need information about.

Mathias

On Sun, Apr 26, 2009 at 5:24 AM, A Joshi <ajoshi977@xxxxxxxxx> wrote:

> Mathias,
>    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
>
>
> It 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.
>
> Mathias
>
> On Thu, Apr 23, 2009 at 3:30 AM, A Joshi <ajoshi977@xxxxxxxxx> wrote:
>
>> Thanks Tim, Mathias,
>> Wolfgang,
>>    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.
>>
>> Thanks
>>
>> --- 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 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.
>>
>> Mathias
>>
>>
>>    I also cannot remove the file or empty the trace file. Because after
>>> that nothing goes into the file. Thanks
>>>
>>
>>  -- //www.freelists.org/webpage/oracle-l
>>
>>
>>
>
>

Other related posts: