Este proceso nos ayuda a optimizar mucho tiempo para el proceso de mantenimiento o migración de los sistemas.
A continuación menciono el proceso para poder adjuntar masivamente las base de datos del ADD esto para el nuevo visor mediante SQL server
1. Copiar la base de datos ADD_catalogos.mdf, DB_Directory.mdf y .ldf para ambos, y las bases de datos de los ADD (Son 4: DB_DocumentsMetadata, DB_DocumentsContent, DB_OthersMetadata, DB_OthersContent todas con su respectivo .mdf y .ldf ) de las empresas de la instancia original a la carpeta DATA de la nueva instancia.
2. Mediante SQL Management Studio, Adjuntar la base de datos DB_Directory y ADD_catalogos.mdf
3. Ejecutar las consultas para adjuntar las bases de datos según corresponda. (Modificando la ruta por la nueva donde se encuentran las bases de datos ejemplo: C:\Program Files\Microsoft SQL Server\MSSQL10_50.COMPAC_R2\MSSQL\DATA\’):
Nota: En total son 4 bases de datos por cada ADD y tienen la siguiente estructura:
- document_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content
- document_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_metadata
- other_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content
- other_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_metadata
Las bases de datos se componen de 2 archivos .mdf y .ldf.
Los archivos .ldf pueden tener 3 estructuras, por ejemplo:
Caso 1: Cuando el nombre del archivo .ldf tiene su terminación correcta.
Caso 2: Cuando el nombre del archivo .ldf tiene sufijo _log
Caso 3: Cuando el nombre del archivo .ldf tiene prefijo mastlog.ldf
- other_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content.ldf
- other_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content_log.ldf
- mastlog.ldfother_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_content.ldf
Al ejecutar el query para restaurar las base de datos están cada escenario separado por una linea de comentario — ( ejecutar el query quitando los guiones de comentario (– ) ) , y ejecutar el query por cada escenario .
Adjuntar las base de datos DB_OthersMetadata
use DB_Directory
declare @DB_DocumentsMetadata nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta=’C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.COMPAC2014\MSSQL\DATA\’
DECLARE Empresas CURSOR FOR
select DB_DocumentsMetadata from DatabaseDirectory
OPEN Empresas
FETCH NEXT FROM Empresas into @DB_DocumentsMetadata;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@DB_DocumentsMetadata+’.mdf’
— set @LDF =@ruta+@DB_DocumentsMetadata+’.ldf’
— set @LDF =@ruta+@DB_DocumentsMetadata+’_log.ldf’
— set @LDF =@ruta+’mastlog.ldf’+@DB_DocumentsMetadata+’.ldf’
EXEC sp_attach_db @dbname = @DB_DocumentsMetadata, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @DB_DocumentsMetadata;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
Adjuntar las base de datos DB_DocumentsContent
use DB_Directory
declare @DB_DocumentsContent nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta=’C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.COMPAC2014\MSSQL\DATA\’
DECLARE Empresas CURSOR FOR
select DB_DocumentsContent from DatabaseDirectory
OPEN Empresas
FETCH NEXT FROM Empresas into @DB_DocumentsContent;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@DB_DocumentsContent+’.mdf’
— set @LDF =@ruta+@DB_DocumentsContent+’.ldf’
— set @LDF =@ruta+@DB_DocumentsContent+’_log.ldf’
— set @LDF =@ruta+’mastlog.ldf’+@DB_DocumentsContent+’.ldf’
EXEC sp_attach_db @dbname = @DB_DocumentsContent, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @DB_DocumentsContent;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
Adjuntar las base de datos DB_OthersMetadata
use DB_Directory
declare @DB_OthersMetadata nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta=’C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.COMPAC2014\MSSQL\DATA\’
DECLARE Empresas CURSOR FOR
select DB_OthersMetadata from DatabaseDirectory
OPEN Empresas
FETCH NEXT FROM Empresas into @DB_OthersMetadata;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@DB_OthersMetadata+’.mdf’
–set @LDF =@ruta+@DB_OthersMetadata+’.ldf’
–set @LDF =@ruta+@DB_OthersMetadata+’_log.ldf’
set @LDF =@ruta+’mastlog.ldf’+@DB_OthersMetadata+’.ldf’
EXEC sp_attach_db @dbname = @DB_OthersMetadata, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @DB_OthersMetadata;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
Adjuntar las base de datos DB_OthersContent
use DB_Directory
declare @DB_OthersContent nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta=’C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.COMPAC2014\MSSQL\DATA\’
DECLARE Empresas CURSOR FOR
select DB_OthersContent from DatabaseDirectory
OPEN Empresas
FETCH NEXT FROM Empresas into @DB_OthersContent;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@DB_OthersContent+’.mdf’
— set @LDF =@ruta+@DB_OthersContent+’.ldf’
— set @LDF =@ruta+@DB_OthersContent+’_log.ldf’
— set @LDF =@ruta+’mastlog.ldf’+@DB_OthersContent+’.ldf’
EXEC sp_attach_db @dbname = @DB_OthersContent, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @DB_OthersContent;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
4. Verificar se hayan adjuntado correctamente las bases de datos.
5. Cerrar SQL Management Studio.
6. Verificar en el sistema correspondiente que la empresa abra su ADD