Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 5 of 5 total
Thread Blob Problems
Tue, Nov 30 2010 2:57 AMPermanent Link

Petrus van Breda

I upgraded an application from version 4.27 to 4.30 and all worked fine. The client had a DBSys Version 4.27 and run it on the data to rebuild indexes and now some blob fields seems to be corrupted. He then run 4.30 again.

A few questions are:

Is there a way to fix this?
If not how can I pick up which fields is corrupted?


Thanks
Tue, Nov 30 2010 5:59 AMPermanent Link

Jan Ferguson

Data Software Solutions, Inc.

Team Elevate Team Elevate

Petrus,

DBISAM 4.28 introduced a new design for the BLOB reading/writing that
is not compatible with 4.27 or earlier.  Therefore, it is extremely
important that you or your clients do not mix any DBISAM 4.28 or higher
client applications (including DBSys) with DBISAM 4.27 or earlier
client applications (including DBSys).

Mixing the two versions can cause improper truncation of BLOB data, and
that includes using a 4.27 client application on any data that has been
updated by DBISAM 4.28 or higher. The issue is that 4.27 and earlier
versions recylcle BLOB blocks on a per-block basis, whereas 4.28 and
higher versions recycle BLOB blocks on a per-row basis.

This is why I never give the client DBSys because they can reek havoc
on your databases with it if they don't know what they are doing. In
your case, they may have known what they were doing but this change in
the structure regarding BLOBs from v4.28 onward is what caused the
issue.

--
Jan Ferguson [Team Elevate]


Petrus van Breda wrote:

> I upgraded an application from version 4.27 to 4.30 and all worked
> fine. The client had a DBSys Version 4.27 and run it on the data to
> rebuild indexes and now some blob fields seems to be corrupted. He
> then run 4.30 again.
>
> A few questions are:
>
> Is there a way to fix this?
> If not how can I pick up which fields is corrupted?
>
>
> Thanks
Tue, Nov 30 2010 7:05 AMPermanent Link

Petrus van Breda

Hi Jan

Thank you for the reply. Is there a way I can interigate the data and see which blobs is corrupted. I have a backup from which I might be able to restore, but need to find the ones that is corrupted. I would like any suggestions in doing this.

Thanks

Petrus

"J. B. Ferguson" wrote:

Petrus,

DBISAM 4.28 introduced a new design for the BLOB reading/writing that
is not compatible with 4.27 or earlier.  Therefore, it is extremely
important that you or your clients do not mix any DBISAM 4.28 or higher
client applications (including DBSys) with DBISAM 4.27 or earlier
client applications (including DBSys).

Mixing the two versions can cause improper truncation of BLOB data, and
that includes using a 4.27 client application on any data that has been
updated by DBISAM 4.28 or higher. The issue is that 4.27 and earlier
versions recylcle BLOB blocks on a per-block basis, whereas 4.28 and
higher versions recycle BLOB blocks on a per-row basis.

This is why I never give the client DBSys because they can reek havoc
on your databases with it if they don't know what they are doing. In
your case, they may have known what they were doing but this change in
the structure regarding BLOBs from v4.28 onward is what caused the
issue.

--
Jan Ferguson [Team Elevate]


Petrus van Breda wrote:

> I upgraded an application from version 4.27 to 4.30 and all worked
> fine. The client had a DBSys Version 4.27 and run it on the data to
> rebuild indexes and now some blob fields seems to be corrupted. He
> then run 4.30 again.
>
> A few questions are:
>
> Is there a way to fix this?
> If not how can I pick up which fields is corrupted?
>
>
> Thanks
Tue, Nov 30 2010 9:33 PMPermanent Link

Jan Ferguson

Data Software Solutions, Inc.

Team Elevate Team Elevate

Petrus,

There is no way that *I* am aware of. Tim has ways he can diagnose and
look into data that we mere mortals don't have. Unfortunately, I have
no suggestions on how you can find any corrupted BLOB records. If you
do have a backup I would try to restore that and then upgrade all the
data to at least v4.28 (I always recommend the most recent version
however) and not worry about it any more.

--
Jan


Petrus van Breda wrote:

> Hi Jan
>
> Thank you for the reply. Is there a way I can interigate the data and
> see which blobs is corrupted. I have a backup from which I might be
> able to restore, but need to find the ones that is corrupted. I would
> like any suggestions in doing this.
>
> Thanks
>
> Petrus
Wed, Dec 1 2010 1:06 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Petrus,

<< Thank you for the reply. Is there a way I can interigate the data and see
which blobs is corrupted. I have a backup from which I might be able to
restore, but need to find the ones that is corrupted. I would like any
suggestions in doing this. >>

You can try running a repair on the table using 4.30, but it may not be able
to recover BLOBs that are already corrupted.  Running a repair on a table
using a version prior to 4.28 is one of the worst things you could do to a
4.28+ modified table.

--
Tim Young
Elevate Software
www.elevatesoft.com
Image