Consultor Eletrônico



Kbase P107374: All Ai extents LOCKED, production DB cannot be stopped.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   16/10/2008
Status: Unverified

GOAL:

What to do when having all After Image (AI) extents LOCKED and no intention to stop the production Database (DB)

FACT(s) (Environment):

Fathom High Availability Replication

FIX:

If you are running 10.1A then you can add online AI extents to resolve the issue. See command:
prostrct addonline <dbname> [structure file]

If you are on an earlier Progress version and resolving the Replication problem on the target machine is not possible plus the production database cannot be stopped for adding AI extents, then the only solution is to Disable Fathom Replication so that AI extents can be emptied and a stop of the database be avoided. With LOCKED extents only, the DB would stop either due to the last fixed AI extent being full or due to a system full where the last non fixed AI extent resides. Disabling Fathom Replication will change the AI extents status from LOCKED to FULL and then, they can be emptied.

Disabling Replication means that the database is no longer replicated, and you will need to re-initiate replication later.

The steps below show how to disable Replication and how to make a copy of the full AI extents prior to emptying them.

1. If the Replication Agent is still running, then stop it and run [on target machine]:

dsrutil dbname -C terminate agent
2. The command to disable Fathom Replication while the database is still running:
dsrutil dbname -C disablesitereplication source
3. To be able to replicate manually the changes from source to target, you should make a copy of all FULL (ex-LOCKED) AI extents prior to emptying them, as per example with the following script.

while `rfutil dbname-C aimage extent full >/dev
ull`
do
last_full='_rfutil dbname -C aimage extent full'
cp $last_full /usr1/dbname/AI`date +"%d%h%H%M%S"`
sleep 1
rfutil dbname -C aimage extent empty $last_full
done

NB: The command to empty one aimage extent, included in the above script, is:

rfutil dbname -C aimage extent empty

5. If the BUSY AI extent is a none fixed AI one, then the following command is recommended for avoiding a disk space problem:

rfutil dbname -C aimage truncate -aiblocksize <0|1|2|4|8|16>