Oracle Hardware Assistant Resilient Data (H.A.R.D.) is a system of checks embedded in Oracle data blocks that enable a storage system to validate write operations to an Oracle database. The SnapValidatorTM software implements Oracle H.A.R.D. checks to detect and reject invalid Oracle data before it is written to the storage system.
Note
SnapValidator is not based on Snapshot technology.
SnapValidator implements the following Oracle H.A.R.D validations:
You use SnapValidator if you have existing Oracle database files or LUNs on a storage system or if you want to store a new Oracle database on the storage system.
SnapValidator checks are supported for the following protocols:
You prepare database files or LUNs for SnapValidator checks by using the following guidelines.
For an existing database, you might have to move configuration files and other non-Oracle data to another virtual volume.
Example: db_block_checksum=true
Make sure you set SnapValidator to log all errors to the storage system consoles for all invalid operations by entering the following command:
vol options volume-name svo_reject_errors off
vol options volume-name svo_reject_errors on
After you prepare the database, you implement SnapValidator checks by completing the following tasks on the storage system:
For detailed information, see Licensing SnapValidator.
For detailed information, see Enabling SnapValidator checks on volumes.
For detailed information, see Enabling SnapValidator checks on LUNs.
To license SnapValidator complete the following steps.
| 1 |
Verify whether SnapValidator is licensed by entering the following command: license ResultA list of all available services appears. Services that are enabled show the license code. Services that are not enabled are indicated as "not licensed." For example, the following line indicates that SnapValidator is not licensed. snapvalidator not licensed |
|
| 2 | ||
|
Proceed to Enabling SnapValidator checks on volumes. | ||
|
license_code is the license code you received when you purchased the SnapValidator license. | ||
You enable SnapValidator checks at the volume level. To enable SnapValidator checks on a volume, complete the following steps.
Note
You cannot enable SnapValidator on the root volume.
| 1 |
On the storage system command line, enable SnapValidator by entering the following command: vol options volume-name svo_enable on ResultAll SnapValidator checks are enabled on the volume, with the exception of checksums. |
|
| 2 | ||
vol options volume-name svo_checksum on | ||
|
Disable block number checks because the volume contains Oracle Recovery Manager (RMAN) backup data. |
vol options volume-name svo_allow_rman on | |
|
Set SnapValidator to return an error log to the host and storage system consoles for all invalid operations. You might want to do this when you are testing SnapValidator before you put your database into production. |
vol options volume-name svo_reject_errors off When you set this option to Off, SnapValidator only logs errors but does not reject invalid operations. | |
|
Set SnapValidator to reject all invalid operations and return an error log to the host and storage system consoles. |
vol options volume-name svo_reject_errors on If this option is not set to On, then SnapValidator detects invalid operations but only logs them as errors. The following shows a SnapValidator error example displayed on the storage system console: Thu May 20 08:57:08 GMT [filer_1: wafl.svo.checkFailed:error]: SnapValidator: Validation error Bad Block Number:: v:9r2 vol:flextest inode:98 length:512 Offset: 1298432 | |
| 3 |
If the volume contains LUNs, proceed to Enabling SnapValidator checks on LUNs in the next section. |
|
If you enable SnapValidator on volumes that contain database LUNs, you must also enable SnapValidator checks on the LUNs by defining the offset to the Oracle data on each LUN. The offset separates the Oracle data portion of the LUN from the host volume manager's disk label or partition information. The value for the offset depends on the operating system (OS) of the host accessing the data on the LUN. By defining the offset for each LUN, you ensure that SnapValidator does not check write operations to the disk label or partition areas as if they were Oracle write operations.
To define the offset, you must first identify the offset on your host and then define that offset to the storage system. The method you use to identify the offset depends on your host. For details see:
To identify the disk offset for Solaris hosts, complete the following steps.
| 1 |
On the host, enter the following command: prtvtoc /dev/rdsk/device_name ResultThe host console displays a partition map for the disk. ExampleThe following output example shows the partition map for disk c3t9d1s2: prtvtoc /dev/rdsk/c3t9d1s2 * /dev/rdsk/c3t9d1s2 partition map * * Dimensions: * 512 bytes/sector * 384 sectors/track * 16 tracks/cylinder * 6144 sectors/cylinder * 5462 cylinders * 5460 accessible cylinders * * Flags: * 1: unmountable * 10: read-only * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 0 00 0 6144 6143 2 5 01 0 33546240 33546239 6 0 00 6144 33540096 33546239 |
| 2 |
Obtain the offset value by multiplying the value of the first sector of the partition you are using by the bytes/sector value listed under Dimensions. In the example shown in Step 1, which is using slice 6, the disk offset is 6144 * 512 = 3145728. |
To identify the disk offset for non-Solaris hosts, complete the following steps.
To define the disk offset on the storage system, complete the following step.
To disable SnapValidator, complete the following steps.
To disable SnapValidator checks on a LUN, complete the following step.
| 1 |
On the storage system command line, enter the following command: lun set lun_path svo_offset disable |
When you upgrade to Data ONTAP 7.0 from a previous release, all SnapValidator options on all volumes are disabled. The offset attribute (the svo_offset option) for LUNs is also disabled.
When you revert to a previous version of Data ONTAP, all SnapValidator options on all volumes are disabled. The value for the LUN offset is retained, but the earlier version of Data ONTAP does not apply it.
SnapValidator displays two messages similar to the following when write operations to a LUN fail.
Thu May 20 08:57:08 GMT [fas940: wafl.svo.checkFailed:error]: SnapValidator: Validation error Bad Block Number:: v:9r2 vol:dbtest inode:98 length:512 Offset: 1298432
Thu May 20 14:19:00 GMT [fas940: scsitarget.write.failure:error]: Write to LUN /vol/dbtest/oracle_lun1 failed (5)
If you receive a message indicating that a write operation to a LUN failed, verify that you set the correct disk offset on the LUN. Identify the disk offset and reset the offset defined for the LUN by using the procedures described in Enabling SnapValidator checks on LUNs.
The following messages indicate that SnapValidator detected invalid data:
If you receive a message indicating that SnapValidator detected or rejected invalid data, verify the following:
You enabled the SnapValidator checks on the volumes that contain your data files. For more information, see Enabling SnapValidator checks on volumes.
You set the SnapValidator checks correctly. For example, if you set the svo_allow_rman volume option to on, then make sure that the volume contains Oracle Recovery Manager (RMAN) backup data. If you store RMAN data in a volume that does not have this option set, then you might receive an error message indicating that SnapValidator detected invalid data.
If the SnapValidator options on the storage system are correctly set but you still receive the above errors, you might have the following problems:
Copyright © 1994-2005, Network Appliance, Inc. All rights
reserved.
Part No. 210-01094_B0
File: c9data12.htm
Last updated: 08-Dec-2005 13:25:35