Cloning backups using PowerShell cmdlets

The clone workflow includes planning, performing the clone operation, and monitoring the operation.

Before you begin

You must have prepared the PowerShell environment to execute the PowerShell cmdlets.

About this task

For information about PowerShell cmdlets, use the SnapCenter cmdlet help or see the cmdlet reference information.

SnapCenter Software 4.1 Windows Cmdlet Reference Guide

Steps

  1. Initiate a connection session with the SnapCenter Server for a specified user by using the Open-SmConnection cmdlet.
    Example
    Open-SmConnection  -SMSbaseurl  https:\\snapctr.demo.netapp.com:8146/
    
  2. List the backups that can be cloned by using the Get-SmBackup or Get-SmResourceGroup cmdlet.
    Example

    This example displays information about all available backups:

    C:\PS>PS C:\> Get-SmBackup
    
    BackupId   BackupName                     BackupTime   BackupType
    --------   ----------                     ----------   ----------
    1          Payroll Dataset_vise-f6_08...  8/4/2015     Full Backup
                                              11:02:32 AM
    
    2          Payroll Dataset_vise-f6_08...  8/4/2015
                                              11:23:17 AM
    
    Example

    This example displays information about a specified resource group, its resources, and associated policies:

    PS C:\> Get-SmResourceGroup -ListResources –ListPolicies
    
    Description :
    CreationTime : 8/4/2015 3:44:05 PM
    ModificationTime : 8/4/2015 3:44:05 PM
    EnableEmail : False
    EmailSMTPServer :
    EmailFrom :
    EmailTo :
    EmailSubject :
    EnableSysLog : False
    ProtectionGroupType : Backup
    EnableAsupOnFailure : False
    Policies : {FinancePolicy}
    HostResourceMaping : {}
    Configuration : SMCoreContracts.SmCloneConfiguration
    LastBackupStatus :
    VerificationServer :
    EmailBody :
    EmailNotificationPreference : Never
    VerificationServerInfo : SMCoreContracts.SmVerificationServerInfo
    SchedulerSQLInstance :
    CustomText :
    CustomSnapshotFormat :
    SearchResources : False
    ByPassRunAs : False
    IsCustomSnapshot :
    MaintenanceStatus : Production
    PluginProtectionGroupTypes : {SMSQL}
    Name : Payrolldataset
    Type : Group
    Id : 1
    Host :
    UserName :
    Passphrase :
    Deleted : False
    Auth : SMCoreContracts.SmAuth
    IsClone : False
    CloneLevel : 0
    ApplySnapvaultUpdate : False
    ApplyRetention : False
    RetentionCount : 0
    RetentionDays : 0
    ApplySnapMirrorUpdate : False
    SnapVaultLabel :
    MirrorVaultUpdateRetryCount : 7
    AppPolicies : {}
    Description : FinancePolicy
    PreScriptPath :
    PreScriptArguments :
    PostScriptPath :
    PostScriptArguments :
    ScriptTimeOut : 60000
    DateModified : 8/4/2015 3:43:30 PM
    DateCreated : 8/4/2015 3:43:30 PM
    Schedule : SMCoreContracts.SmSchedule
    PolicyType : Backup
    PluginPolicyType : SMSQL
    Name : FinancePolicy
    Type :
    Id : 1
    Host :
    UserName :
    Passphrase :
    Deleted : False
    Auth : SMCoreContracts.SmAuth
    IsClone : False
    CloneLevel : 0
    clab-a13-13.sddev.lab.netapp.com
    DatabaseGUID :
    SQLInstance : clab-a13-13
    DbStatus : AutoClosed
    DbAccess : eUndefined
    IsSystemDb : False
    IsSimpleRecoveryMode : False
    IsSelectable : True
    SqlDbFileGroups : {}
    SqlDbLogFiles : {}
    AppFileStorageGroups : {}
    LogDirectory :
    AgName :
    Version :
    VolumeGroupIndex : -1
    IsSecondary : False
    Name : TEST
    Type : SQL Database
    Id : clab-a13-13\TEST
    Host : clab-a13-13.sddev.mycompany.com
    UserName :
    Passphrase :
    Deleted : False
    Auth : SMCoreContracts.SmAuth
    IsClone : False
    
  3. Initiate a clone operation from an existing backup by using the New-SmClone cmdlet.
    Example

    This example creates a clone from a specified backup with all logs:

    PS C:\> New-SmClone 
    -BackupName payroll_dataset_vise-f3_08-05-2015_15.28.28.9774 
    -Resources @{"Host"="vise-f3.sddev.mycompany.com";
    "Type"="SQL Database";"Names"="vise-f3\SQLExpress\payroll"} 
    -CloneToInstance vise-f3\sqlexpress -AutoAssignMountPoint 
    -Suffix _clonefrombackup
    -LogRestoreType All -Policy clonefromprimary_ondemand
    
    PS C:> New-SmBackup -ResourceGroupName PayrollDataset -Policy FinancePolicy
    
    Example

    This example creates a clone to a specified Microsoft SQL Server instance:

    PS C:\> New-SmClone 
    -BackupName "BackupDS1_NY-VM-SC-SQL_12-08-2015_09.00.24.8367"
    -Resources @{"host"="ny-vm-sc-sql";"Type"="SQL Database";
    "Names"="ny-vm-sc-sql\AdventureWorks2012_data"} 
    -AppPluginCode SMSQL -CloneToInstance "ny-vm-sc-sql" 
    -Suffix _CLPOSH -AutoAssignMountPoint 
    -AssignMountPointUnderPath "C:\SCMounts"
    
  4. View the status of the clone job by using the Get-SmCloneReport cmdlet.
    Example

    This example displays a clone report for the specified job ID:

    PS C:\> Get-SmCloneReport -JobId 186
    
    SmCloneId : 1
    SmJobId : 186
    StartDateTime : 8/3/2015 2:43:02 PM
    EndDateTime : 8/3/2015 2:44:08 PM
    Duration : 00:01:06.6760000
    Status : Completed
    ProtectionGroupName : Draper
    SmProtectionGroupId : 4
    PolicyName : OnDemand_Clone
    SmPolicyId : 4
    BackupPolicyName : OnDemand_Full_Log
    SmBackupPolicyId : 1
    CloneHostName : SCSPR0054212005.mycompany.com
    CloneHostId : 4
    CloneName : Draper__clone__08-03-2015_14.43.53
    SourceResources : {Don, Betty, Bobby, Sally}
    ClonedResources : {Don_DRAPER, Betty_DRAPER, Bobby_DRAPER,
                       Sally_DRAPER}