AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Прочие вопросы
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.07.2008, 14:39   #1  
FliN is offline
FliN
Участник
 
2 / 10 (1) +
Регистрация: 24.12.2007
Постановка задачи.

В результате работы отчета по репликации данных между двумя NAVI базами данных произошел сбой и часть данных попала из одной в другую, часть нет. Для продолжения работы необходимо произвести синхронизации данных.
Дело осложняется наличием ряда таблиц реплицирующихся по флагу модификации, а также возможностью удаления строк из таблиц.



Решение.

Для сравнения данных между двумя базами системы NAVISION использование стандартных средств системы не достаточно. Поскольку отчет по проверке баз в «лоб» работает крайне медленно и при значительном размере баз займет вечность.

С другой стороны использование каких-то внешних инструментов не только затруднено необходимостью наличия лицензии (и не возможности её установки у клиента), но тем что сами эти инструменты внешние по отношению к системе.

Использование Dataport-ов отчасти способно решить проблему, но только в случае если надеться разделитель для столбцов, и если у вас есть изрядная выдержка для проверки всего этого ясным взором.

Все может осложниться в ситуации, когда нет полной уверенности в корректности самого функционала и задача сводиться не только к нахождению различий в данных, но и ошибки функционала.


Результатом может стать действительно головная боль на несколько дней.


Лекарством от мигрени может стать некий взгляд со стороны, а именно со стороны MS SQL. Конечно, для этого понадобиться некоторое количество программных средств и понимания ситуации и причины её возникновения, но это проще вглядывание в километры текстовых файлов.



Рецепт на удивление прост – MS SQL, ApexSQL Diff и терпение.

Первое, конечно копии базы данных – куда без них.

Второе, необходимо позаботиться о датах (как минимум, в идеале необходимо вообще проверить форматы – но это может и не понадобиться). Именно даты могут нам помешать, поскольку MS SQL понимает их только в диапазоне 01.01.1753..31.12.9999, а NAVI начиная с 01.01.0000.
Их можно править руками, а можно и с помощью отчета.

Третье, удаляем все не нужные таблицы – простого DELETEALL достаточно. Лучшим решением служит написание отчета в txt после чего его компиляция.

Четвертое, удаление всех не нужных ключей из наших таблиц – не зачем нам выстраивание их на MS SQL сервере.

Пятое, физическое удаление таблиц – а то тащить их на SQL сервер занятье глупое (найти как программно удалить таблицы из базы данных мне не удалось)

Шестое, BackUp и его разворачивание на MS SQL сервере. Если все нормально то мы готовы к проверке, но чаще всего точно возникнет ошибка и процесс придется повторить – пока не избавимся от всех неверных дат, ключей и т.п.
! Не стоит забывать что у нас две базы, а поэтому тоже нужно сделать для них обоих.

Седьмое, Используя ApexSQL Diff произвести сравнение.

Восьмое, найденные ApexSQL Diff расхождения реплицировать между базами данных.

<правка не завершена>
Старый 17.07.2008, 15:17   #2  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Ооо.. Что ЭТО?
Старый 18.07.2008, 09:48   #3  
FliN is offline
FliN
Участник
 
2 / 10 (1) +
Регистрация: 24.12.2007
Цитата:
Сообщение от Kashin Посмотреть сообщение
Ооо.. Что ЭТО?
Иногда задают вопросы и на них отвечают.
Иногда дают советы и к ним прислушиваются.

Это – готовое решение. Другого ресурса для знаний по NAVI в России я не знаю.
Старый 18.07.2008, 10:14   #4  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от FliN Посмотреть сообщение
Иногда задают вопросы и на них отвечают.
Иногда дают советы и к ним прислушиваются.
Иногда отвечают на не заданные вопросы.

Цитата:
Сообщение от FliN Посмотреть сообщение
Это – готовое решение. Другого ресурса для знаний по NAVI в России я не знаю.
Если это решение, которое продается - тогда в коммерческих предложениях надо было пост оставлять.
Если его можно скачать (раз в топике Navision downloads) - то не вижу как это сделать.
К сожалению, пост был оформлен так, что исходя из него я могу только догадываться, что решение называется ApexSQL Diff. А может быть и как-то по-другому.
Старый 03.03.2016, 14:05   #5  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
а бизнес задачу обрисуйте, почему базы две, а не одна
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:50.