|
Репликация с 6,5 на 7,0
|
|||
---|---|---|---|
#18+
Есть ли у кого опыт работы репликации с 6.5 на 7.0 Заниматься эти делом приходится впервые, поэтому интерисуют всякие подводные камни. Ну вот самое распространенное - при попытке реплицировать транзакцию вылетает ошибка о необходимости установить SET IDENTITY_INSERT в ОN. C другой стороны дочитался то того что на стороне 7.0 можно скорректировать примари как NOT FOR REPLICATION. Есть ли какая нибудь последовательность действий между этими двумя версиями. В моем случае 6.5 выступает как издатель. 7.0 как подписчик и данные на нем будут только для чтения. т.е. никаких своих модификаций таблиц 7.0 делать не будет. Еще интересно. Структура баз идентична. Как поведут себя триггеры на 7.0 и все в этjq связи. С уважением. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2001, 10:54 |
|
Репликация с 6,5 на 7,0
|
|||
---|---|---|---|
#18+
По умолчанию триггеры реплицируются как составная часть схемы: Table Articles Properties -> Snapshot -> User triggers -> Copy objects to destination. Если флажок разотметить, они публиковаться не будут. Очевидно, что если на издателе внести какие-л. изм-я в опр-е триггеров, они отреплицируются только вместе со следующим snapshot'ом. Я не встречал к-л. подводных камней при репликации 6.х -> 7.0, причем последний может быть как подписчиком, так и дистрибьютором. Кстати, если впоследствии возникнет желание проапгрейдить 6.х до 7.0, имейте в виду, что документация предупреждает о следующих возможных caveats: If the installation of SQL Server 6.5 already has replication enabled, the upgrade may fail if there are replicated transactions in the publishing database. You can determine the exact cause of failure by reviewing the text of the error message in Replication.err located in the specific directory for your upgrade The schedules for replication tasks that are being upgraded are reset to the default schedule. After the upgrade process is finished, you should reset the desired schedule for each task. You cannot upgrade replication settings directly from SQL Server 6.0 to SQL Server 7.0. You must first upgrade your installation to SQL Server 6.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2001, 00:23 |
|
Репликация с 6,5 на 7,0
|
|||
---|---|---|---|
#18+
собственно, это не подводный камень, но врубиться я не могу. У меня много таблиц с identity Primary key + они связаны по FK. На подписчике (7.0) я модифицирую структуры следующим образом Create Table T id int identity (1,1) NOT FOR REPLICATION NOT NULL, итд. на издателе (6.5) Create Table T id int identity (1,1) NOT NULL, итд. Начинаю репликацию. На агенте репликации вылетает ошибка 23000 ODBC, дескать An explicit value for the identity column in table 'T' can only be specified when a column list is used and IDENTITY_INSERT is ON. я уже и seed'ы делал разных диапазонов , как это рекомендуется. При живом сеансе репликации меняю структуру таблицы на подписчике (грубо говоря убераю identity) Create Table T id int NOT NULL, итд. - все великолепно идет. А теперь вопрос: Будет ли вообще пара 6,5 - 7,0 реплицировать данные с identity. Я много читал о том , что необходимо на подписчике изменить identity на int, убрать триггера. Ну в одном случае мне это подходит, а как поступать если подписчик будет реплицировать на издатель (merge replication). И вообще ? что можно и чего нельзя паре 6,5 - 7,0 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2001, 10:38 |
|
Репликация с 6,5 на 7,0
|
|||
---|---|---|---|
#18+
Наск. я помню, 6.5 вообще не реплицирует identity, поэтому ставить на него not for replication бессмысленно. Возможны 2 выхода: 1) Апгрейдить 6.5-го дистрибьютора на 7.0. Скорее всего, издатель и дистрибьютор у Вас одно и то же, поэтому сказанное означает полный апргейд на 7.0. 2) Не апгрейдить 6.5. Тогда без разницы, кто у него подписчик, п.ч. все равно придется изгаляться. Перенести начальный snapshot на подписчика. Подправить на подписчике поле, поставив ему атрибут identity. Написать хранимую процедуру типа той, что приводится в Q190690 (смысл: включить identity_insert перед вставкой на подписчике и выключить после). Проассоциировать эту процедуру с применением транзакции типа insert на подписчике. Если 7.0 у вас только подписчик (а кем он еще может быть при 6.5-м издателе?), то на нем not for replication не нужно тем более. Merge replication в случае 6.5 не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2001, 18:17 |
|
|
start [/forum/topic.php?fid=46&tid=1827312]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
10ms |
get forum data: |
1ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 169ms |
0 / 0 |