Anmelden

View Full Version : Systemumstellung, vieeele Bibliotheken übertragen



Seiten : 1 [2]

Fuerchau
18-11-13, 09:11
Die Einrichtung ist schnell erfolgt.
Für den SAVRST muss noch eine OS-Option nachinstalliert werden.
Lohnt sich ggf., da du kein Programm schreiben musst und eine bessere Kontrolle hast.
Ein Problem bei diesem Verfahren wird die Reihenfolge der Libs spielen, ins besonders wenn du LF's in einer Lib hast, die auf PF's in einer anderen Lib verweisen.
Auch die Zeit ist ggf. nicht zu vernachlässigen.
Selbst wenn du ein schnelles Netz hast, kann das ganz schön dauern.
Vielleicht ist es doch günstiger und vor allem schneller, an der neuen Maschine temporär eine Bandstation als Leihgerät anzuschließen.

cbe
18-11-13, 11:24
...
Ein Problem bei diesem Verfahren wird die Reihenfolge der Libs spielen, ins besonders wenn du LF's in einer Lib hast, die auf PF's in einer anderen Lib verweisen.
Auch die Zeit ist ggf. nicht zu vernachlässigen.
Selbst wenn du ein schnelles Netz hast, kann das ganz schön dauern


das kann ich nur voll und ganz unterstreichen.

Wenn Ihr kein Bandlaufwerk habt, wie habt Ihr denn vor, das Backup zu machen?
Vielleicht gibts ja noch eine andere Möglichkeit außer Band und FTP?

programmer400
18-11-13, 11:59
Zur Info: Alte Maschine hat Bandlaufwerk, neue ein RDX-Laufwerk.

Fuerchau
18-11-13, 12:42
Du kannst das sicherlich auch per FTP so machen.
Das Problem des DSPOBJD ist jedoch, dass deine Lib's nach namen sortiert abgelegt werden.
Abhängigkeiten von bestimmten Lib's (siehe LF-Bezug) werden dadurch nicht berücksichtigt.
Auch eine Aktion mit SAVRST läuft da sicherlich nicht rund, wenn Abhängigkeiten nicht berücksichtigt werden.
Hast du dir mal die Übertragungszeiten angesehen um nur eine Lib zu übertragen und das mal hochgerechnet?
Hast du so viel Zeit?

Restorezeiten, Indexaufbauten usw. noch nicht berücksichtigt.

oulbrich
18-11-13, 12:56
Ich übertrage jeden Tag eine vielzahl von Libs auf unser Backupsystem. Hierfür habe ich folgenen Programm erstellt.


Sichern auf dem Quellsystem



/* ************************************************** **************************/
/* Programm: SAVSNDLIB 1 */
/* Funktion: Sicher einer Lib in SAVF und versenden per FTP */
/* ************************************************** **************************/
PGM PARM(&LIB &RMTSYS)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&RMTSYS) TYPE(*CHAR) LEN(8)
/* -------------------------------------------------------------------------- */
DLTOBJ OBJ(QTEMP/SAVSAVF) OBJTYPE(*FILE)
MONMSG MSGID(CPF0000)
CRTSAVF FILE(QTEMP/SAVSAVF) TEXT('Tmp Savf for lib')
MONMSG MSGID(CPF0000)
/* -------------------------------------------------------------------------- */
SAVLIB LIB(&LIB) DEV(*SAVF) SAVF(QTEMP/SAVSAVF) +
SAVACT(*SYNCLIB) DTACPR(*YES)
MONMSG MSGID(CPF0000)
/* -------------------------------------------------------------------------- */
CRTSRCPF FILE(QTEMP/QFTPSRC) RCDLEN(112)
MONMSG MSGID(CPF0000)
CPYF FROMFILE(TOOLS/QFTPSRC) +
TOFILE(QTEMP/QFTPSRC) FROMMBR(SNDSAVFLIB) +
TOMBR(SNDSAVFLIB) MBROPT(*REPLACE) +
CRTFILE(*YES)
CPYF FROMFILE(TOOLS/QFTPSRC) +
TOFILE(QTEMP/QFTPSRC) FROMMBR(SNDSAVFLOL) +
TOMBR(SNDSAVFLOL) MBROPT(*REPLACE) +
CRTFILE(*YES)
FTPBATCH RMTSYS(&RMTSYS) +
CMDFILE(SNDSAVFLIB/QTEMP/QFTPSRC) +
FTPLOG(SNDSAVFLOL/QTEMP/QFTPSRC) DLTLOG(*NO)

ENDPGM


FTP Batch Datei SNDSAVFLIB


