Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Репликация. Копирование системных таблиц  [new]
Vamas
Member

Откуда:
Сообщений: 6
Имеется следующая конфигурация репликации между SQL серверами:
- главный сервер, является издателем Merge репликации и push-подписчиком для Transactional репликации (суммарный размер таблиц в транзакционной репликации - около 7 миллиардов строк)
- около 50 удаленных серверов, каждый находится в своем домене, дочернем по отношению к домену главного сервера; эти сервера соответственно являются pull-подписчиками для Merge репликации и издателями для Transactional
На данный момент все сервера на Windows Server 2003R2 + SQL Server 2005 SP (x86)
Задача следующая: перенести основной сервер на Windows Server 2008R2 + SQL Server 2008R2 (x64)
Особые условия: необходимо перенести базы, конфигурацию репликации и состояние репликация без генерации моментальных снимков; кроме того, подключиться к удаленным серверам не представляется возможным поскольку они находятся на буровых и т.д.

Решение:
1. Сконфигурировать новый сервер аналогично старому: конфигурация папок, шары и т.д.
2. Перенести данные из системных таблиц обеспечивающи репликацию (базы distribution и msdb) со старого сервера на новый (при этом timestamp поле в таблицах MSsnapshot_history, MSmerge_sessions, MSmerge_history получается out of sync)
3. Восстановить боевую базу из бэкапа с опцией keep replication
4. Восстановить replication jobs из скриптов

Я протестировал данный способ в dev environment. Все поднялось и заработало

Спасибо

Хотелось бы услышать мнение экспертов, а также соображения о более безопасных методах решения
9 апр 12, 19:47    [12390059]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Боюсь, что других вариантов у вас и нету.

По п.2: Можете фейковыми операциями догнать @@dbts до нужного значения. Данные в таблицы MS* переносить используя синтаксис select ... into ... from ..., тогда значения столбцов timestamp сохранятся.
9 апр 12, 21:08    [12390390]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
Vamas
Member

Откуда:
Сообщений: 6
Спасибо

Вроде бы timstamp не может корректироваться пользователем, но я обязательно проверю
Как я понимаю, таблицы MS.. перед выполнение инструкции select .. into .. from должны быть удалены.
9 апр 12, 21:45    [12390484]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Vamas,
ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.ru/s10de_6tsql/html/65c9cf0e-3e8a-45f8-87b3-3460d96afb0b.htm
С помощью инструкции SELECT INTO, в которой столбец типа rowversion находится в списке SELECT, могут быть сформированы повторяющиеся значения rowversion.

Таблицы можете пока не удалять, а переименовать.
9 апр 12, 22:00    [12390539]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Кстати, про штатный способ я и забыл: установить на новый сервер 2005-й того же билда, что и на старом, пофайлово перенести БД и проапгрейдить его до 2008 R2.
9 апр 12, 22:22    [12390574]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
Vamas
Member

Откуда:
Сообщений: 6
Боюсь штатный способ тут не сработает, поскольку миграция происходит с x86 на x64
9 апр 12, 22:32    [12390595]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Vamas
Боюсь штатный способ тут не сработает, поскольку миграция происходит с x86 на x64
Формат БД не зависит от разрядности ОС.
9 апр 12, 22:38    [12390613]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
Vamas
Member

Откуда:
Сообщений: 6
Migration Wizard не позволяет осуществить миграцию с 86 на 64. Нужно руками делать attach/detach со всеми вытекающими. А восстановить msdb со старой версии нельзя
9 апр 12, 23:12    [12390679]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Vamas,

Ну так можно поставить 2005 x64, настроить такое же окружение, как на старом сервере и подпихнуть БД. А после этого уже мигрировать.
9 апр 12, 23:33    [12390721]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
Vamas
Member

Откуда:
Сообщений: 6
Попробую поэкспериментировать еще, мой предыдуший опыт не удался
10 апр 12, 00:11    [12390788]     Ответить | Цитировать Сообщить модератору
 Re: Репликация. Копирование системных таблиц  [new]
Crimean
Member

Откуда:
Сообщений: 13147
@@dbts одно время можно было через dbcc выставлять. недокументировано, конечно же. если не закрыли - можно нагуглить
10 апр 12, 09:53    [12391446]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить