commands

^

New-DbaDbSnapshot

Author Simone Bizzotto (@niphold)
Availability Windows, Linux, macOS

 

Synopsis

Creates database snapshots

Description

Creates database snapshots without hassles

Syntax

New-DbaDbSnapshot
    [[-SqlInstance] <DbaInstanceParameter[]>]
    [[-SqlCredential] <PSCredential>]
    [[-Database] <Object[]>]
    [[-ExcludeDatabase] <Object[]>]
    [-AllDatabases]
    [[-Name] <String>]
    [[-NameSuffix] <String>]
    [[-Path] <String>]
    [-Force]
    [[-InputObject] <Database[]>]
    [-EnableException]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

 

Examples

 

Example: 1
PS C:\> New-DbaDbSnapshot -SqlInstance sqlserver2014a -Database HR, Accounting

Creates snapshot for HR and Accounting, returning a custom object displaying Server, Database, DatabaseCreated, SnapshotOf, SizeMB, DatabaseCreated, PrimaryFilePath, Status, Notes

Example: 2
PS C:\> New-DbaDbSnapshot -SqlInstance sqlserver2014a -Database HR -Name HR_snap

Creates snapshot named "HR_snap" for HR

Example: 3
PS C:\> New-DbaDbSnapshot -SqlInstance sqlserver2014a -Database HR -NameSuffix 'fool_{0}_snap'

Creates snapshot named "fool_HR_snap" for HR

Example: 4
PS C:\> New-DbaDbSnapshot -SqlInstance sqlserver2014a -Database HR, Accounting -Path F:\snapshotpath

Creates snapshots for HR and Accounting databases, storing files under the F:\snapshotpath\ dir

Example: 5
PS C:\> Get-DbaDatabase -SqlInstance sql2016 -Database df | New-DbaDbSnapshot

Creates a snapshot for the database df on sql2016

Optional Parameters

-SqlInstance

The target SQL Server instance or instances.

Alias
Required False
Pipeline false
Default Value
-SqlCredential

Login to the target instance using alternative credentials. Accepts PowerShell credentials (Get-Credential). Windows Authentication, SQL Server Authentication, Active Directory - Password, and Active Directory - Integrated are all supported. For MFA support, please use Connect-DbaInstance.

Alias
Required False
Pipeline false
Default Value
-Database

The database(s) to process - this list is auto-populated from the server. If unspecified, all databases will be processed.

Alias
Required False
Pipeline false
Default Value
-ExcludeDatabase

The database(s) to exclude - this list is auto-populated from the server

Alias
Required False
Pipeline false
Default Value
-AllDatabases

Creates snapshot for all eligible databases

Alias
Required False
Pipeline false
Default Value False
-Name

The specific snapshot name you want to create. Works only if you target a single database. If you need to create multiple snapshot, you must use the NameSuffix parameter

Alias
Required False
Pipeline false
Default Value
-NameSuffix

When you pass a simple string, it'll be appended to use it to build the name of the snapshot. By default snapshots are created with yyyyMMdd_HHmmss suffix You can also pass a standard placeholder, in which case it'll be interpolated (e.g. '{0}' gets replaced with the database name)

Alias
Required False
Pipeline false
Default Value
-Path

Snapshot files will be created here (by default the file structure will be created in the same folder as the base db)

Alias
Required False
Pipeline false
Default Value
-Force

Databases with Filestream FG can be snapshotted, but the Filestream FG is marked offline in the snapshot. To create a "partial" snapshot, you need to pass -Force explicitly NB: You can't then restore the Database from the newly-created snapshot. For details, check https://msdn.microsoft.com/en-us/library/bb895334.aspx

Alias
Required False
Pipeline false
Default Value False
-InputObject

Allows Piping from Get-DbaDatabase

Alias
Required False
Pipeline true (ByValue)
Default Value
-EnableException

By default, when something goes wrong we try to catch it, interpret it and give you a friendly warning message. This avoids overwhelming you with "sea of red" exceptions, but is inconvenient because it basically disables advanced scripting. Using this switch turns this "nice by default" feature off and enables you to catch exceptions with your own try/catch.

Alias
Required False
Pipeline false
Default Value False
-WhatIf

Shows what would happen if the command were to run

Alias wi
Required False
Pipeline false
Default Value
-Confirm

Prompts for confirmation of every step.

Alias cf
Required False
Pipeline false
Default Value

 

Want to see the source code for this command? Check out New-DbaDbSnapshot on GitHub.
Want to see the Bill Of Health for this command? Check out New-DbaDbSnapshot.