USER PASSWORD
BINARY
QUOTE RCMD DLTOBJ QGPL/RCVSAVF OBJTYPE(*FILE)
QUOTE RCMD CRTSAVF QGPL/RCVSAVF
PUT QTEMP/SAVSAVF.SAVF QGPL/RCVSAVF.SAVF
QUOTE RCMD CHGJOB LOG(4 00 *SECLVL) LOGCLPGM(*YES)
QUOTE RCMD CALL PGM(TOOLS/RSTSAVFLIB) PARM('RCVSAVF QGPL')
QUIT

FTP LogDatei SNDSAVFLOL


DARF NICHT LEER SEIN


Auf dem Zielsystem


/* ************************************************** **************************/
/* Programm: RCVSNDSAVF */
/* Funktion: EMPFANGEN GESENDETEN SAVF VIA FTP */
/* Aufruf: VIA FTP REMOTE SYSTEM CL SAVSNDSAVF - FTP RMTCMD */
/* ************************************************** **************************/
PGM PARM(&SAVFLIB)

DCL VAR(&USRSPC) TYPE(*CHAR) LEN(20) +
VALUE('SAV001US QTEMP')
DCL VAR(&FMTNAM) TYPE(*CHAR) LEN(8) +
VALUE('SAVF0200')
DCL VAR(&SAVFLIB) TYPE(*CHAR) LEN(20)
DCL VAR(&OBJFLT) TYPE(*CHAR) LEN(10) VALUE('*ALL')
DCL VAR(&TYPFLT) TYPE(*CHAR) LEN(10) VALUE('*ALL')
DCL VAR(&CNTHND) TYPE(*CHAR) LEN(36)
DCL VAR(&ERRCOD) TYPE(*CHAR) LEN(4)
DCL VAR(&DEC9) TYPE(*CHAR) LEN(9)
DCL &ONED *DEC LEN(9 0) VALUE(1)
DCL &LEND *DEC LEN(9 0) VALUE(140)
DCL &STRPOS *CHAR LEN(4)
DCL &LEN *CHAR LEN(4)
DCL VAR(&RTNVAR) TYPE(*CHAR) LEN(140)
CHGJOB LOG(4 00 *SECLVL) LOGCLPGM(*YES)
MONMSG MSGID(CPF0000)
/*----------------------------------------------------- */
/* Create the user space */
/*----------------------------------------------------- */
DLTUSRSPC USRSPC(%SST(&USRSPC 11 10)/%SST(&USRSPC 1 +
10))
MONMSG MSGID(CPF0000)
CALL PGM(QUSCRTUS) PARM(&USRSPC '' +
100000 '' '*ALL' '')
/*----------------------------------------------------- */
/* Füllen User Space */
/*----------------------------------------------------- */
CHGVAR VAR(%BIN(&ERRCOD 1 4)) VALUE(0)
CALL PGM(QSRLSAVF) PARM(&USRSPC &FMTNAM &SAVFLIB +
&OBJFLT &TYPFLT &CNTHND &ERRCOD)
/*----------------------------------------------------- */
/* Empfangen User Space */
/*----------------------------------------------------- */
CHGVAR %BIN(&STRPOS 1 4) &ONED
CHGVAR %BIN(&LEN 1 4) &LEND
CALL QUSRTVUS PARM(&USRSPC &STRPOS &LEN &RTNVAR)

CHGVAR VAR(&ONED) VALUE(%BIN(&RTNVAR 125 4))
CHGVAR VAR(&ONED) VALUE(&ONED +1)
CHGVAR VAR(&LEND) VALUE(%BIN(&RTNVAR 137 4))
CHGVAR %BIN(&STRPOS 1 4) &ONED
CHGVAR %BIN(&LEN 1 4) &LEND
CALL QUSRTVUS PARM(&USRSPC &STRPOS &LEN &RTNVAR)

CALLSUBR SUBR(RSTLIB)

/* ************************************************** **************************/
SUBR SUBR(RSTLIB)
RSTLIB SAVLIB(%SST(&RTNVAR 1 10)) DEV(*SAVF) +
SAVF(%SST(&SAVFLIB 11 10)/%SST(&SAVFLIB 1 +
10)) MBROPT(*ALL) ALWOBJDIF(*ALL)
ENDSUBR
ENDPGM


Das Programm SAVSNDLIB rufe ich von einem Programm auf welches die einzelen Libs in der richtigen Reihenfolge übergibt.
Vorteil dieser Programme: Auf dem Remote System muß nur eine SAVF angelegt und das Programm RSTSAVLIB vorhanden. Den Rest steuert das Quellsystem.