Allows you to set pages, storage areas, and snapshot files as either corrupt or consistent in the corrupt page table (CPT). A corrupt page is one that contains meaningless data; an inconsistent page is one that contains old data (data that is not at the same transaction level as the database root file). Corrupt pages are logged to the CPT, which is maintained in the database root file. When the CPT becomes full (due to a large number of pages being logged), the area containing the most corrupt pages is marked as corrupt and the individual corrupt pages for that area are removed from the corrupt page table. The Oracle RMU Set Corrupt_Pages operation is an offline operation. If you reset a page or storage area in the CPT to consistent it does not remove any true corruption or inconsistencies. However, if you reset a snapshot file in the CPT to consistent, Oracle RMU initializes the snapshot file and thus removes any true corruption or inconsistency. CAUTION Use the RMU Set Corrupt_Pages command only after you fully understand the internal data structure and know the information the database should contain. Setting a page in a storage area that is truly corrupt or inconsistent to consistent does not remove the corruption or inconsistency. Setting truly corrupt or inconsistent pages in a storage area to consistent and continuing to access those pages can result in unrecoverable corruptions to the database. The RMU Restore and RMU Recover commands should be used first and should be part of your normal operating procedure. NOTE This command replaces two RdbALTER statements: MAKE CONSISTENT and UNCORRUPT. Both the RdbAlter statements, MAKE CONSISTENT and UNCORRUPT, are deprecated commands that may be removed in future versions. When a storage area is restored from backup files on a by-area basis, it does not reflect data that has been updated since the backup operation. The transaction level of the restored area reflects the transaction level of the backup file, not the transaction level of the database. Therefore, the transaction level of the restored area differs from that of the database. Oracle Rdb marks the area by setting a flag in the storage area file to inconsistent. You can perform a recovery by area to upgrade the transaction level of the restored area to that of the database. (After- image journaling must be enabled in order to restore by area.) If you are certain that no updates have been made to the database since the backup operation, you can use the RMU Set Corrupt_Pages command to change the setting of the flag from inconsistent to consistent. In addition, storage areas are corrupted by attempting an SQL rollback with one or more storage areas opened in batch-update transaction mode. The RMU Set Corrupt_Pages command allows you to access a database that is in an uncertain condition. Accordingly, the following message and question are displayed when you enter it to correct a corrupt or inconsistent storage area or storage area page. (This message is not displayed if you enter it to correct a corrupt or inconsistent snapshot file.) ***** WARNING! ***** Marking a storage area or page consistent does not remove the inconsistencies. Remove any inconsistencies or corruptions before you proceed with this action. Do you wish to continue? [N]
1 – Description
The RMU Set Corrupt_Pages command allows you to override the required RMU Recover command after a by-area restore operation. Although Oracle RMU cannot determine when the recover operation is superfluous, you might have that knowledge. If you are certain of this knowledge, you can abridge the requirement for the recover operation by using the RMU Set Corrupt_Pages command to set corrupt pages to consistent. Similarly, sometimes you might know of a problem that Oracle RMU does not recognize. For example, you might find that a page contains an index node that causes a bugcheck dump each time it is accessed. You can use the RMU Set Corrupt_Pages command to mark this page as corrupt and then follow your usual procedure for recovering from database corruption. Note that the RMU Set Corrupt_Pages command with the Consistent qualifier does not make truly corrupt storage area pages usable. Corrupt storage area pages detected during normal operation are logged in the CPT, and likely have an invalid checksum value. The RMU Set Corrupt_Pages command with the Consistent qualifier removes the specified pages from the CPT, but the next time a user tries to touch that storage area page, it is logged in the CPT again because it is still physically corrupt. To correct a storage area page that is truly corrupt, you must restore it from a backup file. The RMU Set Corrupt_Pages command with the Consistent qualifier does make truly corrupt or inconsistent pages in a snapshot file usable. When you use this command and specify a snapshot file with the areas qualifier, Oracle RMU initializes the specified snapshot file.
2 – Format
(B)0[mRMU/Set Corrupt_Pages root-file-spec [4mCommand[m [4mQualifiers[m x [4mDefaults[m x /Area=identity x None /Consistent x None /Corrupt x None /Disk=device x None /Page=(n,...) x None
3 – Parameters
3.1 – root-file-spec
The file specification of the database root file for which you want to set pages or areas to corrupt or consistent.
4 – Command Qualifiers
4.1 – Area
Area=identity Specifies a particular storage area file or snapshot file. The identity for a storage area can be either the area name (for example, EMPIDS_OVER), or a storage area ID number (for example, 5). The identity for a snapshot file must be the snapshot file ID number. Use the RMU Dump command with the Header qualifier to display the ID numbers associated with a storage area file or a snapshot file. When you use the Area qualifier with the Page=(n,...) qualifier, the command specifies the named pages in the named storage area or snapshot file. When you specify the Area qualifier without the Page qualifier, the command specifies all pages of the specified storage area or snapshot file. The Area qualifier cannot be used with the Disk qualifier.
4.2 – Consistent
Consistent Specifies that the pages, areas, or snapshot files specified with the Page, Area, or Disk qualifier are to be considered consistent with the remainder of the database. If you make a storage area or page in a storage area consistent while it is marked in the database as not corrupt, but inconsistent, you receive a warning and are required to confirm your request to carry out this operation before the operation will complete. You cannot use the Consistent qualifier with the Corrupt qualifier.
4.3 – Corrupt
Corrupt Specifies that the pages, areas, or snapshot files specified with the Page, Area, or Disk qualifier are to be considered corrupt. You cannot use the Corrupt qualifier with the Consistent qualifier.
4.4 – Disk
Disk=device Specifies all the pages, all the storage areas, and all the snapshot files on the named device be set as you indicate with the Corrupt or the Consistent qualifier. You cannot use the Disk qualifier with the Page or the Area qualifier.
4.5 – Page
Page=(n,...) Specifies the listed page numbers. You must specify the Area qualifier when you use the Page qualifier. You cannot use the Page qualifier with the Disk qualifier.
5 – Usage Notes
o You must have the RMU$ALTER, RMU$BACKUP, or RMU$RESTORE privilege in the root file access control list (ACL) for a database or the OpenVMS SYSPRV or BYPASS privilege to use the RMU Set Corrupt_Pages command for the database. o You can issue the RMU Set Corrupt_Pages command while users are attached to the database. o You must specify either the Corrupt or the Consistent qualifier (but not both) when you use the RMU Set Corrupt_ Pages command. o When you use the RMU Set Corrupt_Pages command to mark a page as corrupt or consistent, the database is marked as having been altered.
6 – Examples
Example 1 The following command sets storage area EMPIDS_MID in the mf_ personnel database as corrupt: $ RMU/SET CORRUPT_PAGES/AREA=EMPIDS_MID/CORRUPT MF_PERSONNEL %RMU-I-AREAMARKED, Area 4 was marked corrupt. Example 2 The following command marks EMPIDS_MID as consistent. This is the area that was marked as corrupt in Example 1. However, in this case, instead of using the storage area name in the Oracle RMU command, the storage area identifier is used. $ RMU/SET CORRUPT_PAGES/AREA=4/CONSISTENT MF_PERSONNEL ***** WARNING! ***** Marking a storage area or page consistent does not remove the inconsistencies. Remove any inconsistencies or corruptions before you proceed with this action. Do you wish to continue? [N] Y %RMU-I-AREAMARKED, Area 4 was marked consistent . Example 3 The following command marks page 1 in area 3 in the mf_personnel database as corrupt. Using the RMU Show Corrupt_Pages command confirms that the page has been marked as expected. $ RMU/SET CORRUPT_PAGES/AREA=3/PAGE=1/CORRUPT MF_PERSONNEL %RMU-I-PAGEMARKED, Page 1 in area 3 was marked corrupt. $ RMU/SHOW CORRUPT_PAGES MF_PERSONNEL.RDB *-------------------------------------------------------------------- * Oracle Rdb V7.0-00 3-JUL-1996 17:01:20.62 * * Dump of Corrupt Page Table * Database: USER1:[DB]MF_PERSONNEL.RDB;1 * *-------------------------------------------------------------------- Entries for storage area EMPIDS_LOW ----------------------------------- Page 1 - AIJ recovery sequence number is -1 - Live area ID number is 3 - Consistency transaction sequence number is 0:0 - State of page is: corrupt *-------------------------------------------------------------------- * Oracle Rdb V7.0-00 3-JUL-1996 17:01:20.82 * * Dump of Storage Area State Information * Database: USER1:[DB]MF_PERSONNEL.RDB;1 * *-------------------------------------------------------------------- All storage areas are consistent. Example 4 The following example sets page 4 of the snapshot file for EMPIDS_OVER to consistent. Because Oracle RMU initializes snapshot files specified with the Set Corrupt_Pages command, the snapshot file is removed from the corrupt page table and is now usable. $ RMU/SET CORRUPT_PAGES MF_PERSONNEL.RDB/AREA=14/PAGE=3/CONSISTENT %RMU-I-PAGEMARKED, Page 3 in area 14 was marked consistent.