Backing up and restoring data on AS/400 (IBM i) is essential for system recovery, disaster preparedness, and maintaining business continuity. Below are the key methods, commands, and best practices for backup and restore operations.
IBM i provides various SAV* commands to back up different objects:
| Command | Purpose | 
|---|---|
| SAVLIB | Saves a library (including objects and data) | 
| SAVOBJ | Saves a specific object (e.g., files, programs) | 
| SAVDLO | Saves documents and folders | 
| SAVCFG | Saves system configuration | 
| SAVSYS | Saves entire system (Licensed Internal Code, QSYS library, OS, and user profiles) | 
| SAVSECDTA | Saves security data (user profiles, authorization lists, passwords, etc.) | 
| SAVCHGOBJ | Saves only changed objects since last backup | 
IBM i provides the GO SAVE menu for automated backup operations.
Command :
GO SAVE
SAVLIB LIB(MYLIB) DEV(TAP01) SAVACT(*YES)
SAVACT(*YES) allows saving active objects.SAVOBJ OBJ(MYFILE) LIB(MYLIB) DEV(*SAVF) SAVF(MYLIB/MYBACKUP)
SAVSECDTA DEV(TAP01)
SAVCFG DEV(TAP01)
SAVCHGOBJ OBJ(*ALL) LIB(MYLIB) DEV(TAP01) REFERENCE(*LIB)
IBM i provides various RST* commands for restoring data:
| Command | Purpose | 
|---|---|
| RSTLIB | Restores an entire library | 
| RSTOBJ | Restores specific objects | 
| RSTUSRPRF | Restores user profiles | 
| RSTCFG | Restores system configurations | 
| RSTSYS | Restores the entire system (from SAVSYS backup) | 
RSTLIB LIB(MYLIB) DEV(TAP01) MBROPT(*ALL) ALWOBJDIF(*ALL)
MBROPT(*ALL): Restores all members of files.ALWOBJDIF(*ALL): Allows restoring even if object differences exist.RSTOBJ OBJ(MYFILE) LIB(MYLIB) DEV(*SAVF) SAVF(MYLIB/MYBACKUP)
RSTUSRPRF DEV(TAP01) USRPRF(*ALL)
RSTCFG OBJ(*ALL) DEV(TAP01) OBJTYPE(*ALL)
RSTSYS DEV(TAP01)
Instead of using tapes, backups can be stored in a save file (SAVF) on disk.
CRTSAVF FILE(MYLIB/MYBACKUP)
SAVLIB LIB(MYLIB) DEV(*SAVF) SAVF(MYLIB/MYBACKUP)
RSTLIB LIB(MYLIB) DEV(*SAVF) SAVF(MYLIB/MYBACKUP)
IBM i allows scheduling backups using job scheduler (WRKJOBSCDE).
ADDJOBSCDE JOB(BACKUP) CMD(SAVLIB LIB(MYLIB) DEV(TAP01)) 
FRQ(*DAILY) SCDTIME(230000)
* Perform regular full backups (SAVSYS, SAVLIB, SAVSECDTA, SAVCFG).
* Use Save Files (SAVF) for faster, disk-based backups.
* Schedule incremental backups (SAVCHGOBJ) to save only changed objects.
* Verify backups using DSPTAP (Display Tape Contents).
* Perform test restores to ensure backup integrity.
* Store backups offsite for disaster recovery.
* Monitor backup jobs using WRKACTJOB.
DSPTAP DEV(TAP01) DATA(*SAVRST)
DSPLOG PERIOD((*AVAIL *CURRENT))  
| Task | Backup Command | Restore Command | 
|---|---|---|
| Entire Library | SAVLIB LIB(MYLIB) DEV(TAP01) | RSTLIB LIB(MYLIB) DEV(TAP01) | 
| Specific Object | SAVOBJ OBJ(MYFILE) LIB(MYLIB) DEV(*SAVF) | RSTOBJ OBJ(MYFILE) LIB(MYLIB) DEV(*SAVF) | 
| User Profiles | SAVSECDTA DEV(TAP01) | RSTUSRPRF DEV(TAP01) USRPRF(*ALL) | 
| System Configuration | SAVCFG DEV(TAP01) | RSTCFG DEV(TAP01) OBJ(*ALL) | 
| Entire System | SAVSYS DEV(TAP01) | RSTSYS DEV(TAP01) |