ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzaiu_5.4.0.1/rzaiurestoreobj.htm

184 lines
10 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="task" />
<meta name="DC.Title" content="Example: Restoring objects with partial transactions" />
<meta name="DC.Relation" scheme="URI" content="rzaiurzaiu348.htm" />
<meta name="DC.Relation" scheme="URI" content="../rzai8/rzai8overview.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2004, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2004, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzaiurestoreobj" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Example: Restoring objects with partial transactions</title>
</head>
<body id="rzaiurestoreobj"><a name="rzaiurestoreobj"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Example: Restoring objects with partial transactions</h1>
<div><div class="section"> <p>If you perform save-while-active operations that can result in
objects that are saved with partial transactions, it is recommended that you
use Backup, Recovery, and Media Services (BRMS). You can use BRMS to automate
your backup and recovery operations. BRMS automatically applies changes to
objects with partial transactions and restores them to a usable state. </p>
<p> If
an object is saved with partial transactions, FROMENT(*LASTSAVE) will be required
when applying or removing journaled changes on the restored version of the
object.</p>
<p>When you use the character-based interface to restore objects
with partial transactions, perform the following steps to restore libraries
CHK and SAV: </p>
</div>
<ol><li class="stepexpand"><span></span> Restore the two libraries with the following commands: <pre>RSTLIB SAVLIB(CHK) DEV(TAP01)
RSTLIB SAVLIB(SAV) DEV(TAP01)</pre>
<p>If the journals still exist on
the system, they are not restored. However, this is not a problem.</p>
<p>If
they did not exist, the server will restore the journal objects before the
other objects.</p>
</li>
<li class="stepexpand"><span></span> Restore the earliest receiver as specified by the outfile.
If the journal receivers are in libraries other than CHK or SAV at the time
of the save and they do not currently exist on the server, use the following
restore command to restore the receivers: <pre>RSTOBJ OBJ(attached-receiver-at-save-time) +
SAVLIB(receiver-library) +
DEV(TAP01) +
OUTPUT(*OUTFILE)OUTFILE(lib/file)</pre>
<p>If the attached receivers
were in CHK or SAV when you saved the data and they did not exist prior to
the RSTLIB operation, they were restored as part of that RSTLIB operation</p>
</li>
<li class="stepexpand"><span></span> Determine a point in time, or application boundary,
in which to bring the objects in CHK and SAV. This way all of the objects
are in a consistent state in relationship to each other. After determining
the desired application boundary, you might need to restore additional journal
receivers. You can use the WRKJRNA command to determine the appropriate range
of receivers you need for the ensuing Apply Journaled Changes (APYJRNCHG)
operations. You can use the DSPJRN command to locate the exact sequence number
that identifies the desired application boundary. If multiple journals are
involved, you must locate the same application boundary (most likely identified
by the timestamp) in each journal. You must also note the appropriate journal
sequence number. If you need to restore additional journal receivers, but
the receivers are not online, restore them with the following restore command.
Multiple restore commands may be necessary for this step: <pre>RSTOBJ OBJ(other-needed-receivers) +
SAVLIB(receiver-library) +
DEV(TAP01)</pre>
</li>
<li class="stepexpand"><span></span> Bring the objects forward to a specific
application boundary with one of the following Apply Journaled Changes (APYJRNCHG)
commands. Different variations of the APYJRNCHG command may be appropriate
based on the given criteria. <p>If any objects received changes during the
save operation, and they were under commitment control, the commit boundaries
will be preserved on the following APYJRNCHG commands. If you do not wish
to have the commitment control boundaries preserved, then you would need to
specify CMTBDY(*NO) on the following APYJRNCHG commands.</p>
<ol type="a"><li>Use the commands below to apply the journaled changes to the objects (completed
or partial) if the following is true: <ul><li>The objects were saved prior to V5R3.</li>
<li>You did not restore the Journal because the objects were being restored
to the system from where they were saved.</li>
<li>The media used represent the most recent save of the objects.</li>
<li>You saved the objects specifying UPDHST(*YES) on the save command.</li>
</ul>
<pre>APYJRNCHG JRN(jrnlib/jrnname) +
FROMENT(*LASTSAVE) +
OBJ((CHK/*ALL)) +
TOENTLRG(seq#-for-application-boundary)
APYJRNCHG JRN(jrnlib/jrnname) +
FROMENT(*LASTSAVE) +
OBJ((SAV/*ALL)) +
TOENTLRG(seq#-for-application-boundary)</pre>
<p>If multiple
journals are involved, then repeat these commands for each journal specifying
the correct sequence number (TOENTLRG parameter) that identifies the desired
application boundary. Note that the TOENTLRG sequence number is very likely
different for each journal in CHK and SAV, but they all identify a common
application boundary.</p>
</li>
<li>Use the commands below to apply the journaled changes to the objects (completed
or partial) if the following is true: <ul><li>The objects were saved prior to V5R3.</li>
<li>You restored the journal.</li>
<li>The media used represent the most recent save of the objects.</li>
<li>You saved the objects specifying UPDHST(*YES) on the save command.</li>
</ul>
<pre>APYJRNCHG JRN(jrnlib/jrnname) +
OBJ((CHK/*ALL)) +
RCVRNG(rcv-attached-at-save-time +
ending-rcv) +
FROMENT(*LASTSAVE) +
TOENTLRG(seq#-for-application-boundary)
APYJRNCHG JRN(jrnlib/jrnname) +
OBJ((SAV/*ALL)) +
RCVRNG(rcv-attached-at-save-time +
ending-rcv) +
FROMENT(*LASTSAVE) +
TOENTLRG(seq#-for-application-boundary)</pre>
<p>In the situation
where the journal is restored, and the journaled objects for which changes
are going to be applied were saved prior to V5R3, the server cannot determine
the correct receiver range. Therefore, the correct range of receivers must
be specified on the RCVRNG parameter. Note that the attached receiver at the
time that the libraries were saved is the specified starting journal receiver.
If the journaled objects for which changes are going to be applied were saved
in V5R3 or later, then the server can determine the correct receiver range
when the default of RCVRNG(*LASTSAVE) is used. In this situation, the apply
command from step a is correct.</p>
<p>If multiple journals are involved,
then repeat these commands for each journal specifying the correct sequence
number (TOENTLRG parameter) that identifies the desired application boundary.
Note that the TOENTLRG sequence number is very likely different for each journal
in CHK and SAV, but they all identify a common application boundary.</p>
</li>
<li>Do the following commands if your objects were saved prior to V5R3 and
the save-while-active media used does not represent the most recent save of
the objects specifying UPDHST(*YES). <ol type="i"><li>Use the DSPJRN command to determine the sequence number of the start-of-save
journal entry for each object. </li>
<li>Issue an individual APYJRNCHG command for each of the objects.</li>
</ol>
The following example demonstrates such an APYJRNCHG command: <pre>APYJRNCHG JRN(jrnlib/jrnname) +
OBJ((filelib/filename filembr)) +
RCVRNG(rcv-attached-at-save-time +
ending-rcv) +
FROMENT(seq#-for-start-of-save-entry) +
FROMENT(*LASTSAVE) +
TOENT(seq#-for-application-boundary)</pre>
<p>If you are not
using V5R3 and the most recent save of the objects is not being used, FROMENT(*LASTSAVE)
cannot be specified on the APYJRNCHG commands. An individual sequence number
must be specified for each of the objects in libraries CHK and SAV</p>
<p>Some
of the APYJRNCHG commands could specify multiple objects if there is a continuous
series of start-of-save entries in the journal. The members identified by
the continuous series of start-of-save journal entries could be applied to
with a single APYJRNCHG command by specifying the earliest sequence number
of all the start-of-save entries in the continuous series for the FROMENT
parameter. If you are using V5R3, use the *LASTSAVE value in the FROMENT parameter.</p>
</li>
</ol>
</li>
</ol>
<div class="section"></div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzaiurzaiu348.htm" title="Use the save-while-active function to eliminate your save-outage time.">Eliminate your save-outage time</a></div>
</div>
<div class="relinfo"><strong>Related information</strong><br />
<div><a href="../rzai8/rzai8overview.htm">Backup, Recovery and Media Services</a></div>
</div>
</div>
</body>
</html>