Este sitio utiliza cookies con la finalidad de mejorar sus servicios prestados, tales como mostrar notificaciones u ofertas nuevas, pero las cookies no serán generadas por este sitio a menos que acepte su uso. Para ver detalle de las cookies utilizadas y su finalidad consulta nuestra política de cookies
Septiembre 21, 2023 | 08:00 am
Si necesitas trasladar una empresa de un servidor CONTPAQi a otro, la forma más sencilla consiste en hacer una copia de seguridad de la empresa y luego restaurarla en el nuevo servidor. Sin embargo, cuando se trata de migrar un gran número de empresas, la opción más eficiente es llevar a cabo un proceso de manera masiva, es decir adjuntando las bases de datos en el nuevo servidor.
El procedimiento descrito en este artículo contempla solo bases de datos SQL Server de los sistemas Contabilidad-Bancos y CONTPAQi Nóminas; pero puede servir de guía para aplicarlo a otros sistemas como CONTPAQi Comercial.
La instalación de SQL Server en el servidor nuevo (donde serán adjuntadas las bases) deberá estar en la misma versión o superior al que existe en el servidor anterior (de donde provienen las bases de datos).
Este procedimiento presupone tener instalado y que se tiene conocimiento básico en el uso del visor de bases de datos SQL Management Studio Express.
Y como lo indica CONTPAQi, el uso de consultas SQL es bajo el propio riesgo de quien las utiliza.
use generalessql
declare @aliasempresa nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta='C:\Archivos de programa\Microsoft SQL Server\MSSQL.X\MSSQL\Data\'
DECLARE Empresas CURSOR FOR select aliasbdd from listaempresas
OPEN Empresas FETCH NEXT FROM Empresas into @aliasempresa;
WHILE @@FETCH_STATUS = 0 BEGIN set @MDF =@ruta+@aliasempresa+'.mdf'
set @LDF =@ruta+@aliasempresa+'_log.ldf' EXEC sp_attach_db @dbname = @aliasempresa, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @aliasempresa;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
La X en la carpeta MSSQL.X (en la línea 4) representa el número que corresponde al directorio de la instancia.
Si realizaste correctamente el paso 1 del procedimiento anterior, ya deben estar las bases de datos correspondientes al ADD de todas las empresas en el directorio donde se requieren.
Lo que debes saber para este procedimiento es que el ADD de cada empresa está conformado por 4 bases de datos, estas bases de datos las puedes ver en archivos que tienen la siguiente estructura:
Cada uno de estos archivos existe tanto con extensión .mdf como con extensión .ldf, es decir que por cada empresa deberán existir 8 archivos en la ruta donde se localizan las bases de datos de la instancia de SQL Server que usan los sistemas de CONTPAQi. Esta ruta se encuentra normalmente en:
C:\Program Files\Microsoft SQL Server\mssql.x\MSSQL\DATA\
la x en la carpeta mssql.x representa el número que corresponde al directorio de la instancia.
Los archivos con extensión .ldf pueden tener una de 3 posibles estructuras:
Identifica cuál de las 3 estructuras tienen tus archivos (puede ser más de una), ya que para continuar deberás aplicar al menos 1 de los 3 siguientes procedimientos.
Procedimiento para archivos .ldf sin sufijo ni prefijo
use DB_Directory
declare @DB_DocumentsMetadata nvarchar(1000)
declare @DB_DocumentsContent nvarchar(1000)
declare @DB_OthersMetadata nvarchar(1000)
declare @DB_OthersContent nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta='C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\DATA\'
DECLARE Empresas CURSOR FOR
select DB_DocumentsMetadata,DB_DocumentsContent,DB_OthersMetadata,DB_OthersContent from DatabaseDirectory
OPEN Empresas
FETCH NEXT FROM Empresas into @DB_DocumentsMetadata, @DB_DocumentsContent, @DB_OthersMetadata, @DB_OthersContent;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@DB_DocumentsMetadata+'.mdf'
set @LDF =@ruta+@DB_DocumentsMetadata+'.ldf'
EXEC sp_attach_db @dbname = @DB_DocumentsMetadata, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_DocumentsContent+'.mdf'
set @LDF =@ruta+@DB_DocumentsContent+'.ldf'
EXEC sp_attach_db @dbname = @DB_DocumentsContent, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_OthersMetadata+'.mdf'
set @LDF =@ruta+@DB_OthersMetadata+'.ldf'
EXEC sp_attach_db @dbname = @DB_OthersMetadata, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_OthersContent+'.mdf'
set @LDF =@ruta+@DB_OthersContent+'.ldf'
EXEC sp_attach_db @dbname = @DB_OthersContent, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @DB_DocumentsMetadata,@DB_DocumentsContent,@DB_OthersMetadata,@DB_OthersContent;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
La X en la carpeta MSSQL.X (en la línea 7) representa el número que corresponde al directorio de la instancia.
Procedimiento para archivos .ldf Con prefijo mastlog
use DB_Directory
declare @DB_DocumentsMetadata nvarchar(1000)
declare @DB_DocumentsContent nvarchar(1000)
declare @DB_OthersMetadata nvarchar(1000)
declare @DB_OthersContent nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta='C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\DATA\'
DECLARE Empresas CURSOR FOR
select DB_DocumentsMetadata,DB_DocumentsContent,DB_OthersMetadata,DB_OthersContent from DatabaseDirectory
OPEN Empresas
FETCH NEXT FROM Empresas into @DB_DocumentsMetadata, @DB_DocumentsContent, @DB_OthersMetadata, @DB_OthersContent;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@DB_DocumentsMetadata+'.mdf'
set @LDF =@ruta+mastlog.ldf+@DB_DocumentsMetadata+'.ldf'
EXEC sp_attach_db @dbname = @DB_DocumentsMetadata, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_DocumentsContent+'.mdf'
set @LDF =@ruta+mastlog.ldf+@DB_DocumentsContent+'.ldf'
EXEC sp_attach_db @dbname = @DB_DocumentsContent, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_OthersMetadata+'.mdf'
set @LDF =@ruta+mastlog.ldf+@DB_OthersMetadata+'.ldf'
EXEC sp_attach_db @dbname = @DB_OthersMetadata, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_OthersContent+'.mdf'
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_DocumentsMetadata,@DB_DocumentsContent,@DB_OthersMetadata,@DB_OthersContent;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
La X en la carpeta MSSQL.X (en la línea 7) representa el número que corresponde al directorio de la instancia.
Procedimiento para archivos .ldf Con sufijo _log
use DB_Directory
declare @DB_DocumentsMetadata nvarchar(1000)
declare @DB_DocumentsContent nvarchar(1000)
declare @DB_OthersMetadata nvarchar(1000)
declare @DB_OthersContent nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta='C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\DATA\'
DECLARE Empresas CURSOR FOR
select DB_DocumentsMetadata,DB_DocumentsContent,DB_OthersMetadata,DB_OthersContent from DatabaseDirectory
OPEN Empresas
FETCH NEXT FROM Empresas into @DB_DocumentsMetadata, @DB_DocumentsContent, @DB_OthersMetadata, @DB_OthersContent;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@DB_DocumentsMetadata+'.mdf'
set @LDF =@ruta+@DB_DocumentsMetadata+'_log.ldf'
EXEC sp_attach_db @dbname = @DB_DocumentsMetadata, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_DocumentsContent+'.mdf'
set @LDF =@ruta+@DB_DocumentsContent+'_log.ldf'
EXEC sp_attach_db @dbname = @DB_DocumentsContent, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_OthersMetadata+'.mdf'
set @LDF =@ruta+@DB_OthersMetadata+'_log.ldf'
EXEC sp_attach_db @dbname = @DB_OthersMetadata, @filename1=@MDF, @filename2 = @LDF
set @MDF =@ruta+@DB_OthersContent+'.mdf'
set @LDF =@ruta+@DB_OthersContent+'_log.ldf'
EXEC sp_attach_db @dbname = @DB_OthersContent, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @DB_DocumentsMetadata,@DB_DocumentsContent,@DB_OthersMetadata,@DB_OthersContent;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
La X en la carpeta MSSQL.X (en la línea 7) representa el número que corresponde al directorio de la instancia.
Y otros sistemas CONTPAQi:
* Renovaciones * Licencias nuevas * Usuarios adicionales
* Ofertas vigentes de la marca y exclusivas buddysis.com
La X en la carpeta MSSQL.X representa el número que corresponde al directorio de la instancia
use nomGenerales
declare @aliasEmpresa nvarchar(1000)
declare @MDF nvarchar(1000),@LDF nvarchar(1000),@ruta nvarchar(1000)
set @ruta='C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data\'
DECLARE Empresas CURSOR FOR
select rutaempresa from nom10000
OPEN Empresas
FETCH NEXT FROM Empresas into @aliasEmpresa;
WHILE @@FETCH_STATUS = 0
BEGIN
set @MDF =@ruta+@aliasEmpresa+'.mdf'
set @LDF =@ruta+@aliasEmpresa+'_log.ldf'
EXEC sp_attach_db @dbname = @aliasEmpresa, @filename1=@MDF, @filename2 = @LDF
FETCH NEXT FROM Empresas into @aliasEmpresa;
END;
CLOSE Empresas;
DEALLOCATE Empresas;
La X en la carpeta MSSQL.X (en la línea 4) representa el número que corresponde al directorio de la instancia
Si tienes cualquier duda para realizar este procedimiento o requieres que te apoye de forma remota me contactas por WhatsApp.
Si te fue útil compártelo:
Te notificamos sobre nuevos contenidos relacionados:
También te puede interesar
Publicación de puertos de conexión CONTPAQi® y opciones para trabajar desde internet
Si requieres trabajar tus sistemas CONTPAQi® en red, debes abrir los siguientes puertos
Extrae datos de tus CFDI XML a Excel de forma rápida
Te traigo una aplicación que te ayudará a extraer información de tus archivos XML de forma masiva, de una manera sencilla y rápida
CONTPAQi® Nóminas liberación versión 17.2.1
Actualización automática tablas ISR y Subsidio mensual, Integración CONTPAQi Colabora y otras mejoras
CONTPAQi® Factura Electrónica 12.0.2 Resumen de mejoras
Desglose de todos los impuestos, seguridad de contraseñas, colores en vistas, modo consulta, entre otras
Clima laboral
CONTPAQi Evalúa
Gestión del negocio
CuadroMI
CONTPAQi Despachos
Capacitación
CONTPAQi Kursa
Servicios
Desarrollo de software
Soporte técnico
Asesoría Fiscal Laboral
CONTPAQi Escritorio Virtual