
Modificación de una base de datos – archivos
- Los archivos de las bases de datos en SQL Server puede ubicarse en diferentes discos y carpetas, además de agruparlos en Grupos de archivos. En este post aprenderemos a agregar, modificar y eliminar estos archivos.
- Los archivos de la base de datos son de tres tipos, el primario, los secundarios y los archivos de transacciones, en los dos primeros se almacenarán los datos guardados en la base de datos, se recomienda que sean mas de uno en cada grupo cuando se proyecta un crecimiento acelerado de la base de datos.
- Los archivos de transacciones no se ubican en grupos de archivos.
- Ningún archivo puede tener un tamaño inicial menor al que se ha especificado en la base de datos model.
- Es recomendable que el nombre que usará SQL Server sea igual al que se visualiza en el sistema operativo, estos se especifican en los parámetros Name para el nombre de SQL Server y Filename para el que se visualiza en el Sistema Operativo.
Para modificar la base de datos y trabajar con archivos se puede:
- Agregar: Archivo Secundario
Alter database NombreBaseDatos add file (…) to filegroup GRUPO
- Agregar: Archivo de Transacciones
Alter database NombreBaseDatos add log file (…)
- Modificar:
Alter Database NombreBaseDatos modify file (Name…. nuevas opciones)
- Eliminar:
Alter DataBase NombreBaseDatos remove file NombreArchivo
El archivo a borrar debe estar vacío, es decir no tener tablas, además no ser el único archivo de un grupo por defecto.
- Reducir el tamaño de un archivo
DBCC Shrinkfile(NombreArchivo, Tamaño)
El nuevo tamaño no puede ser menor al de model.
Ejercicios
1. Creamos primero la base de datos
xp_create_subdir ‘C:\BD’
go
xp_create_subdir ‘D:\Data\Respaldo’
go
Create Database SistemasE
on Primary
(Name=’S01′,Filename=’C:\BD\S01.mdf’, Size = 10MB, Maxsize= 200GB,
Filegrowth= 5MB),
(Name=’S02′,Filename=’D:\Data\S02.ndf’),
filegroup VENTAS
(Name=’S03′,Filename=’D:\Data\Respaldo\S03.ndf’)
LOG ON
(Name=’L01′,Filename=’C:\BD\L01.ldf’)
go
2. Agregar grupos PERSONAL y FINANZAS
Alter database SistemasE add filegroup PERSONAL
Alter database SistemasE add filegroup FINANZAS
go
3. Agregar dos archivos al grupo Finanzas
Alter database SistemasE
add file (Name=’Datos01′, Filename=’C:\BD\Datos01.ndf’),
(Name=’Datos02′, Filename=’C:\BD\Datos02.ndf’)
to filegroup Finanzas
go
5. Para listar los Grupos y archivos
select * from sys.filegroups
select * from sys.database_files
go
El script que muestra mejor la lista es como sigue:
select A.name, a.physical_name,G.name
from sys.database_files As A
join sys.filegroups As G on A.data_space_id = G.data_space_id
go
6. Cambiar el nombre del archivo Datos01 a Finanzas01
Alter database SistemasE
modify file (Name=’Datos01′, newname = ‘Finanzas01’)
go
7. Asignar el tamaño de 30MB al archivo Finanzas01
Alter database SistemasE
modify file (Name=’Finanzas01′, Size = 30MB)
go
8. Ver los archivos del grupo Finanzas
sp_helpfilegroup FINANZAS
go
9. Reducir el archivo Finanzas01 a 10MB
DBCC ShrinkFile (Finanzas01, 10)
go
Note el nuevo tamaño de 10MB
10. Agregar el archivo de registro de transacciones Pasos.ldf
if not exists (select * from sys.database_files where name = ‘Pasos’)
Begin
alter database SistemasE add log file (name=’Pasos’, Filename=’C:\bd\Pasos.ldf’)
End
go


