5 Replies Latest reply on Dec 8, 2011 5:54 AM by electric_soul

    Advanced Recovery "copy file blocks as is" save?

    electric_soul

      Title

      Advanced Recovery "copy file blocks as is" save?

      Post

       

      Hello

       

      Referencing a post by "PhilModJunk"

      http://forums.filemaker.com/posts/20ff7e0d0e

       

      Am I to understand, that if I have a corrupt file, and use the method "copy file blocks as is" in combination with the other options, that I can use the recovered database to replace my corrupt database with? Given the recovered database doesn't throw any errors when recovering it.

       

      With my file it works out like this. 

      When I recover my corrupted file(original) I get the follwowing log entries, and the file is reported as being corrupt

      Recovering: table '' (159)
        Created table 'Recovered'
      Recovering: table '' (184)
        Created table 'Recovered 2'

          Adjusted item count of library  (0) by -1
          Adjusted item count of library  (0) by -14
          Adjusted item count of library  (0) by -1
          Adjusted item count of library  (0) by -21
          Adjusted item count of library  (0) by -2
          Adjusted item count of library  (0) by -3
          Adjusted item count of library  (0) by -1
          Adjusted item count of library  (0) by -2
          Adjusted item count of library  (0) by -10
        Found 1 stranded library object(s)
      Recovered 1 stranded library object(s) for a total of 1373 byte(s)

      Schema: scanned fields and tables; some problems were found...

      To me those errors do not seem like a big deal.

       

      Now, If I recover the recovered file. Then filemake has some interesting entries in the log too, but reports the file as "save"(save as it can be for a recovery)

       

      Recovering fields for table 'Recovered Library'
      Recovering: field catalog
        Rebuilding field catalog order list: name
        Rebuilding field catalog order list: custom
        Rebuilding field catalog order list: type
        Recovering data for table 'Recovered Library'
      Recovering: library catalog
        Rebuilding library catalog order list: quick reference
        Recovering: library '' (1)
        Evaluating library (344)
        Recovering: field 'Recovered Blob' (1)
        Recovering: field 'From Table' (2)
      A new database was created without detecting any problems.  However, .... instead of using the recovered file going forward.

       

      So......   can I replace my original file with the recovery of the oiriginal file and call it "save". because redesigning the DB from scratch is not option.

       

      Greetings

      Robert

        • 1. Re: Advanced Recovery "copy file blocks as is" save?
          philmodjunk

          Created table 'Recovered 2'

          Would indicate that a significant change to the structure of your corrupted file was made in order to recover all possible data. I would not recommend putting any such file back into use.

          The only time I re-use a recovered file is when I select both of these two options in Advanced Recovery:

          Copy file blocks as is

          Rebuild Field Indexes

          I could be wrong, but it is my understanding that when selecting just those two options, the only changes made to the file are:

          All field indexes are rebuilt

          The "recover flag" is set marking this file as a recovered file.

          The fact that recovering a file and then performing a recover on the file produced by the first recoer now recovers cleanly does not indicate that your file is now safe to use. It won't change the fact that the first recover may have made changes to the structure of your file, even deleting elements in order to recover as much of the file's data as possible.

          • 2. Re: Advanced Recovery "copy file blocks as is" save?
            electric_soul

            Hello

             

            The time we would need to do everything from scratch is just no option. There is no backup without errors. Knowing this, what would your best strategy be to get a clean file? I do not care what it is. Even if it is an external service you know about.

             

            Just one more thing. In our file there are a lot of, well let's say, signs of bad habits. Bad realtionships, layouts without tables, broken scripts, missig/unknown references. I personnaly do not understand why filemaker has a problem with that when recovering. I mean, if a programmer chooses to leave a mess, ok........  why not. But why are those "bugs" making a DB corrupt?I'd call those "bugs" rather "design bugs" but not a serious corruption.

             

            The problem with a corrupt DB is, that people might get really scared and do silly things, just because a broken relationship cause a corruption message!

             

            Well.. :)

            Thanks for your answer.

            • 3. Re: Advanced Recovery "copy file blocks as is" save?
              electric_soul

              About the structural changes.

               

              I mean if not blocks are being dropped, what else could have happend. FM recovered a table, but did filemaker made any heavy changes inside the file that could cause problems. Is this function"Scan record data and rebuild fields and tables"  even able to make such deep changes?

               

              I have problems finding any in deep information about that issue.

               

               

              thanks

              • 4. Re: Advanced Recovery "copy file blocks as is" save?
                philmodjunk

                In our file there are a lot of, well let's say, signs of bad habits. Bad realtionships, layouts without tables, broken scripts, missig/unknown references. I personnaly do not understand why filemaker has a problem with that when recovering. I mean, if a programmer chooses to leave a mess, ok........  why not. But why are those "bugs" making a DB corrupt?

                I would not expect such things to corrupt the file. More likely a different event has corrupted your file. (And it can be extremely difficult to impossible to figure out what caused the original damage to your file.)

                The folks that offer FMdiff offer a file repair service, if I recall correctly. You might google them and see what they offer.

                I've been able to use this method to rebuild a damaged file, but it's a lot of work and risks including file damage in the rebuilt file:

                Make clone copies of your database and selectively delete different portions of the database structure (tables, layouts, scripts, etc.) from the cloned copies. Sometimes the recover log can give you a clue as to what portion is most likely to harbor the damage.

                Check these copies by performing a recover on them. (If you had data in them, this takes a lot longer than clones with no records.) Keep this up until you get a clone that recovers cleanly. (we are gambling that recover is correct when it reports that no problems were found.) Then, one section at a time, copy or import the deleted portions back into a copy (always make copies, lot's of copies when doing this...) and do another recover to see if it still recovers cleanly.

                After a few cycles of this, you can get a cloned copy of your database that is missing only a (hopefully) small portion of your database and that recovers cleanly. Then, you can go back to the original file, make a new clone and delete only the items still missing from this last copy that recovered cleanly, or you can work from the copy that you just checked. Then, manually rebuild that last portion of the database and import all your data into this new clone of the database.

                It has been recommended in a knowledge base article: http://help.filemaker.com/app/answers/detail/a_id/1580/kw/recover%20import

                That you export your data from the damaged file into text files, then import them into the repaired copy. This may fix issues with the data in your database if I understand the reasoning behinde it correctly.

                In addition to recover, you may want to use FMDiff to check your repaired file over for possible latent damage. It may spot an issue that Recover misses.

                • 5. Re: Advanced Recovery "copy file blocks as is" save?
                  electric_soul

                  Hello

                   

                  FMDiff they helped us once. I hoped you have another recommandation.

                   

                  And the method you just described, I tried that too, after I figured out, that removing a simple broken relationship would cause less errors in the recovery log. But even if I delete everything(permission,function, script, menus....etc) I get the message:

                        Recovering: table '' (159)
                  8473      Created table 'Recovered'
                        Recovering: table '' (184)
                  8473      Created table 'Recovered 2'
                  Evaluating library for layouts
                  Found 10 stranded library object(s)
                  Recovered 10 stranded library object(s) for a total of 15567 byte(s)

                   

                  Still it would be helpful if anybody knew, if those actions actually cause problems. I know that dropping blocks causes problems, because bad blocks are being overwritten with zeros. If i am not mistaken. Well....  but that is more guessing then knowing.

                   

                  Looks like I gotta call fmdiff :)

                   

                  Thank you very much