Loading ...
Sorry, an error occurred while loading the content.
 

Database Corrupted Due to Zero Disk Space

Expand Messages
  • Christian Gütter
    Hi everyone, I have got a problem with a corrupted Firebird 1.5 database which is about 2 GB in size. The database server ran out of disk space and due to
    Message 1 of 11 , Apr 1, 2009
      Hi everyone,

      I have got a problem with a corrupted Firebird 1.5 database
      which is about 2 GB in size.
      The database server ran out of disk space and due to that,
      the database became corrupted.

      The error in the server log file was the following:
      DB (Server) Thu Mar 26 11:11:03 2009
      Database: D:\DATABASES\DB.FDB
      I/O error for file "D:\DATABASES\DB.FDB"
      Error while trying to read from file
      Reached the end of the file.


      internal gds software consistency check (error during savepoint backout (290))


      When I tried to validate or mend the database, I got the following errors first:

      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279368 (sequence 74339) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279369 (sequence 74340) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279372 (sequence 74341) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279373 (sequence 74342) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279374 (sequence 74343) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279377 (sequence 74344) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279378 (sequence 74345) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279379 (sequence 74346) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279382 (sequence 74347) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279383 (sequence 74348) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:23 2009
      Database: D:\DATABASES\DB.FDB
      Data page 279385 (sequence 74349) is confused in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:46 2009
      Database: D:\DATABASES\DB.FDB
      Index 1 is corrupt on page 133462 in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:46 2009
      Database: D:\DATABASES\DB.FDB
      Index 1 is corrupt on page 133462 in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:46 2009
      Database: D:\DATABASES\DB.FDB
      Index 1 is corrupt on page 133462 in table T$_LOG_COLUMNS (135)


      DB (Server) Thu Mar 26 12:04:48 2009
      Database: D:\DATABASES\DB.FDB
      Index 1 is corrupt on page 279381 in table T$_LOG_COLUMNS (135)


      After that, the following error is repeated endlessly with different
      page numbers:

      DB (Server) Thu Mar 26 12:04:48 2009
      Database: D:\DATABASES\DB.FDB
      Page 256759 doubly allocated

      After six hours, I stopped GFix, after the server log file had grown
      to more than 7 GB.

      Has anyone of you made some experience with this problem? Would it
      make sense to let GFix run longer, or is it caught up in an endless
      loop (on the IBSurgeon site, I read that the GFix process never
      finishes in this case).

      Any information would be very appreciated.


      Regards,
      Christian
    • Christian Gütter
      Hi everyone, I have got a problem with a corrupted Firebird 1.5 database which is about 2 GB in size. The database server ran out of disk space and due to
      Message 2 of 11 , Apr 1, 2009
        Hi everyone,

        I have got a problem with a corrupted Firebird 1.5 database
        which is about 2 GB in size.
        The database server ran out of disk space and due to that,
        the database became corrupted.

        The error in the server log file was the following:
        DB (Server) Thu Mar 26 11:11:03 2009
        Database: D:\DATABASES\DB.FDB
        I/O error for file "D:\DATABASES\DB.FDB"
        Error while trying to read from file
        Reached the end of the file.


        internal gds software consistency check (error during savepoint backout (290))


        When I tried to validate or mend the database, I got the following errors first:

        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279368 (sequence 74339) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279369 (sequence 74340) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279372 (sequence 74341) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279373 (sequence 74342) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279374 (sequence 74343) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279377 (sequence 74344) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279378 (sequence 74345) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279379 (sequence 74346) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279382 (sequence 74347) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279383 (sequence 74348) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:23 2009
        Database: D:\DATABASES\DB.FDB
        Data page 279385 (sequence 74349) is confused in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:46 2009
        Database: D:\DATABASES\DB.FDB
        Index 1 is corrupt on page 133462 in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:46 2009
        Database: D:\DATABASES\DB.FDB
        Index 1 is corrupt on page 133462 in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:46 2009
        Database: D:\DATABASES\DB.FDB
        Index 1 is corrupt on page 133462 in table T$_LOG_COLUMNS (135)


        DB (Server) Thu Mar 26 12:04:48 2009
        Database: D:\DATABASES\DB.FDB
        Index 1 is corrupt on page 279381 in table T$_LOG_COLUMNS (135)


        After that, the following error is repeated endlessly with different
        page numbers:

        DB (Server) Thu Mar 26 12:04:48 2009
        Database: D:\DATABASES\DB.FDB
        Page 256759 doubly allocated

        After six hours, I stopped GFix, after the server log file had grown
        to more than 7 GB.

        Has anyone of you made some experience with this problem? Would it
        make sense to let GFix run longer, or is it caught up in an endless
        loop (on the IBSurgeon site, I read that the GFix process never
        finishes in this case).

        Any information would be very appreciated.


        Regards,
        Christian
      • Dimitry Sibiryakov
        ... Gfix is unable to fix databases corrupted this way. Either restore database from backup or call database repair service. SY, SD.
        Message 3 of 11 , Apr 1, 2009
          > Has anyone of you made some experience with this problem? Would it
          > make sense to let GFix run longer, or is it caught up in an endless
          > loop (on the IBSurgeon site, I read that the GFix process never
          > finishes in this case).

          Gfix is unable to fix databases corrupted this way. Either restore
          database from backup or call database repair service.

          SY, SD.
        • Christian Gütter
          Hi Dimitry, ... would it be possible to repair the database with 3rd party tools like IB FirstAID? Regards, Christian
          Message 4 of 11 , Apr 1, 2009
            Hi Dimitry,

            > Gfix is unable to fix databases corrupted this way. Either restore
            > database from backup or call database repair service.

            would it be possible to repair the database with 3rd party tools like
            IB FirstAID?


            Regards,
            Christian
          • Maya Opperman
            ... Space ... Ouch! Is there any easy way of querying the Firebird Server for free disk space on the server when logging on from a client PC? That way we can
            Message 5 of 11 , Apr 1, 2009
              >>Subject: Re: [firebird-support] Database Corrupted Due to Zero Disk
              Space
              > Gfix is unable to fix databases corrupted this way. Either restore
              >database from backup or call database repair service.
              > SY, SD.

              Ouch! Is there any easy way of querying the Firebird Server for free
              disk space on the server when logging on from a client PC? That way we
              can alert the user they are running out of space when they log on, or
              are about to do a restore etc.

              Maya
            • Helen Borrie
              ... Sorry, but this must be something you provide for. The database engine has no way of knowing how much disk space there is, nor how much is needed, nor
              Message 6 of 11 , Apr 1, 2009
                At 04:04 PM 2/04/2009, you wrote:
                >>>Subject: Re: [firebird-support] Database Corrupted Due to Zero Disk
                >Space
                >> Gfix is unable to fix databases corrupted this way. Either restore
                >>database from backup or call database repair service.
                >> SY, SD.
                >
                >Ouch! Is there any easy way of querying the Firebird Server for free
                >disk space on the server when logging on from a client PC? That way we
                >can alert the user they are running out of space when they log on, or
                >are about to do a restore etc.

                Sorry, but this must be something you provide for. The database engine has no way of knowing how much disk space there is, nor how much is needed, nor whether the host is allocating space to other applications. It is a hardware management issue for the administrator of *any* server host to ensure that there's enough diskspace available for applications s/he is running there.

                Of course, you *wouldn't* be letting them write backups onto the *same* hard disk that you're using for the database, would you now?

                From the DB engine's POV, it has to ask the OS for blocks of disk space. Pre v.2.1, it asks for one "page" worth - how much this might be depends on the page size of that particular *database*. From v.2.1.1 onward, it asks for a larger number of pages' worth (which you can configure).

                A freshly-restored database uses the least possible disk space, because the restore has no freed-up space to concern itself with: it just lays in pages as required and all data is just one record version per record. So, of course, estimating needs on the basis of the size of a newly (or recently) restored database is - well - gormless. You have to make disk available for the largest possible size that the file will grow to, taking in garbage as well as data growth.

                And - well - if you have your database mounted on the same hard disk partition that the whole organisation is using for internet caches, M$ exchange, M$ shadows, swap files and what-all else is munching up server storage, you're walking the high wire, anyway. A nice big dedicated disk (or a RAID pair) is exponentially cheaper than the cost of recovering from corruptions.

                ./heLen
              • Vlad Khorsun
                ... This issue is gone if you use FB 2.1 and ODS 11.1 Regards, Vlad
                Message 7 of 11 , Apr 2, 2009
                  > Ouch! Is there any easy way of querying the Firebird Server for free
                  > disk space on the server when logging on from a client PC? That way we
                  > can alert the user they are running out of space when they log on, or
                  > are about to do a restore etc.

                  This issue is gone if you use FB 2.1 and ODS 11.1

                  Regards,
                  Vlad
                • Dimitry Sibiryakov
                  ... I m not sure, but probably - no. I heard from Dmitry Kouzmenko that repair of such databases is a handwork. SY, SD.
                  Message 8 of 11 , Apr 2, 2009
                    >> Gfix is unable to fix databases corrupted this way. Either restore
                    >> database from backup or call database repair service.
                    >
                    > would it be possible to repair the database with 3rd party tools like
                    > IB FirstAID?

                    I'm not sure, but probably - no. I heard from Dmitry Kouzmenko that
                    repair of such databases is a handwork.

                    SY, SD.
                  • Dimitry Sibiryakov
                    ... FBDataGuard can do it for you. SY, SD.
                    Message 9 of 11 , Apr 2, 2009
                      > Ouch! Is there any easy way of querying the Firebird Server for free
                      > disk space on the server when logging on from a client PC? That way we
                      > can alert the user they are running out of space when they log on, or
                      > are about to do a restore etc.

                      FBDataGuard can do it for you.

                      SY, SD.
                    • Milan Babuskov
                      ... Well, you could write an UDF for it. So, it depends if that means easy for you. HTH -- Milan Babuskov http://www.flamerobin.org http://www.guacosoft.com
                      Message 10 of 11 , Apr 2, 2009
                        Maya Opperman wrote:
                        > Ouch! Is there any easy way of querying the Firebird Server for free
                        > disk space on the server when logging on from a client PC?

                        Well, you could write an UDF for it. So, it depends if that means "easy"
                        for you.

                        HTH

                        --
                        Milan Babuskov
                        http://www.flamerobin.org
                        http://www.guacosoft.com
                      • plinehan
                        In firebird-support@yahoogroups.com, ... There are any number of free tools out there that let you monitor your system. Take a look here for a discussion and
                        Message 11 of 11 , Apr 3, 2009
                          In firebird-support@yahoogroups.com,
                          "Maya Opperman" <maya@...> wrote:



                          > Ouch! Is there any easy way of querying the Firebird Server
                          > for free disk space on the server when logging on from a
                          > client PC? That way we can alert the user they are running
                          > out of space when they log on, or are about to do a restore
                          > etc.


                          There are any number of free tools out there that let you monitor
                          your system. Take a look here for a discussion and pointers to
                          different ones (link folded).

                          http://kylecordes.com/2008/10/19/
                          network-system-monitoring-smorgasbord/


                          If you're running a db that could potentially run out
                          of disk space, you should be running something like this.

                          I have to say though, that it's pretty poor that the database
                          becomes corrupt if the system runs out of space - it should
                          just "burp" and tell the user that it cannot commit any
                          more transactions. 2.1 appears to be fix though?


                          Paul...


                          > Maya
                        Your message has been successfully submitted and would be delivered to recipients shortly.