If files, directories, or storage pools on a source replication server are
damaged, you can repair deduplicated data extents in a directory-container storage pool on the
source replication server from a target replication server.
Before you begin
Evaluate your storage environment to determine whether outages, network issues, or hardware
failures are causing damage to data or causing the data to appear damaged. If issues in your
environment are causing damage to data, identify and resolve the issues.
Ensure that there is
enough available space in the directory-container storage pool for the recovered data. The
PREVIEW=YES parameter in the REPAIR STGPOOL command
specifies how much data will be repaired. If there is not enough space, use the DEFINE
STGPOOLDIRECTORY command to provision space.
About this task
Use the procedure to repair the following types of damage:
- Minor damage that is caused by accidental deletion of files or directories, overwritten files,
accidental changes in file permissions, or disk errors caused by hardware issues.
- Moderate damage that is caused by disk errors or disk mount errors. This type of damage results
in the loss of one or more directories, but not a loss of the entire storage pool.
Damaged deduplicated extents are repaired with extents that were protected to the target
replication server.
Restriction: You can issue the REPAIR STGPOOL command for a specified
storage pool only if you already copied the data to another storage pool on a target replication
server by using the PROTECT STGPOOL command.
When you repair a directory-container storage pool from a replication server, the
REPAIR
STGPOOL command fails if any of the following conditions occur:
- The target replication server is unavailable.
- The target storage pool is damaged.
- A network outage occurs.
Procedure
- If you suspect minor damage, issue the AUDIT CONTAINER command for the
container storage pool at the directory level to identify inconsistencies between the database and
the directory-container storage pool. By identifying the damaged data extents in the
directory-container storage pool, you can determine which data extents to repair. To conserve time
and resources, audit only containers that you suspect are damaged. If you suspect that your
directory-container storage pool has more serious damage, issue the AUDIT
CONTAINER command at the storage pool level.
For example, to audit a directory,
n:\pooldir, in a storage pool that is
named STGPOOL1, issue the following
command:
audit container stgpool=stgpool1 stgpooldirectory=n:\pooldir
To audit
a storage pool that is named STGPOOL1, issue the following command:
audit container stgpool=stgpool1
The audit process might run for several hours.
- To repair a directory-container storage pool, issue the REPAIR STGPOOL
command and specify the SRCLOCATION=REPLSERVER parameter. For example, to repair a storage pool that is named STGPOOL1 from a replication server,
issue the following
command:
repair stgpool stgpool1 srclocation=replserver
When you issue the
REPAIR STGPOOL command, the damaged extents are deleted from the volume
immediately after they are repaired. The damaged extents are not retained according to the value
specified by the REUSEDELAY parameter.
- Identify any additional damaged extents by issuing the QUERY DAMAGED
command.
- If damage is detected and deduplicated extents cannot be repaired from the replication server,
it is still possible that they will be repaired. In some cases, the client node resends data during
a backup operation and the damaged extents are repaired. Wait two backup cycles to allow client
backup operations to occur. After two backup cycles, complete the following steps:
- To confirm that the damage is repaired, reissue the QUERY DAMAGED
command.
- If an entire storage pool directory is damaged, create a new replacement storage pool directory
using the DEFINE STGPOOLDIRECTORY command.
- To remove objects that refer to damaged data, issue the AUDIT CONTAINER
command and specify the ACTION=REMOVEDAMAGED parameter.
For example, to audit a directory-container storage pool that is named STGPOOL1 and remove
damaged objects, issue the following
command:
audit container stgpool=stgpool1 action=removedamaged
- Optionally, issue the DELETE STGPOOLDIRECTORY command to delete the empty
storage pool directory that you replaced with a new directory in step 4.b.
What to do next
If you continue to detect damaged data over time, issue the
AUDIT
CONTAINER command for the directory-container storage pool to determine whether there is
more widespread damage. For example, to audit a storage pool that is named STGPOOL1, issue the
following
command:
audit container stgpool=stgpool1