Inicio > Transact-SQL > Script para copia de seguridad de todos los Filegroups dentro de una base de datos

Script para copia de seguridad de todos los Filegroups dentro de una base de datos


  Un simple script para copia de seguridad de todos los Filegroups dentro de una base de datos.

Esto ayudará en entornos en los Filegroups y partioning se usan para permitir una base de datos de volúmenes lapso de archivo o razones de rendimiento.

Eso sólo será posible con bases de datos utilizando el modo FULL recovery (Recuperación completa)

1) Cambiar el parámetro @DestinationPath con el parametro de tu directorio
2) Ejecutar el script contra la base de datos que desea copia de seguridad

DECLARE @DestinationPath NVARCHAR(1000)
DECLARE @BeginBackupTimestamp VARCHAR(20)

— Destino donde se almacenara la copia de seguridad
SET @DestinationPath = ‘\\SERVER-01\sqlbackupshare$\’
SET @BeginBackupTimestamp =  REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(30),GETDATE(),20),’-‘,”),’:’,”),’ ‘,’_’)

IF EXISTS (SELECT NAME FROM sys.databases WHERE name = ‘#backupcommand’)
  BEGIN
   DROP DATABASE
#backupcommand
  END

 CREATE TABLE #backupcommand (id INT IDENTITY(1,1), command VARCHAR(1000))

 INSERT INTO #backupcommand (command)
  SELECT ‘BACKUP DATABASE [‘ + DB_NAME()+‘] FILEGROUP = ”’ + name + ”’ TO DISK = ”’ + @destinationpath  + DB_NAME() + ‘_’ + @beginbackuptimestamp +  ‘_’ + name +‘.BAK”’
  FROM sys.filegroups ORDER BY data_space_id

 DECLARE @intCounter INT
 SET @intCounter = 0

 — Se crea un cursor para recorrelo y crear la copia de seguridad
 DECLARE @intMaxId INT
 SELECT @intMaxId = MAX(ID) FROM #backupcommand
 DECLARE @CurrentCommand VARCHAR(1000)

 WHILE (@intCounter <= @intMaxId)
  BEGIN
   SET @intCounter = @intCounter + 1
   SELECT @CurrentCommand = command FROM #backupcommand
   WHERE id = @intCounter
   — Utilizar RAISERROR aquí para visualizar de inmediato
   RAISERROR (@CurrentCommand, 10, 1) WITH NOWAIT
   — Hacer la copia de seguridad
   EXEC  (@CurrentCommand)   
  END
GO

Categorías:Transact-SQL
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: