SPBackupRestoreConsole.CreateBackupRestore Method (SPBackupRestoreSettings)

Creates a backup or restore operation and assigns it an ID.

Namespace:  Microsoft.SharePoint.Administration.Backup
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Shared Function CreateBackupRestore ( _
    settings As SPBackupRestoreSettings _
) As Guid
'Usage
Dim settings As SPBackupRestoreSettings
Dim returnValue As Guid

returnValue = SPBackupRestoreConsole.CreateBackupRestore(settings)
public static Guid CreateBackupRestore(
    SPBackupRestoreSettings settings
)

Parameters

Return Value

Type: System.Guid
A Guid that identifies the new backup or restore operation.

Exceptions

Exception Condition
ArgumentNullException

settings is a null reference (Nothing in Visual Basic).

SPException

The component is already scheduled for a backup or restore.

Remarks

The backup or restore operation is an SPBackupRestoreConsoleObject object. The Guid that is returned is the primary way that your code can refer to the operation when it calls the critical members of SPBackupRestoreConsole. For example, you use the Guid as a parameter to the SetActive, Run, and Remove methods.

If you want to get a direct reference to the SPBackupRestoreConsoleObject object, use Get.

The CreateBackupRestore method also creates a SPBackupRestoreHistoryObject object that has the same ID as the SPBackupRestoreConsoleObject object.

Examples

The following example shows how to use the CreateBackupRestore method in a backup application. For the full example and a detailed discussion of it, see How to: Programmatically Back Up Content.

static void Main(string[] args)
{
    // Identify the location for the backup storage.
    Console.Write("Enter full UNC path to the directory where the backup will be stored:");
    String backupLocation = Console.ReadLine();
    
    // Create the backup settings.
    SPBackupSettings settings = SPBackupRestoreSettings.GetBackupSettings(backupLocation, "Full");

    // Identify the content component to backup.
    Console.Write("Enter name of component to backup (default is whole farm):");
    settings.IndividualItem = Console.ReadLine();
    
    // Set optional operation parameters.
    settings.IsVerbose = true;
    settings.UpdateProgress = 10;
    settings.BackupThreads = 10;

    // Create the backup operation and return its ID.
    Guid backup = SPBackupRestoreConsole.CreateBackupRestore(settings);

    // Ensure that user has identified a valid and unique component.
    SPBackupRestoreObject node = EnsureUniqueValidComponentName(settings, ref backup);

    // Ensure that there is enough space.
    Boolean targetHasEnoughSpace = false;
    if (node != null)
    {
        targetHasEnoughSpace = EnsureEnoughDiskSpace(backupLocation, backup, node);
    }

    // If there is enough space, attempt to run the backup.
    if (targetHasEnoughSpace)
    {
        // Set the backup as the active job and run it.
        if (SPBackupRestoreConsole.SetActive(backup) == true)
        {
            if (SPBackupRestoreConsole.Run(backup, node) == false)
            {
                // Report "error" through your UI.
                String error = SPBackupRestoreConsole.Get(backup).FailureMessage;
                Console.WriteLine(error);
            }
        }
        else
        {
            // Report through your UI that another backup
            // or restore operation is underway. 
            Console.WriteLine("Another backup or restore operation is already underway. Try again when it ends.");
        }

        // Clean up the operation.
        SPBackupRestoreConsole.Remove(backup);

        Console.WriteLine("Backup attempt complete. Press Enter to continue.");
        Console.ReadLine();
    }
}// end Main
Shared Sub Main(ByVal args() As String)
    ' Identify the location for the backup storage.
    Console.Write("Enter full UNC path to the directory where the backup will be stored:")
    Dim backupLocation As String = Console.ReadLine()

    ' Create the backup settings.
    Dim settings As SPBackupSettings = SPBackupRestoreSettings.GetBackupSettings(backupLocation, "Full")

    ' Identify the content component to backup.
    Console.Write("Enter name of component to backup (default is whole farm):")
    settings.IndividualItem = Console.ReadLine()

    ' Set optional operation parameters.
    settings.IsVerbose = True
    settings.UpdateProgress = 10
    settings.BackupThreads = 10

    ' Create the backup operation and return its ID.
    Dim backup As Guid = SPBackupRestoreConsole.CreateBackupRestore(settings)

    ' Ensure that user has identified a valid and unique component.
    Dim node As SPBackupRestoreObject = EnsureUniqueValidComponentName(settings, backup)

    ' Ensure that there is enough space.
    Dim targetHasEnoughSpace As Boolean = False
    If node IsNot Nothing Then
        targetHasEnoughSpace = EnsureEnoughDiskSpace(backupLocation, backup, node)
    End If

    ' If there is enough space, attempt to run the backup.
    If targetHasEnoughSpace Then
        ' Set the backup as the active job and run it.
        If SPBackupRestoreConsole.SetActive(backup) = True Then
            If SPBackupRestoreConsole.Run(backup, node) = False Then
                ' Report "error" through your UI.
                Dim [error] As String = SPBackupRestoreConsole.Get(backup).FailureMessage
                Console.WriteLine([error])
            End If
        Else
            ' Report through your UI that another backup
            ' or restore operation is underway. 
            Console.WriteLine("Another backup or restore operation is already underway. Try again when it ends.")
        End If

        ' Clean up the operation.
        SPBackupRestoreConsole.Remove(backup)

        Console.WriteLine("Backup attempt complete. Press Enter to continue.")
        Console.ReadLine()
    End If
End Sub ' end Main

See Also

Reference

SPBackupRestoreConsole Class

SPBackupRestoreConsole Members

CreateBackupRestore Overload

Microsoft.SharePoint.Administration.Backup Namespace