Restore-SqlDatabase

Restaura una base de datos a partir de una copia de seguridad o registros de transacciones.

Syntax

Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-Database] <String>
       [-Path <String[]>]
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-Database] <String>
       -InputObject <Server[]>
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-Database] <String>
       -ServerInstance <String[]>
       [-Credential <PSCredential>]
       [-ConnectionTimeout <Int32>]
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-DatabaseObject] <Database>
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

El cmdlet Restore-SqlDatabase realiza operaciones de restauración en una base de datos SQL Server. Esto incluye restauraciones de base de datos, restauraciones del registro de transacciones y restauraciones del archivo de base de datos.

Este cmdlet se modela después de la clase Microsoft.SqlServer.Management.Smo.Restore . Los parámetros de este cmdlet suelen corresponder a las propiedades del objeto Smo.Restore .

Ejemplos

Ejemplo 1: Restauración de una base de datos a partir de un archivo de copia de seguridad en un recurso compartido de red

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.bak"

Este comando restaura la base de datos mainDB completa del archivo \\mainserver\databasebackup\MainDB.bak a la instancia del servidor Equipo\Instancia.

Ejemplo 2: Restauración de un registro de transacciones de base de datos

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RestoreAction Log

Este comando restaura el registro de transacciones de la base de datos MainDB desde el archivo \\mainserver\databasebackup\MainDB.trn a la instancia del servidor Equipo\Instancia.

Ejemplo 3: Restaurar una base de datos y solicitar una contraseña

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.bak" -Credential (Get-Credential "sa")

Este comando restaura la base de datos completa MainDB desde el archivo \\mainserver\databasebackup\MainDB.trn a la instancia del servidor Equipo\Instancia, mediante el inicio de sesión de SA SQL. Este comando le pedirá una contraseña para completar la autenticación.

Ejemplo 4: Restauración de un registro de transacciones con la opción NORECOVERY

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RestoreAction Log -NoRecovery

Este comando restaura el registro de transacciones de la base de datos MainDB con la opción NORECOVERY del archivo \\mainserver\databasebackup\MainDB.trn a la instancia de servidor "Computer\Instance".

Ejemplo 5: Restauración de registros de transacciones hasta un momento dado

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RestoreAction Log -ToPointInTime "Nov 11, 2011 11:11 AM"

Este comando restaura el registro de transacciones de la base de datos MainDB hasta la fecha pasada al parámetro ToPointInTime , 11 de noviembre de 2011 11:11 a. m.

Ejemplo 6: Restauración de una base de datos y reubicación de los archivos de datos y de registro

PS C:\> $RelocateData = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("MainDB_Data", "c:\MySQLServer\MainDB.mdf")
PS C:\> $RelocateLog = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("MainDB_Log", "c:\MySQLServer\MainDB.ldf")
PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RelocateFile @($RelocateData,$RelocateLog)

En este ejemplo se restaura la base de datos completa MainDB en la instancia de servidor Equipo\Instancia y se reubican los archivos de datos y de registro. Para cada archivo que se mueve, el ejemplo construye una instancia de la clase Microsoft.SqlServer.Management.Smo.RelocateFile . Cada constructor toma dos argumentos, el nombre lógico del archivo y la ubicación física donde se colocará el archivo en el servidor de destino. Los objetos RelocateFile se pasan al parámetro RelocateFile del cmdlet Restore-SqlDatabase .

Ejemplo 7: Restauración de una base de datos a partir de cinta

PS C:\> $TapeDevice = New-Object Microsoft.Sqlserver.Management.Smo.BackupDeviceItem("\\.\tape0", "Tape")
PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupDevice $TapeDevice

En este ejemplo se restaura la base de datos MainDB desde el dispositivo de cinta denominado \\.\tape0 a la instancia del servidor Equipo\Instancia. Para representar este dispositivo, el ejemplo construye una instancia de la clase Microsoft.Sqlserver.Management.Smo.BackupDeviceItem . El constructor toma dos argumentos, el nombre del dispositivo de copia de seguridad y el tipo del dispositivo de copia de seguridad. A continuación, este objeto BackupDeviceItem se pasa al parámetro -BackupDevice del cmdlet Restore-SqlDatabase .

Ejemplo 8: Restauración de una base de datos desde el servicio Azure Blob Storage

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "https://mystorageaccountname.blob.core.windows.net/container/MyDB.bak" -SqlCredential "mySqlCredential"

