192 lines
9.5 KiB
HTML
192 lines
9.5 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: Restore libraries after eliminating save-outage time" />
|
|
<meta name="DC.Relation" scheme="URI" content="rzaiurzaiu348.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="rzaiu361" />
|
|
<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: Restore libraries after eliminating save-outage time</title>
|
|
</head>
|
|
<body id="rzaiu361"><a name="rzaiu361"><!-- --></a>
|
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|
<h1 class="topictitle1">Example: Restore libraries after eliminating save-outage time</h1>
|
|
<div><div class="section"> <p>This example shows a typical restore procedure after you eliminate
|
|
save-outage time in a library. Your exact use of the function may differ,
|
|
based on your specific application requirements.</p>
|
|
<p>Perform the following
|
|
steps when restoring libraries LIB1 and LIB2: </p>
|
|
</div>
|
|
<ol><li class="stepexpand"><span></span> Restore the two libraries with the following commands:
|
|
|
|
<pre>RSTLIB SAVLIB(LIB1) DEV(TAP01)
|
|
|
|
RSTLIB SAVLIB(LIB2) DEV(TAP01)</pre>
|
|
|
|
<p>If the journals still exist on the system, they are not restored. That
|
|
is not a problem.</p>
|
|
|
|
<p>If they did not exist, the server will restore the journal objects before
|
|
the other objects.</p>
|
|
|
|
<p>At the completion of these restore commands, the objects exist on the server,
|
|
but they will not be in a consistent state in relationship to each other.</p>
|
|
</li>
|
|
<li class="stepexpand"><span></span> Restore the necessary journal receivers that were attached
|
|
at the time the libraries were saved. If the journal receivers are in libraries
|
|
other than LIB1 or LIB2 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)</pre>
|
|
|
|
<p>If the attached receivers were in LIB1 or LIB2 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 LIB1 and LIB2. 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. 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>
|
|
|
|
<p>The Work with Journal Attributes (WRKJRNA) and Display Journal (DSPJRN)
|
|
commands can be helpful in finding the application boundary.</p>
|
|
|
|
<p>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.</p>
|
|
</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 commitment boundaries will be preserved on the
|
|
following APYJRNCHG commands. If you do not want the commitment control boundaries
|
|
preserved, then you 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 if
|
|
the following is true:
|
|
<ul><li>The journaled objects for which changes are to be applied were saved in
|
|
V5R3.</li>
|
|
<li>You did not restore the journal (which is not a problem) 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) +
|
|
OBJ((LIB1/*ALL)) +
|
|
TOENT(seq#-for-application-boundary)
|
|
|
|
APYJRNCHG JRN(jrnlib/jrnname) +
|
|
OBJ((LIB2/*ALL)) +
|
|
TOENT(seq#-for-application-boundary)</pre>
|
|
|
|
<p>If multiple journals are involved, then repeat these commands for each
|
|
journal specifying the correct sequence number (TOENT parameter) that identifies
|
|
the desired application boundary. Note that the TOENT sequence number is very
|
|
likely different for each journal in LIB1 and LIB2, but they all identify
|
|
a common application boundary.</p>
|
|
</li>
|
|
<li>Use the commands below to apply the journaled changes to the objects 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((LIB1/*ALL)) +
|
|
RCVRNG(rcv-attached-at-save-time +
|
|
ending-rcv) +
|
|
TOENT(seq#-for-application-boundary)
|
|
|
|
APYJRNCHG JRN(jrnlib/jrnname) +
|
|
OBJ((LIB2/*ALL)) +
|
|
RCVRNG(rcv-attached-at-save-time +
|
|
ending-rcv) +
|
|
TOENT(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.</p>
|
|
|
|
<p>If multiple journals are involved, then repeat these commands for each
|
|
journal specifying the correct sequence number (TOENT parameter) that identifies
|
|
the desired application boundary. Note that the TOENT sequence number is very
|
|
likely different for each journal in LIB1 and LIB2, but they all identify
|
|
a common application boundary. 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 works.</p>
|
|
</li>
|
|
<li>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),
|
|
do the following commands.
|
|
<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) +
|
|
TOENT(seq#-for-application-boundary)</pre>
|
|
|
|
<p>If you are prior to V5R3 and the most recent save of the objects are 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 LIB1 and LIB2.</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>
|
|
</body>
|
|
</html> |