⚐ Nota: Antes de empezar por favor detener todos los servicios que le apunten a la base de datos y sacar un backup de la base de datos.
Recursos necesarios
En la Knowledge base de Aranda puede descargar el paquete necesario para llevar a cabo la migración.
Carpeta con collatemigr con collatemigr.exe
Ejecutable que modifica el collate, data/tables_collation Collate especial para algunas tablas de adm
- Verifique que la base de datos se encuentra en un collate diferente a SQL_Latin1_General_CP1_CI_AI. Clic derecho sobre la base de datos > propiedades
-
Verifique que la base de datos se encuentre en la versión 9.5.13
-
Haciendo uso del sqlpackage.exe verifique que la base de datos no tiene diferencias a nivel de schema. Para información adicional
-
Si se presentan diferencias actualice el schema de la base de datos. Si no puede actualizar el schema, detenga el proceso y contacte a soporte.
-
Ejecute el siguiente script en la base de datos
SELECT id, MIN(id) OVER(PARTITION BY product_id, version ORDER BY id) min_id, version INTO #SOFTWARE_IDS FROM ( SELECT id, product_id, SUBSTRING(version, 1, PATINDEX('%[abcdefghijklmniopqrstuvwxyzz0123456789][^0123456789./()_-]%', version)) version FROM AAM_SOFTWARE_VERSION WHERE version LIKE '%[^abcdefghijklmniopqrstuvwxyz0-9./ ()_-]%' UNION SELECT id, product_id, version FROM AAM_SOFTWARE_VERSION WHERE version in ( SELECT SUBSTRING(version, 1,PATINDEX('%[abcdefghijklmniopqrstuvwxyzz0123456789][^0123456789./ ()_-]%', version)) version FROM AAM_SOFTWARE_VERSION WHERE version LIKE '%[^abcdefghijklmniopqrstuvwxyz0-9./ ()_-]%') ) t; UPDATE ds SET ds.software_id = si.min_id FROM AAM_DEVICE_SOFTWARE ds JOIN #SOFTWARE_IDS si ON si.id = ds.software_id; UPDATE fv SET fv.software_id = si.min_id FROM AAM_FILE_VERSION fv JOIN #SOFTWARE_IDS si ON si.id = fv.software_id; UPDATE sv SET sv.parent_id = si.min_id FROM AAM_SOFTWARE_VERSION sv JOIN #SOFTWARE_IDS si ON si.id = sv.product_id and sv.parent_id is not null; UPDATE fr SET fr.software_id = si.min_id FROM ASM_FILE_RULE fr JOIN #SOFTWARE_IDS si ON si.id = fr.software_id; UPDATE ls SET ls.software_id = si.min_id FROM ASM_LICENSE_SOFTWARE ls JOIN #SOFTWARE_IDS si ON si.id = ls.software_id; UPDATE cl SET cl.software_version_id = si.min_id FROM ASM_SOFT_USAGE_CONFIG_LIST cl JOIN #SOFTWARE_IDS si ON si.id = cl.software_version_id; UPDATE sc SET sc.software_id = si.min_id FROM ASM_SOFTWARE_CATEGORY sc JOIN #SOFTWARE_IDS si ON si.id = sc.software_id; UPDATE fs SET fs.software_version_id = si.min_id FROM ASM_SOFTWARE_FILE_SUGGES fs JOIN #SOFTWARE_IDS si ON si.id = fs.software_version_id; UPDATE sg SET sg.software_id = si.min_id FROM ASM_SOFTWARE_GROUP sg JOIN #SOFTWARE_IDS si ON si.id = sg.software_id; UPDATE sr SET sr.software_id = si.min_id FROM ASM_SOFTWARE_RULE sr JOIN #SOFTWARE_IDS si ON si.id = sr.software_id; DELETE sv FROM AAM_SOFTWARE_VERSION sv JOIN #SOFTWARE_IDS si ON si.id = sv.id WHERE sv.version LIKE '%[^abcdefghijklmniopqrstuvwxyz0-9./ ()_-]%'AND sv.id > si.min_id; UPDATE sv SET sv.version=si.version FROM AAM_SOFTWARE_VERSION sv JOIN #SOFTWARE_IDS si ON si.id = sv.id WHERE sv.version LIKE '%[^abcdefghijklmniopqrstuvwxyz0-9./ ()_-]%'AND sv.id = si.min_id; DROP TABLE #SOFTWARE_IDS
-
Exporte un bacpac de la base de datos, este proceso puede demorar dependiendo de la cantidad de datos. Clic derecho sobre la base de datos > task > exportar data-tier
-
Ejecute desde una consola de Windows la siguiente línea, desde la ubicación del ejecutable collatemigr
collatemigr -file “[ruta]\ADMAranda.bacpac”
Ruta= ubicación del bacpac
-
Finalizado el proceso importe nuevamente el bacpac.
Sugerencia: puede importar la base de datos con un nombre diferente al original si desea conservar un respaldo adicional -
Terminada la importación de la base de datos, realice una nueva importación, comparando la información, usando
Sqlpackage.exe
y verifique que no existan diferencias. En caso contrario, actualice las diferencias usandoSqlpackage.exe
, previo a realizar la actualización de versión en la base de datos. - Una vez no se tengan diferencias continúe con la actualización de la base de datos