Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validate database without exclusive access [CORE2456] #2870

Closed
firebird-automations opened this issue May 8, 2009 · 8 comments
Closed

Validate database without exclusive access [CORE2456] #2870

firebird-automations opened this issue May 8, 2009 · 8 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: navneet (navneet)

Is replaced by CORE4707

I would like to be able to validate a database and check for corruption in the database in a live enviornment.
At the moment GFIX needs an exclusive access to the database which is offen difficult in a live enviornment

====== Test Details ======

See tests for: CORE4707, CORE4855, CORE4904

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

Would you accept the validation reporting you "OK" whilst in fact the database has just been corrupted by a concurrent activity?

@firebird-automations
Copy link
Collaborator Author

Commented by: Ann Harrison (awharrison)

The problem is not just that a concurrent activity could corrupt the database while
gfix report that everything is OK. Gfix reads internal structures that are related to
each other. For example, it reads Page Inventory Pages and determines that
each page that is marked in use is actually used by a table, index, or whatever.
If a page is released between the time Gfix reads the Page Inventory Page and
the time it validates the page, it will report an incorrect error. In a slightly more
complex case, a page may be used in an index, released, then reused in a table.
If Gfix tries to validate the database while that activity is in progress, it will report
a missing index page, an orphan page, and an unexpected data page - all from
a perfectly legal database.

You might ask if gfix could lock only the table or index it's working on, but pages
move between tables and indexes, so that's not practical either.

@firebird-automations
Copy link
Collaborator Author

Commented by: navneet (navneet)

Dmitry

if there was an option where it would allow validate to run without exclusive access and it did not catch any corruption that occur due to a concurrent activity it would be alright. Atleast it will give an option to validate without actually stopping a live system and that way the validation could be run more often and any potential problem will come to light before causing major corruption.

I do not know the technical problem but from a user point of view it will be very useful in critical application even if it would catch 99% of the errors. How about something like NBackup where it create a diff file for changes and then validate only the main file and then merge them.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Link: This issue is replaced by CORE4707 [ CORE4707 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

Superseded by CORE4707.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Duplicate [ 3 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: Done successfully

Test Details: See tests for: CORE4707, CORE4855, CORE4904

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant