I know I've
personally been the one on a few occasions to recommend reverting to a backup
... now I'd like to ask for a recommendation from FileMaker gurus who may know
how to dig into .fp5 files at the binary data level.
When I make backups,
I always unzip the new backup on an isolated machine and run a "set to
single-user" followed by a "set to multi-user" just to make sure all the
files open. Unfortunately, that didn't catch the problem I located today
in contact_.102.
We had accidentally
created duplicate contact records for a particular mailing. I obtained the
found set of all contact records with the source code in question, and exported
that to 'flag' the duplicates semi-automatically in Excel, with the intention of
creating a new data set consisting only of one field (contact number) and
records for the 2nd (duplicate) copies of the contact records. >From there
it's not too hard to hook that data up to ebase and get a found set of the
contact records that need deletion.
I never quite got as
far as finishing that process, though. Logged in as the master-level user,
I'd added a new number field to contact_.102 and attempted to populate the field
with an arbitrary value (which would contrast with the value given the duplicate
records as part of that whole fix-it process). FileMaker was unable to
replace for all records, however, indicating that "2 record(s) could not be
modified because they were in use by other users or your password does not
enable you to change them."
This shouldn't have
been the case, though, since I'd shut down FileMaker Server and was working on a
copy of our ebase on my own machine.
Next, in an attempt
to locate those records, I did an 'omit' find with the arbitrary value I'd used
to populate the new field -- that is, I tried to find the two records that
FileMaker could not update with the arbitrary value. At that point,
FileMaker said that "This file is damaged. Click Continue to continue
using this file, or click Exit to exit FileMaker. Consult the FileMaker
manual for information on Recovery."
I've tracked the
corruption down to somewhere in the February to March range (haven't tested down
to the specific archived backup in which the corruption first appears yet),
which is long enough ago that it'd be really great to find some other solution
than reverting to a backup, even if it takes serious time and/or technical
know-how.
Working exclusively
on copies and leaving FileMaker Server off, I clicked "Continue" to continue
using the file and was able to locate the 2 problem records (they're empty --
whether they always were or became that way as a result of clicking "Continue" ,
I don't know).
Several questions
that I'd be grateful for feedback on:
1. Any chance
this file can be surgically corrected, assuming the problem is in fact only with
two records? I'm not talking about resurrecting the data in those two
records, which is easy enough to locate, but rather correcting any corruption in
the file. Does anyone out there do this type of surgery? Could this
have just been a case of two records that had flags set as being locked/in use
-- and could the flag simply be reset on those two records?
(if there's a bit
set in each record for whether it's locked or not, and I've got two corrupt
records, does that make this a two-bit problem requiring a two-bit
solution? Ha!)
2. Similarly,
does FileMaker provide any data integrity tools that could be used to reliably
check on files and/or correct problems that crop up? Seems like this is a
relatively common occurrence on the list, and if FileMaker's not too robust,
perhaps there'd be utilities out there to help.
3. Failing
that, it's pretty clear to me that doing a "set to single-user" and then
re-setting to multi-user, to open all the ebase files, is an insufficient
procedure to ensure data integrity. It strikes me that one could add an
extra field to all files, and create a script that repeats the steps I took to
find my corruption (replacing a field with an arbitrary value in all records for
each file, and then doing an "omit" find using that arbitrary value). Does
anyone have any experience implementing something like this?
4. Any other
suggestions? One thought that occurred to me is attempting to delete all
records that existed prior to the time of corruption from my most recent archive
of ebase, and then reimport this data into the last uncorrupted
version.
Any
thoughts/feedback would be greatly appreciated.
Thanks,
Eric
Johnson
Colorado
Environmental Coalition
------------------
Reminder to each recipient: To change your list account preferences, go to
http://email.sparklist.com/scripts/lyris.pl?enter=support and enter the email address you used to subscribe to the ebase support list:: [email protected]
To unsubscribe send a blank email to [EMAIL PROTECTED]
---------------------------------------------------------------------
ebase - Relationship Management for Nonprofits, http://www.ebase.org
---------------------------------------------------------------------
