Script en dos pasos para respaldar todas las bases de usuario, FULL + DIFF

Una vez por semana…

Modificar: SET @path = ‘C:\ARPETA\FULL\’ a lo que corresponda

/*============================================================================
 Script: Backup_User_databases
 Objetivo: Realiza un backup de todas las bases de datos de user
============================================================================*/

-- Declara Variables
DECLARE @db_name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name
DECLARE @commandLine char(500)

-- Seteo de variables
SET @path = 'C:\ARPETA\FULL\'
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

-- Comienzo --

------------------------------------
--PRINT 'Cargando el cursor...'
------------------------------------
DECLARE db_cursor CURSOR FOR  
SELECT LTRIM(RTRIM(name))
FROM sys.databases 
WHERE name NOT IN ('master','model','msdb', 'tempdb')
and state = 0 --Status is Online

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @db_name   

WHILE @@FETCH_STATUS = 0   
BEGIN   
		SET @fileName = @path + @db_name + '_' + @fileDate + '.BAK'  
		SET @commandLine = 'BACKUP DATABASE [' + @db_name + '] to disk = ''' 
                      + @fileName + ''' WITH FORMAT'
		------------------------------------
		--PRINT 'Backup de DB: ' + @db_name
		------------------------------------
		--print @commandLine
		exec(@commandLine)

       FETCH NEXT FROM db_cursor INTO @db_name   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor
			-- final --

Diariamente…

Modificar: SET @path = ‘C:\ARPETA\DIFF\’

/*============================================================================
 Script: Backup_User_databases
 Objetivo: Realiza un backup de todas las bases de datos de user (diferencial)
 ============================================================================*/

-- Declara Variables
DECLARE @db_name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name
DECLARE @commandLine char(500)

-- Seteo de variables
SET @path = 'C:\ARPETA\DIFF\'
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

			-- Comienzo --

------------------------------------
--PRINT 'Cargando el cursor...'
------------------------------------
DECLARE db_cursor CURSOR FOR  
SELECT LTRIM(RTRIM(name))
FROM sys.databases 
WHERE name NOT IN ('master','model','msdb', 'tempdb')
and state = 0 --Status is Online

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @db_name   

WHILE @@FETCH_STATUS = 0   
BEGIN   
		SET @fileName = @path + @db_name + '_diff_' + @fileDate + '.BAK'  
		SET @commandLine = 'BACKUP DATABASE [' + @db_name + '] to disk = ''' 
                      + @fileName + '''' + ' WITH DIFFERENTIAL'
		------------------------------------
		--PRINT 'Backup de DB: ' + @db_name
		------------------------------------
		--print @commandLine
		exec(@commandLine)

       FETCH NEXT FROM db_cursor INTO @db_name   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor
			-- final --

Y para hacerla completa, el respaldo de los logs…, cada hora o dos.
Modificar: SET @path = ‘C:\ARPETA\LOG\’

/*============================================================================
 Script: Backup_log_User_databases
 Objetivo: Realiza un backup log de todas las bases de datos de usuario 
============================================================================*/

-- Declara Variables
DECLARE @db_name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name
DECLARE @commandLine char(500)

-- Seteo de variables
SET @path = 'C:\ARPETA\LOG\'
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

			-- Comienzo --

------------------------------------
--PRINT 'Cargando el cursor...'
------------------------------------
DECLARE db_cursor CURSOR FOR  
SELECT LTRIM(RTRIM(name))
FROM sys.databases 
WHERE name NOT IN ('master','model','msdb', 'tempdb')
and state = 0 --Status is Online
and recovery_model_desc like 'FULL'

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @db_name   

WHILE @@FETCH_STATUS = 0   
BEGIN   
		SET @fileName = @path + @db_name + '_' + @fileDate + '.TRN'  
		SET @commandLine = 'BACKUP LOG [' + @db_name + '] to disk = ''' 
                       + @fileName + '''' + 'WITH FORMAT'
		------------------------------------
		--PRINT 'Backup de DB: ' + @db_name
		------------------------------------
		--print @commandLine
		exec(@commandLine)

       FETCH NEXT FROM db_cursor INTO @db_name   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor
			-- final --

Actualizacion 2012-07-06: Los scripts antes mencionados, tuneados y en scripts que generan los jobs de SQL Back Up SQL

Asi como lo ven 86% correctas

– A confirmar
= Mal

1. Cuando hablamos de vistas definidas con UNION ALL de las tablas miembro estructurada hablamos de:
Reporte de 2 tablas
Vistas generales
+Vistas particionadas
Archivos XML relacionados

2. Los parámetros de los procedimientos almacenados deben tener el carácter al inicio:
-“@”
“%”
“#”
“&”
🙂

3. Al colocar la opción FOR REPLICATION el procedimiento:
Sirve para replicar con otras bases de datos de otras instancias
-No se puede ejecutar por el suscriptor
No se puede hacer backup
Ninguna de las anteriores

4. Para poder actualizar una vista, se debe tener cuidado si:
=Si se cambia un tipo de dato de un campo
-Se trabaja con vistas particionadas
Se encuentra en la misma Dase de datos la información
=Ninguna de las anteriores

5. Cuál es el tamaño máximo de columnas en una vista:
256
320
5048
-1024

6. La opción EXPAND VIEWS se usa para:
Permisos a la vista por cualquier usuario
-El optimizador de consultas no use ningún índice de toda la consulta
Saber que la vista es anidada en otra vista
Cambiar los campos de la vista

7. La configuración SET_QUOTE_IDENTIFIER y SET_ANSI_NULLS se usa para:
=Oculta los errores
Analizar la vista cuando esta se realiza
0Mejora la ejecución de la vista
=Crea la vista con la posibilidad de ser una sub vista

8. Las funciones de control de error para un procedimiento almacenado son:
-ERROR_LINE
-ERROR_PROCEDURE
=TRY…. CATCH
RAISE

9. Para asegurarnos que ningún procedimiento almacenado entrara en conflicto se recomienda nombrarlos con el prefijo:
-sp_
db_
tb_
Todas las anteriores

10. Si se llega a quitar una vista o tabla de la cual dependa la vista el resultado es:
La agrega automáticamente
-Al momento de la ejecución da error
Envía Null en los campos de las tablas o vistas desaparecidas
Ninguna de las anteriores

11. Qué permiso se debe tener para crear un store procedure:
Permisos Create TempTable
Permiso de la base de datos model
Permisos Reference
Permisos Create Procedure en la base de datos

12. La información de errores se recupera mediante estas funciones desde cualquier sitio en el ámbito del bloque CATCH de una construcción TRY…CATCH. Las funciones de error devolverán en la variable ExceptionDB “Access Denegate” si se llaman desde fuera del ámbito de un bloque CATCH.
Verdadero
+Falso

13. El uso de la sugerencia de consulta EXPAND VIEWS o utilizar la sugerencia de tabla NOEXPAND se usa para:
Borrar en cascada una vista
-Exigir el uso de un índice en una vista
Exigir integridad referencial en las tablas
=Ninguna de las anteriores

14. Al usar en una vista WITH ENCRYPTION esta realiza:
No aparezca la información
-Muestra columnas calculadas con nombres cambiados
=Información cifrada en MD5
=Información cifrada en SHA1

15. Para manejar vistas indexadas se debe tener habilitados los parámetros:
-ANSI_PANDDING
EXPAND VIEWS
-ANSI_NULL
ERROR_LINE

 

Los hechos:

Comando ejecutado… un simple back up a disco, con stats en 1

BACKUP DATABASE base TO DISK = 'c:\sqldata\base.bak' WITH INIT, STATS=1

El resultado:



¡Noten que al llegar al 81% se reinicia el contador! y de ahi en mas sigue hasta 100% y termina sin mas ni mas ;P

Cuentenme si alguien vio alguna vez algo asi de raro ;P

Las respuestas marcadas con un guion (-) son a confirmar, las marcadas con dos guiones (-–) están verificadas, así como se muestra da un 80% de respuestas correctas.

1. Cuáles son las ediciones disponibles para la instalación de Hyper – V R2?
Windows 2008 R2 Standard, Enterprise y Datacenter (Full).
Hyper – V Server 2008 R2.
Windows 2008 R2 Standard, Enterprise y Datacenter (Core).
-Todas las anteriores.
Ninguna de las anteriores.

2. Son parte de las mejoras de Hyper – V Server 2008 R2 en comparación con Hyper – V Server 2008 V1:
Soporta más procesadores físicos y lógicos.
Soporte para alta disponibilidad.
Se puede asignar hasta 64 GB a una máquina virtual.
-La licencia de administración de SCVMM es gratuita.
Ninguna de las anteriores.

3. ¿La instalación de Server Core R2, necesita una licencia al igual que la versión full?
-Verdadero
Falso

4. Son roles que pueden ser instalados en Server Core:
-Active Directory ADDS
-Hyper – V.
Windows Deployment Services
Windows Server Backup
Windows Update Services

5. ¿Cuáles son las diferencias entre Hyper – V Server 2008 R2 y Windows Server 2008 R2 instalado como server Core?
-La funcionalidad de Hyper – V Server 2008 R2 es limitada.
-Windows 2008 R2 Server Core necesita una licencia.
La administración de ambas ediciones es diferente.
-Hyper – V Server 2008 R2 tiene instalado el rol de Hyper – V en forma predeterminada.

6. ¿En Windows Server 2008 R2 en la instalación full para instalar Hyper – V es?
Una descarga gratuita.
Una característica, se puede instalar desde server manager.
-Un rol, se puede instalar desde server manager.
Ninguna de las anteriores

7. El asistente para configuración utilizado en Windows 2008 R2 Server Core y Hyper – V Server es:
RSCONFIG.EXE
-SCONFIG.EXE
HVCONFIG.EXE
No existe un asistente se debe configurar todo desde la línea de comando.

8. Se necesita realizar una instalación con soporte de alta disponibilidad (host cluster). ¿Qué ediciones de Hyper – V R2 puedo utilizar?
-Hyper – V Server 2008 R2.
Windows 2008 R2 Standard instalación Full, Core.
-Windows 2008 R2 Enterprise instalación Full, Core.
-Windows 2008 R2 Datacenter Instalación Full, Core.

9. Son características de Hyper – V Server 2008 R2:
-Es edición gratuita de Windows Server 2008 R2 con el rol de Hyper – V Instalado.
Solo soporta 4 máquinas virtuales ejecutadas en forma simultánea.
-Está basado en la instalación Server Core de Windows 2008 R2.
Windows 2008 R2 Datacenter Instalación Full, Core.

10. Se realizó la instalación del rol de Hyper – V en Windows 2008 Enterprise Instalación Core, se necesita actualizar a la versión full de Windows 2008 R2 Enterprise. ¿Puede hacerse en forma directa?
Verdadero
-Falso

11. ¿Cuáles son las herramientas de administración de Hyper – V R2?
-Hyper – V Manager.
System Center Virtual Machine Manager 2008.
-System Center Virtual Machine Manager 2008 R2
Todas Las Anteriores.

12. Con Hyper – V Server 2008 R2 es posible utilizar la funcionalidad Live Migration.
-Verdadero
Falso

13. Se dispone de una licencia de Windows Server 2008 R2 Standard, se realiza una instalación full instalando solo el rol de Hyper – V. ¿Cuántas instancias del sistema operativo virtualizadas puedo ejecutar?
2 instancias.
Ninguna instancia.
-1 instancia.
Sin límite de instancias

14. Son ventajas de realizar la instalación Core de Windows Server 2008 R2 o utilizar Hyper – V Server 2008 R2:
-Reduce el mantenimiento de software ya ejecuta menos servicios.
La administración es más compleja.
-La superficie de ataque es menor, mejorando así la seguridad.
Aumenta el uso de memoria RAM.

15. En Hyper – V Server 2008 R2 y en Hyper – V Server 2008 R2 esta soportado Powershell.
-Verdadero
Falso