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

Откуда: RB Minsk
Сообщений: 17
Вопросы таковы:
1 Можно ли, используя репликацию слиянием, получить на подписчике таблицу с измененным именем.
Пример: на публикаторе есть таблица <table>, на подписчике надо получить (реплицировать) эту таблицу но что бы она имела название <t1>?

2 Возможно ли на операционке Windows 2000 Pro поставить MSSQL Server 2000 чтобы он поддерживал репликацию транзакциями?
22 дек 04, 17:13    [1201466]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10826
Блог
1) Да
2) https://www.sql.ru/articles/mssql/01111201ChoosingAnEditionOfSQLserver2000.shtml
22 дек 04, 17:42    [1201663]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Вот чудненько :)
А как? Где в настойке публикации это делать?
22 дек 04, 17:50    [1201700]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10826
Блог
В свойствах статьи измените поле Destination table name
22 дек 04, 19:36    [1202074]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Вот такое выдает на подписчике:
===============================
The schema script '___сетевой путь_____\T1_1.sch' could not be propagated to the subscriber.
(Source: Merge Replication Provider (Agent); Error number: -2147201001)
---------------------------------------------------------------------------------------------------------------
Snapshot will be applied from the alternate folder '___сетевой путь_____'
(Source: COMP_SUB (Agent); Error number: 20143)
---------------------------------------------------------------------------------------------------------------
Specified owner name 'T1' either does not exist or you do not have permission to use it.
(Source: COMP_SUB (Data source); Error number: 2760)
---------------------------------------------------------------------------------------------------------------
================================
но то изменил в уже существующей публикации.
Может все с нуля проделать?
23 дек 04, 09:25    [1202774]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Да, и еще вот что. Я сказал что публикация слиянием, а в ней этого свойства (Destination table name) нет. Есть только Destination table owner. А это указание владельца и именно из за этого такие ошибки выдаются ИМХО. Хотя в снимке создается таблица с именем T1.
23 дек 04, 09:40    [1202827]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Ну это вы круто придумали - владельца менять вместо имени объекта. Конечно, ошибки из-за этого!

На существующей публикации изменить destination_object не получится. Такой параметр действительно присутствует в описании процедуры sp_changemergearticle, но при попытке им воспользоваться возникает ошибка "Invalid property value 'destination_object'". В тексте процедуры его действительно нет среди разрешеных к изменению свойств.

При добавлении новой статьи в публикацию он внешне тоже вроде бы разрешен - параметр @destination_object у процедуры sp_addmergearticle. И при выполнении ошибки не возникает. Но если потом посмотреть, что записалось в sysmergearticles, то увидим облом - destination_object = source_object. Если посмотреть на текст sp_addmergearticle, то в нем мы увидим такой замечательный кусок кода с комментариями:
    /*
    ** Merge table articles does not really support destination object. It has the same value as source
    */
    select @destination_object = @source_object

Так что данная возможность, как видим, не более, чем заглушка. Возможно, в будущем ее имплементируют по-настоящему, но сейчас воспользоваться ею никак нельзя - ни для существующей статьи, ни для новой.
23 дек 04, 11:35    [1203385]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10826
Блог
Мдя... иногда и BOL не всю правду говорит... :( хорошо, что я этим никогда не пользовался.
Можно попробовать создать вьюху с нужным именем и реплицировать её. На подписчике она должна вроде бы превратиться в обыкновенную таблицу.
23 дек 04, 12:12    [1203594]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Неееааа, с вьюхой тож не пойдет :-/ В таблицу она не превращается. Репликация хочет, чтобы "низлежащие" объекты (т.е. таблицы, на которых основана вьюха) присутствовали в базах на всех репл. партнерах.

Такая вот ошибка лезет:
The schema script 'C:\Program Files\Microsoft SQL Server\MSSQL$INS1\REPLDATA\unc\srvtest1$INS1_test1_test1\20041223123608\t2_1.sch' could not be propagated to the subscriber.
(Source: Merge Replication Provider (Agent); Error number: -2147201001)
---------------------------------------------------------------------------------------------------------------
Unable to replicate a view or function because the referenced objects or columns are not present on the Subscriber.
(Source: srvtest1\ins1 (Agent); Error number: 0)
---------------------------------------------------------------------------------------------------------------
Invalid object name 't1'.
(Source: srvtest1\ins1 (Data source); Error number: 208)
---------------------------------------------------------------------------------------------------------------

В общем, много вкусных обещаний, но пока сплошные заглушки на деле.
23 дек 04, 12:54    [1203860]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
P.S. То, что BOL не всегда говорит правду и всю правду про репликацию - это факт :-) У меня давно уже выработалась привычка сразу делать маленькие тестики на тестовом сервере. И лезть читать код, чуть что. Много интересного можно узнать :-) Хотя чаще - грустно интересного.
23 дек 04, 12:56    [1203871]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Короче облом с этим получается :(
Жаль жаль. А так было заманчиво.
У меня вот еще один вопрос назревает, я его постараюсь кратко сформулировать и после обеда (у кого как) задать.
23 дек 04, 13:23    [1204056]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Задача такова:
Есть порядка 30 удаленных компьютеров с ОС Win200pro (подчеркиваю PRO), соответственно на них стоит MSSQL 2000 DeskTop. Подключений к MSSQL ну от силы 3.
Есть некоторая база (BAZA) и некоторая таблица (table) на всех компьютерах эта таблица называется одинаково.

Есть головной сервер ОС Win2000Server Enterprise Edition.
Надо устроить репликацию с удаленных компьютеров на головной, так чтобы данные с удаленных компьютеров из таблицы table попадали на головной компьютер в базу (BAZA_FULL), в таблицу (TABLE_FULL). Причем данные таблиц table должны передаваться только от удаленных компьютеров на головной, то есть полная таблица всех удаленных баз.

Вроде все просто, настроить репликацию транзакцией на удаленных компах чтобы сливалось все в одну таблицу, но эта самая репликация не поддерживается MSSQL 2000 DeskTop. Только снимок и слияние.
23 дек 04, 16:20    [1205201]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Ну так создайте на головном компе в базе BAZA_FULL таблицу с именем table вместо TABLE_FULL и мерж-реплицируйтесь на здоровье.
24 дек 04, 11:48    [1207069]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Вернулись.

Проблема заключается в том, что репликацию транзакцией нельзя установить на MSSQL DeskTop. А делать это слиянием абсолютно не реально. Зачем реплицировать на один удаленный компьютер данные всех остальных 29-ти?

Что по вашему должно стоять на удаленных и на головном?
24 дек 04, 12:26    [1207282]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Эээ... Вы мне задаете вопросы или я вам? %-))) Я ж не знаю, какую задачу вы решаете и почему
Pallot
делать это слиянием абсолютно не реально


