Oracle Snap Management Utility (SMU)

can be accessed via command line Interface (CLI) as well as the standard Browser User Interface (BUI)

cat /opt/oracle/smu/etc/smu.conf

locate the line “sshd.port=<ssh port>” and use this with the root user and password

ssh -p <ssh port> <host>

Create a clone database from an RMAN backup using SMU

Copied from frankdba in case his website goes down. This is too useful to lose!
Source database PRD1S1
Target database ACC1
Two NFS mounts in /etc/fstab

10.60.30.10:/export/acc1-ctl /u33/backup/prd1s1/rman/ctl nfs rw,bg,hard,rsize=1048576,wsize=1048576,vers=3,nointr,timeo=600,tcp,actimeo=0 0 0
10.66.30.10:/export/acc1-dbf /u33/backup/prd1s1/rman/dbf nfs rw,bg,hard,rsize=1048576,wsize=1048576,vers=3,nointr,timeo=600,tcp,actimeo=0 0 0

Make sure these mount points exist

mkdir -p /u33/backup/prd1s1/rman/ctl
mkdir -p /u33/backup/prd1s1/rman/dbf

Mount them as user root

mount /u33/backup/prd1s1/rman/ctl
mount /u33/backup/prd1s1/rman/dbf

Ensure the export directories on the ZFS have the correct permissions. Apparently they can be exported as user nobody instead of the oracle database owner.

zfs01:> shares
zfs01:> list #this will show project names
ACC01
ACC02
zfs01:> select ACC01
zfs01:> show
..
..
Filesystems:
NAME                  SIZE       MOUNTPOINT
acc1-ctl              1.91G     /export/acc1-ctl
acc1-dbf              8.57T    /export/acc1-dbf
zfs01:shares ACC01> get default_user
default_user = 1001 #UID of user oracle on compute node
zfs01:shares ACC01> get default_group
default_group = 1002 #GID of dba group on compute node
  - To adjust use:
zfs01:shares ACC01> set default_user = 1003

Backup the database with RMAN

run {
set nocfau; # NO Control File AUto backup (we take a specific backup of control file)
backup as copy database format '/u33/backup/prd1s1/rman/dbf/%U' tag='FRANK';
backup as copy archivelog all format '/u33/backup/prd1s1/rman/ctl/%U';
backup as copy current controlfile format '/u33/backup/prd1s1/rman/ctl/%U';
}

Note: for this procedure to work, the database has to be backed up using 'as copy' Ensure we have all the redo necessary for the recover by sending some more archivelogs over and backing them up.
On the primary database…

SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> alter system checkpoint;
run {
set nocfau;
backup as copy archivelog all format '/u33/backup/prd1s1/rman/ctl/%U';
}

From SMU, deprovision (drop) any existing database of same name just in case

smu> tasks add -F deprovision acc1

Create an application for the database creation

smu> accounts add -t APPLICATION -p ORACLE_DATABASE -o cluster_database=false -o host=db01 -o oracle_sid=ACC1 -o password=***** -o port=1521 -o storage=zfs01 ACC1

Create the database

smu> tasks add -F import -o oracle_home=/u01/app/oracle/product/11.2.0.4/dbhome_1 /export/acc1-dbf,export/acc1-ctl ACC1

Watch the progress using the task id from the import above

smu> tasks tail -f 455
Getting storage appliance node name
Getting network interface address(s)
Verifying target appliance instance does not already exist
Creating snapshots of backup shares
Finding share(s)
Taking snapshots of share(s)
Cloning snapshot(s)
Finding share(s)
Cloning share snapshot(s)
Mounting the clone share(s)
Mounting the backup
Scanning files in the backup
Getting the backup block size
Starting temporary instance in nomount stage
Shutting down instance
Creating revised temporary pfile
Starting temporary instance in mount stage
Calculating the max SCN and FRA size
Getting backup configuration
Dismounting the backup
Shutting down temporary instance
Configuring and starting clone instance
Adding entry to oratab
Creating the required database directories
Creating the password file
Creating the pfile
Starting the database in nomount stage
Creating the control file
Recovering the database
Opening the database and resetting the logs
Adding the temp file(s)
Dropping the cluster views
Dropping extra undo tablespaces
--- TASK SUCCEEDED ---