Назад | Перейти на главную страницу

Проблема с повреждением данных при репликации SQL 2008

Мы взяли базу данных SQL 2000. Взял резервную копию со скоростью света. Восстановлен на активном / пассивном кластере SQL 2008. Затем настройте репликацию для репликации данных обратно в SQL 2000. Итак, 2008 является издателем / распространителем, а 2000 выполняет подписку по запросу. Все работает хорошо, за исключением случаев, когда мы получаем поврежденные данные в полях varchar / text на подписчике.

Так, например, у нас есть таблица с 4500 записями. Когда мы запускаем этот оператор:

update MedstaffProvider set Notes = 'Cell Phone: 360.123.4567   Answering Service: 360.123.9876'
where LastName = 'smith'

Запись в базе данных 2008 года обновляется, как и ожидалось. Но в базе данных субрайбер мы получим тарабарщину в поле примечаний:

óPÌ[1]    T       $Oé[1]   ð²ñ.  K 

Вот что мы знаем:

Мы нашли одно решение, устраняющее проблему. В основном, если мы воссоздадим таблицу в 2008 году (скажем, как MedStaffProvider2), а затем вставим все данные. Отбросьте исходный стол. Переименуйте таблицу в ее исходное имя. Снова настройте репликацию. И запустите точно такой же оператор обновления, как и ожидалось.

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

Если вы запускаете SQL Profiler в базе данных распространителя и базе данных подписчика, видите ли вы поврежденные данные как в базе данных распространителя, так и на подписчике или только на подписчике?

Вы пробовали запустить агент распространения на издателе / ​​распространителе?

Разве SQL Server 2008 не изменил способ обработки определенных полей из-за Unicode или чего-то подобного?

Это руководство может дать некоторые рекомендации. Может вы что-то упустили при миграции?

Изменить: Есть Эта статья указать на что-нибудь, что могло его вызвать?