Также мне непонятно противоречие между
Pallot
данные таблиц table должны передаваться только от удаленных компьютеров на головной, то есть полная таблица всех удаленных баз
и
Pallot
Зачем реплицировать на один удаленный компьютер данные всех остальных 29-ти

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

Если я неправильно понимаю ваши слова, объясните так, чтобы стало понятно. Это в ваших интересах :-)

У меня есть смутное подозрение, что вы хотите использовать фильтры и получить следующую систему: на головной базе есть ВСЕ данные, а в филиалах - только ИХ данные. Это так?
24 дек 04, 12:44    [1207366]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10826
Блог
Pallot
Вернулись.

Проблема заключается в том, что репликацию транзакцией нельзя установить на MSSQL DeskTop. А делать это слиянием абсолютно не реально. Зачем реплицировать на один удаленный компьютер данные всех остальных 29-ти?

Что по вашему должно стоять на удаленных и на головном?


Если использовать динамический фильтр по именам хостов вкупе с динамическими снимками, на филиалы будет реплицироваться только своя информация.
https://www.sql.ru/articles/mssql/02032701FilteringPublishedData.shtml
https://www.sql.ru/articles/mssql/03120105UsingDynamicHorizontalFilters.shtml
24 дек 04, 13:02    [1207456]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
GreenSunrise

У меня есть смутное подозрение, что вы хотите использовать фильтры и получить следующую систему: на головной базе есть ВСЕ данные, а в филиалах - только ИХ данные. Это так?


Именно так!
=====
Не быть мне учителем ;)
24 дек 04, 13:11    [1207505]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Ну слава богу. Значит, Александр вам уже ответил.

P.S. Иногда добиться нормальной постановки вопроса получается за 10 постов, а ответ укладывается в одну строчку...
24 дек 04, 13:22    [1207557]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
P.P.S. Теперь вопрос остался у меня - что ж вы так рвались к репликации транзакций, если там все равно такого механизма нет, как вам надо???
24 дек 04, 13:23    [1207563]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
С фильтрами я, понимайте ли, еще не работал. Как к ним подойти не знаю. Вот буду читать на выходных.
24 дек 04, 13:34    [1207617]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Я в общем обрисовал то что надо получить. Хотел получить предложения по реализации. Но как видно, мне давали только конкретные ответы на конкретные вопросы.

Может у кого есть лучший вариант установки системы.
Уделенные станции - Win2000Pro + MSSQL 2000 DT (публикатор, метод - слияние + настройка фильтров)
Головная станция - Win2000Server + MSSQL 2000 EE (подписчик, метод – pull)
24 дек 04, 13:42    [1207667]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
а ведь создашь еще одну тему с этим вопросом - закроют и пальцем погрозят.
а на эту никто не отвечает, толи спецов нет, толи вопрос очень сложный.
28 дек 04, 14:59    [1215272]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
На какой вопрос вы ждете ответа? Для описанной вами ситуации рекомендации дали. Если бы кто-то что-то хотел добавить, уже добавили бы.

Как мне казалось, тема была полностью освещена, потому и не продолжилась. Если вас что-то не устраивает в предложенной вам схеме решения - скажите что именно.
28 дек 04, 15:14    [1215337]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Pallot
Member

Откуда: RB Minsk
Сообщений: 17
Ну что ж, я получил исчерпывающие ответы.
Пусть будет так.
29 дек 04, 09:20    [1216977]     Ответить | Цитировать Сообщить модератору
 Re: Изменение имени таблицы при репликации. Win200Pro + MSSQL2000  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10826
Блог
Аминь ;)
29 дек 04, 11:40    [1217536]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить