Kbase 14115: The Perils of Using the Force ( -F ) Option to Start the db
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  09/05/2003 |
|
Solution ID: 14115
GOAL:
How to remove Error 6260 and Error 6261 after accessing the DB with the Force option (-F)
GOAL:
The -F option has been specified to proutil. (6260)
GOAL:
Forcing into the database skips database recovery. (6261)
CAUSE:
Access to the DataBase using the force option (-F) when errors prevent a start up and crash recovery (after a system failure).
FIX:
An inability to access the database due to errors usually indicates before-image (BI) file corruption. Historically, Progress Technical Support has seen use the force option (-F) to gain access to a database without a full understanding of the repercussions. If you are ever in the situation where you are unable to gain access to your database without using the -F startup option, you should go to a backup if you want to guarantee database integrity and stability.
Some background information:
Always think of your Progress database as the sum of your .db file(s) (.db, .d1, .d2, etc. for a multi-volume db) and your BI
file(s) (.b1, .b2, etc. in the case of multi-volume before-image files).
DATABASE = .db + .bi
The -F option brings up the message that your database has been damaged and you must dump and reload. Regardless of what you might have been told, this is true whether the database is shutdown gracefully prior to you giving the -F option or not.
Use of the -F option has been known to cause various problems with databases. For example, sometimes the -F option can damage the record management (RM) chain that keeps track of partially filled record blocks.
Progress applications that create, update and/or delete records all make use of the BI file. The BI keeps track of all incomplete
transactions. It is done for two reasons:
- If you break out of a transaction block with an END-ERROR key function the incomplete transactions are backed out and not committed to the database.
- If a system failure or server crash occurs during the middle of processing transactions, the BI file is again used to back-out incomplete transactions for all users while Progress performs crash recovery.
Use of -F option throws away the BI file. There is a misunderstanding that the BI file is being truncated. This is not the case. After the -F option is given to force your way into the database, a new, empty BI file is created. Now the incomplete transactions cannot be backed out during crash recovery because this information is gone.
This information should make you aware of the perils of a forced entry into a database.
Why does Progress have this Option? Because not all users are as prudent as they should be about backing up their system (or to discover that all their backups are bad). The force option provides a last ditch opportunity to retrieve a portion of the database.
After the dump and load, the database stability and integrity are restored. Any lost work must be re-entered, however.
If you reach the point where the force option is the only way to get back into the database, follow these steps in Progress Versions prior to 8.2:
1) Go to a backup.
2) Investigate after-imaging to see if it is something you need to be using (roll-forward capability). Refer to your System
Administration manuals about this topic.
3) Only use the -F option (and subsequent Dump/Load) if you have no other alternative.
NOTE: pro -F and proserve -F should not be confused with proshut -F. proshut -F can be used safely to bring down the
database when proshut - but fails to do so.
NOTE: If you using Progress Version 8.2 or higher, you must use the following syntax to force into your database:
proutil demo -C truncate bi -F.
When this is done, the following messages and prompt are displayed:
The -F option has been specified to proutil. (6260)
Forcing into the database skips database recovery.(6261)
At this point you should be able to connect to the database in single-user mode. You must now dump and load your database and rebuild your indexes.