SQL – Mover registro de transacciones (log) de ubicación

Probado en: SQL 2008 R2 Standard

En un servidor SQL, cuando queremos mover el archivo de transacciones (log) de una base de datos a otra carpeta, habitualmente para cambiarla de unidad, lo podemos hacer siguiendo los siguientes pasos:

1.- Comprobamos la ubicación actual de los archivos de la bases de datos

USE MyDataBase
GO
sp_helpfile
GO

2.- Ponemos la base de datos en modo usuario único y la separamos (detach)

Use MASTER
GO

-- Ponemos la base de dadatos en modo usuairo único 
ALTER DATABASE MyDataBase
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
GO

-- Hacemos un 'detach' de la base de datos 
sp_detach_db 'MyDataBase'
GO

Continue reading


SQL – Eliminar varias vistas

Si queremos eliminar múltiples vistas a la vez hemos de crear un pequeño script.
A través de la tabla de sistema INFORMATION_SCHEMA.VIEWS obtenemos el nombre de las vistas deseadas.

Por ejemplo, si queremos eliminar todas las vistas que su nombre empieza por Test:

  
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+' drop view '+table_name from INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME LIKE 'Test%'
exec (@sql)




Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)


SQL – Obtener tamaño base de datos

Con el comando de T-SQL podemos visualizar el tamaño que ocupa la base de datos actual.

database_size -> tamaño de la actual base de datos, incluye los archivos de datos y log
unallocated space -> espacio en la base de datos que no ha estado reservado para objectos de la base de datos

reserved -> cantidad total de espacio asignado por objetos en la base de datos
data -> cantidad total de espacio usado por los datos
index_size -> cantidad total de espacio usado por los índicies
unused -> cantidad total de espacio reservado para objetos en la base de datos, pero todavía no usados


EspacioBD






Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)


Identificar el puerto TCP IP de la instancia del SQL Server

Cómo saber cual es el puerto TCP IP que usa la instancia en concreto del servidor SQL Server?
Hay varias opciones.

1) A través del SQL Configuration Manager
– Abrimos el SQL Configuration Manager (Inicio -> Programas -> Microsoft SQL Server 2008 R2 -> Herramientas de Configuración -> SQL Server Configuration Manager)
– Expandimos Configuración de Red SQL Server y seleccionamos la instancia deseadas (Protocols for nombreInstancia). Continue reading


Crear archivo de pruebas des de SQL

Aplicable a SQL 2008 y SQL 2008 R2

Cómo crear un fichero de texto de pruebas des de comandos SQL?
En ocasiones necesitamos saber si des de el SQL tenemos permisos parar crear un archivo en una determinada carpeta, ya sea del propio servidor o en cualquier otra carpeta compartida de la red, y una forma muy facil para hacerlo es utilizando xp_cmdshell:

exec master..xp_cmdshell 'echo hola > c:archivo.txt'

Continue reading


SQL 2008 – Como mover tempdb, ejemplo.

Aplicable a SQL 2008 y SQL 2008 R2

En ocasiones en la unidad donde tenemos almacenadas la base de datos del sistemea tempdb se queda sin espacio. Puede ser debido a consultas muy costosos que hacen que el tempdb aumente considerablemente de tamaño. En otras ocasiones, por temas de renidimiento, necesitamos tener ubicada la tempdb en una unidad distinta a la unidad donde se encuentran las bases de datos de trabajo.

En estos cosos nos puede ser de ayuda cambiar la base de datos del sistema tempdb a otra unidad del servidor.

Cómo mover la tempdb? Cómo cambiar de unidad la tempdb?
Continue reading


SQL 2008 – Reducir tamaño registro de transacciones (log)

Aplicable a SQL 2008 i SQL 2008 R2

Cómo puedo reducir el tamaño del log (registro de trasnacciones .ldf) de una base de datos?

Si las bases de datos están en modelo de recuperación simple:

USE MYDATABASE;
GO
DBCC SHRINKFILE('MYDATABASE_log',1);
GO

Si las bases de datos están en moddelo de recuperación completo, primero tenemos que pasar a modo recuperación simple, reducir el tamaño del registro de transaccinoes log y volverlo al modo recuperación completo:

USE MYDATABASE;
GO
ALTERDATABASE MYDATABASE SET RECOVERY SIMPLE
GO
DBCC SHRINKFILE('MYDATABASE_log',1);
GO
ALTERDATABASE MYDATABASE SET RECOVERY FULL
GO