Subject | Re: Re[3]: [firebird-support] Broken databases |
---|---|
Author | Dmitri Markov |
Post date | 2013-11-18T07:18:27Z |
No, I mistak, there are records with message, that sweep is complete, but between messages of start and finish always exist messages, that "Internal Firebird consistency check (record disappeared (186), file: vio.cpp line 408)".
On , Dmitri Markov <markovdmitri@...> wrote:
And I read a very big log from one of the server and found this records(In september this database has broken)
BIGKSAMUSRV Sun Sep 15 12:53:27 2013
Sweep is started by SWEEPER
Database
"C:\DATABASE\MAINBASE.FDB"
OIT 1322776, OAT 2783916, OST 2783916, Next 2956444
BIGKSAMUSRV Sun Sep 15 13:01:51 2013
Sweep is started by SWEEPER
Database "C:\DATABASE\MAINBASE.FDB"
OIT 1322776, OAT 2783916, OST 2783916, Next 2956665
BIGKSAMUSRV Sun Sep 15 13:03:37 2013
Database
"C:\DATABASE\MAINBASE.FDB"
Internal Firebird consistency check (record disappeared (186), file: vio.cpp line 408)
BIGKSAMUSRV Sun Sep 15 13:03:37 2013
Database "C:\DATABASE\MAINBASE.FDB"
Internal Firebird consistency check (record disappeared (186), file: vio.cpp line 408)
after some records I
found the record when was one record
about finishing sweep.
After this sweep always stop with exception "disappeared records(186)"
On Monday, November 18, 2013 10:25 AM, Dmitri Markov <markovdmitri@...>
wrote:
I try restore broken backup, a lot of errors in firebird.log like this. So a lot of trigger Check_X is broken, when I repair DB, I also delete them when repairing structure of DB.
Server (Server) Mon Nov 18 10:10:27 2013
Database: C:\DATABASE\ERRORDB\MAINBASE.FDB
RDB$FLAGS for trigger CHECK_2791 in RDB$TRIGGERS is corrupted (304)
On , Dmitri Markov <markovdmitri@...> wrote:
When I restore DB I see
this error
IBE: Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
action cancelled by trigger (2) to preserve data integrity.
internal Firebird consistency check (invalid
RDB$CONSTRAINT_TYPE).
Before It gbak retoring this "gbak: restoring privilege for user SYSDBA "
I delete all indexes because I can't activating indexes one by one, and I can't delete them, I can't activating FK, I can activating only PK. I should to delete some FK(about 3 or 5 not more) and indexes from system tables manualy, because I can't delete them by sql.
Because some our consumers is old they using Firebird 2.5.1, other use 2.5.2. I can't see any dependence
between achitecture of
firebird and version of firebird.
Later I try to copy log on validating errors.
On Friday, November 15, 2013 10:45 PM, Dmitry Kuzmenko <kdv@...> wrote:
Hello, Dmitri!
PS> When I fix a DB with error I also restore the DB without activating the
PS> Indexes.
WHY? Firebird 2.1 and higher restores all indices it can, and show error on indices that it can't create
(by the PK or FK violation caused by broken records).
So, after restore (without -i) option you just need to check restore
output for errors, then check non-active indices in the DB, and try to
fix data and activate those non-active indices.
--
Dmitry Kuzmenko, www.ib-aid.com
PS> When I fix a DB with error I also restore the DB without activating the
PS> Indexes.
WHY? Firebird 2.1 and higher restores all indices it can, and show error on indices that it can't create
(by the PK or FK violation caused by broken records).
So, after restore (without -i) option you just need to check restore
output for errors, then check non-active indices in the DB, and try to
fix data and activate those non-active indices.
--
Dmitry Kuzmenko, www.ib-aid.com