SQL Anywhere 11.01.2527
We're looking to enable by default CHECKSUM clause on all of our databases as it sounds like a good thing.
However, what exactly will happen if a checksum check fails whilst the database performing its normal operations? Is there an assertion that is thrown by the db server? Does some message get logged to the console? Does some database event get fired? Does the database shutdown?
Now we can get information about invalid pages using a VALIDATE or similar procedure (DCX - Using checksums to detect corruption), but that doesn't explain what happens when it is the database server itself that is reading/writing the pages caused by CRUD type operations.
Database page checksums are verified each time a page is read from disk. If the checksum is invalid then the database (currently) throws assertion 200502, 200505, or 200511 "Checksum failure on page %d". Once the assertion occurs the server must be restarted.
If a checksum failure occurs on a database, you will need to use you recovery procedure to restore your database from a backup and apply the transaction log(s) since that backup.
answered 18 Mar '11, 10:02