Data Backup and Recovery

Will SMO benefit us?



We are trying to figure out if SMO would help us more than SnapCreator.  In our environment we do not have archive mode enabled on any of our Oracle databases.  So first question does SMO require archiving to be enabled to take a snapshot?  SnapCreator Oracle plug-in does not require this. 

Next question can SMO shutdown the Oracle database to do a cold snapshot?  In our SnapCreator configs we use APP_QUIESCE_CMS01 and APP_UNQUIESCE_CMD01 to stop and start the databases.  We also use PRE_EXIT_CMD'S to start the database and listener in the event SnapCreator has an error code. 

Third question will SMO help us with database recovery more than SnapCreator.  We now just use the snap restore command to recover back to a snapshot. 

Any feedback you can provide would be greatly appreciated.


Deb Krajicek




Yes, SMO can do backups of databases in NOARCHIVELOG mode, and it automatically does an offline backups in this case.   This is an option that can be set within the scheduler or at the time of the manual backup.  (Below is the CLI statement syntax but it is also also an option in gui.)

backup create -profile <profile> {-online | -offline | -auto} {-full | -files <files> [<files> ...] | -tablespaces <tablespaces> [<tablespaces> ...]} [-label <label>] [-comment <comment>] [-protect | -noprotect] [-retain <-hourly | -daily | -weekly | -monthly | -unlimited>] [-verify] [-force] [-quiet | -verbose]

SMO also uses the snaprestore functionality in the case of a restore.  SMO is a little picky about there being other files in a mountpoint which it may not know about.  If there are other files which are non oracle (even something as simple as a vi or emacs # or .swp file) it will default back to single file snap restore if applicable, or copy the files out of a mounted snap.  Not a full quick volume snap restore.  It will warn you at the time of profile creation if this is the case.

backup restore -profile <profile> {-label <label> | -id <id>} {-files <files> [<files> ...] | -tablespaces <tablespaces> [<tablespaces> ...] | -complete | -controlfiles} [-recover {-alllogs | -nologs | -until <until>} [-using-backup-controlfile]] [-restorespec <restorespec> | -from-secondary [-temp-volume <temp_volume>] [-copy-id id]] [-force] [-fast [-require | -override | fallback | off]] [-preview] [-quiet | -verbose]



SnapCreator can just restore your volumes. You need to manual recover your database.

SMO discovers the database and identifies the corresponding volumes. When you need to restore and recover your database it even checks what would happen to your database volume(s): If there are files in it which does not belong to your database you get a list of these files. You can still chose to restore the entire volume (files will be restored to the time of the snapshot) or just let the SMO to copy the oracle files (long running operation). The next option of the restore and recover wizard offers the different oracle recover options (time, SCN, all logs, nothing).

With SMO you can also clone a database to the same or a different host.

So if you have a supported environment for SMO I would recommend to use it. If you are fine with the snap creator functions or want to create application consistent snapshots of different databases / applications from the same GUI you should go with snap creator.