Este comando restaura la base de datos mainDB completa desde el archivo del servicio windows Azure Blob Storage a la instancia de servidor Equipo\Instancia.

Parámetros

-BackupDevice

Especifica los dispositivos donde se almacenan las copias de seguridad. Este parámetro no se puede usar con el parámetro BackupFile . Use este parámetro si va a realizar una copia de seguridad en un dispositivo de cinta.

Type:BackupDeviceItem[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BackupFile

Especifica la ubicación o las ubicaciones donde se almacenan los archivos de copia de seguridad. Este parámetro es opcional. Si no se especifica, se busca en la ubicación de copia de seguridad predeterminada del servidor el nombre <>de la base de datos.trn para restauraciones de registros o <nombre> de base de datos.bak para todos los demás tipos de restauraciones. Este parámetro no se puede usar con el parámetro BackupDevice . Si va a realizar copias de seguridad en el servicio windows Azure Blob Storage (URL), se debe especificar este parámetro o el parámetro BackupDevice.

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BlockSize

Especifica el tamaño de bloque físico, en bytes, para la copia de seguridad. Los tamaños admitidos son 512, 1024, 2048, 4096, 8192, 16384, 32768 y 65536 (64 KB) bytes. El valor predeterminado es 65536 para dispositivos de cinta y 512 para todos los demás dispositivos.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BufferCount

Especifica el número total de búferes de E/S que se van a utilizar para la operación de copia de seguridad. Puede especificar cualquier entero positivo. Si no hay suficiente espacio de direcciones virtuales en el proceso de Sqlservr.exe para los búferes, recibirá un error de memoria insuficiente.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Checksum

Indica que se calcula un valor de suma de comprobación durante la operación de restauración.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ClearSuspectPageTable

Indica que la tabla de página sospechosa se elimina después de la operación de restauración.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionTimeout

Especifica el número de segundos que se esperarán a una conexión de servidor antes de que se produzca un error de tiempo de espera. El tiempo de espera debe ser un entero comprendido entre 0 y 65534. Si se especifica 0, los intentos de conexión no expiran.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContinueAfterError

Indica que la operación continúa cuando se produce un error de suma de comprobación. Si no se establece, la operación dará error cuando se produzca un error de suma de comprobación.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Especifica un objeto PSCredential que contiene las credenciales de un inicio de sesión de SQL Server que tiene permiso para realizar esta operación.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Database

Especifica el nombre de la base de datos que se va a restaurar. No se puede usar con el parámetro DatabaseObject . Cuando se usa este parámetro, también se deben especificar los parámetros Path, InputObject o ServerInstance .

Type:String
Position:2
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseFile

Especifica los archivos de base de datos de destino de la operación de restauración. Esto solo se usa cuando el parámetro RestoreAction se establece en Files. Cuando el parámetro RestoreAction se establece en Files, también se debe especificar el parámetro DatabaseFileGroups o DatabaseFiles .

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseFileGroup

Especifica los grupos de archivos de base de datos de destino de la operación de restauración. Esto solo se usa cuando el parámetro RestoreAction se establece en File. Cuando el parámetro RestoreAction se establece en Files, también se debe especificar el parámetro DatabaseFileGroups o DatabaseFiles .

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseObject

Especifica un objeto de base de datos para la operación de restauración.

Type:Database
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-FileNumber

Especifica el número de índice que se usa para identificar el conjunto de copia de seguridad de destino en el medio de copia de seguridad.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica el objeto de servidor de la instancia de SQL Server donde se produce la restauración.

Type:Server[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeepReplication

Indica que se conserva la configuración de replicación. Si no se establece, la operación de restauración omite la configuración de replicación.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxTransferSize

Especifica el número máximo de bytes que se van a transferir entre el medio de copia de seguridad y la instancia de SQL Server. Los valores posibles son múltiplos de 65536 bytes (64 KB), hasta 4194304 bytes (4 MB).

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MediaName

Especifica el nombre que identifica un conjunto de medios.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoRecovery

Indica que la base de datos se restaura en el estado de restauración. No se produce una operación de reversión y se pueden restaurar copias de seguridad adicionales.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoRewind

Indica que una unidad de cinta se deja abierta en la posición final cuando se completa la restauración. Si no se establece, la cinta se rebobina una vez que se completa la operación. Esto no se aplica a las restauraciones de disco.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Offset

Especifica las direcciones de página que se van a restaurar. Esto solo se usa cuando el parámetro RestoreAction se establece en OnlinePage.

Type:Int64[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Partial

Indica que la operación de restauración es una restauración parcial.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Indica que este cmdlet genera el objeto Smo.Backup usado para realizar la operación de restauración.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Especifica la ruta de acceso de la instancia de SQL Server en la que se va a ejecutar la operación de restauración. Este parámetro es opcional. Si no se especifica, se usa la ubicación de trabajo actual.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RelocateFile

Especifica una lista de objetos de archivo Smo.Relocate . Cada objeto consta de un nombre de archivo de copia de seguridad lógica y una ubicación de sistema de archivos físico. La restauración mueve la base de datos restaurada en la ubicación física especificada en el servidor de destino.

Type:RelocateFile[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReplaceDatabase

Indica que se crea una nueva imagen de la base de datos. Esto sobrescribe cualquier base de datos existente con el mismo nombre. Si no se establece, se producirá un error en la operación de restauración cuando ya exista una base de datos con ese nombre en el servidor.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Restart

Indica que este cmdlet reanuda una operación de restauración completada parcialmente. Si no se establece, el cmdlet reinicia una operación de restauración interrumpida al principio del conjunto de copia de seguridad.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RestoreAction

Especifica el tipo de operación de restauración que se realiza. Los valores válidos son:

  • Base de datos Se restaura la base de datos.
  • Archivos. Se restauran uno o varios archivos de datos. Se debe especificar el parámetro DatabaseFile o DatabaseFileGroup .
  • Registro. Se restaura el registro de translación.
  • OnlinePage. Se restaura una página de datos en línea para que la base de datos permanezca disponible para los usuarios.
  • OnlineFiles. Los archivos de datos se restauran en línea para que la base de datos permanezca disponible para los usuarios. Se debe especificar el parámetro DatabaseFile o DatabaseFileGroup .
Type:RestoreActionType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RestrictedUser

Indica que el acceso a la base de datos restaurada está restringido al rol fijo de base de datos db_owner y a los roles fijos de servidor dbcreator y sysadmin.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

Indica que este cmdlet genera un script de Transact-SQL que realiza la operación de restauración.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

Especifica el nombre de una instancia de SQL Server. Esta instancia de servidor se convierte en el destino de la operación de restauración.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SqlCredential

Especifica un objeto de credencial SQL Server que almacena información de autenticación. Si va a realizar una copia de seguridad en el servicio Blob Storage, debe especificar este parámetro. La información de autenticación almacenada incluye el nombre de la cuenta de almacenamiento y los valores de clave de acceso asociados. No especifique este parámetro para el disco o la cinta.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StandbyFile

Especifica el nombre de un archivo de deshacer que se usa como parte de la estrategia de creación de imágenes para una instancia de SQL Server.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopAtMarkAfterDate

Especifica la fecha que se va a usar con el nombre de marca especificado por el parámetro StopAtMarkName para determinar el punto de detención de la operación de recuperación.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopAtMarkName

Especifica la transacción marcada en la que se detiene la operación de recuperación. Se usa con el parámetro StopAtMarkAfterDate para determinar el punto de detención de la operación de recuperación. Los datos recuperados incluyen la transacción que contiene la marca . Si no se establece el valor StopAtMarkAfterDate , la recuperación se detiene en la primera marca con el nombre especificado.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopBeforeMarkAfterDate

Especifica la fecha que se va a usar con el parámetro StopBeforeMarkName para determinar el punto de detención de la operación de recuperación.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopBeforeMarkName

Especifica la transacción marcada antes de la cual se detiene la operación de recuperación. Se usa con el parámetro StopBeforeMarkAfterDate para determinar el punto de detención de la operación de recuperación.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ToPointInTime

Especifica el punto de conexión para la restauración del registro de base de datos. Esto solo se aplica cuando el parámetro RestoreAction se establece en Log.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UnloadTapeAfter

Indica que el dispositivo de cinta se vuelve a crear y descargar cuando se completa la operación. Si no se establece, no se intenta rebobinar ni descargar el medio de cinta. Esto no se aplica a las copias de seguridad de disco.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

Smo.Server

Especifica un SMO. Objeto de servidor que describe la instancia de SQL Server en la que se produce la operación de restauración.