|
|
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
Добрый день! Вопрос по репликации ASA902. Совсем непонятно в чем дело. Может сможет кто-нибудь навести). Надо в работающую репликацию (Центральная база - Удаленная база) добавить новую таблицу, Заполнять ее данными в Удаленной базе и реплицировать их в Центральную базу. Делаю в обеих базах. авторcreate table DBA.user_unload(id_c integer default 0); alter publication PUBL0 add table user_unload И дальше проблема. Если добавляю данные непосредственно в Удаленной базе авторinsert into user_unload (id_c) values(444);commit то они реплицируются в Центральную. А если в Центральной базе делаю, авторPASSTHROUGH ONLY FOR repluser9; insert into user_unload (id_c) values(555);commit; PASSTHROUGH STOP; то данные в Удаленной базе появляются, но в Центральную не реплицируются. В чем может быть дело? Привожу лог Удаленной базы. В нем добавление совершенно идентично. автор --CONNECT-1010-0838807467-DBA-2010-01-22 10:57 --BEGIN TRANSACTION-1010-0838807478 BEGIN TRANSACTION go --COMMIT-1010-0838807485 COMMIT WORK go --BEGIN TRANSACTION-1005-0838807493 BEGIN TRANSACTION go --INSERT-1005-0838807496 INSERT INTO DBA.user_unload(id_c) VALUES (555) go --COMMIT-1005-0838807548 COMMIT WORK go --BEGIN TRANSACTION-1005-0838807549 BEGIN TRANSACTION go --COMMIT-1005-0838807569 COMMIT WORK go автор --CONNECT-1001-0838806441-DBA-2010-01-22 10:49 --BEGIN TRANSACTION-1001-0838806613 BEGIN TRANSACTION go --INSERT-1001-0838806928 INSERT INTO DBA.user_unload(id_c) VALUES (444) go --COMMIT-1001-0838806980 COMMIT WORK go ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 11:51 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
dorian grey, Убери ONLY и будет счастье. И вообще непонятно зачем такой финт с ретрансляцией в центральной? Что мешает просто выдать insert into user_unload (id_c) values(444) Режим ретрансляции немного для другого предназначен. И если уж использовать его для корректировки записей в таблицах, то только для тех таблиц или столбцов, которых нет в публикации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 13:08 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
antanddorian grey, Убери ONLY и будет счастье. И вообще непонятно зачем такой финт с ретрансляцией в центральной? Дело в том, что физического доступа к удаленной базе нет. Данные из нее можно получить только через репликацию (через фтп). Таким образом я хочу смотреть в Центральной базе фактическое содержимое разных таблиц Удаленной базы (в том числе и не включенных в репликацию), путем их помещения в мою таблицу. Может быть эту задачу можно решить по другому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 13:38 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
dorian grey, Какая-то хитрая задача. Я так понимаю это чисто для тестировоания и исправления ошибок. Проще выгрузить данные нужных таблиц из удаленной в файл и переслать его Вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 14:03 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
antanddorian grey, Я так понимаю это чисто для тестировоания и исправления ошибок. Проще выгрузить данные нужных таблиц из удаленной в файл и переслать его Вам. Да, для исправления ошибок. К сожалению удаленных баз около 50. Из каждой выгружать проблематично. Может это ограничение PASSTHROUGH? Результаты команд, идущих внутри этого режима, не реплицируются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 14:18 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
dorian grey, Напишите скрипт выгрузки(упаковки, пересылки по почте(ftp и т.п.)) Пусть кто-нить там на удаленной его выполнит. Если там вообще никого нет, тогда создаем таблицу скриптов, таблицу в репликацию, скрипт в таблицу, репликация передаст скрипт в удаленную, ну и остается его выполнить в удаленной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 14:46 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
antanddorian grey, тогда создаем таблицу скриптов, таблицу в репликацию, скрипт в таблицу, репликация передаст скрипт в удаленную, ну и остается его выполнить в удаленной Сейчас попробую, думаю должно получиться. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 14:50 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
dorian grey, Код: plaintext 1. 2. 3. 4. не смотрел по документации , но похоже эта команда не помечается в файле транзакций для отправки на удаленную. (IMHO) создавайте таблицу в репликацию (Enabled Bit, Text VarChar) , создавайте службу, которая будет делать выборку из таблицы (where Enabled = 1) и запускайте текст запроса как "EXECUTE IMMEDIATE" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 14:52 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
Victor Am (IMHO) создавайте таблицу в репликацию (Enabled Bit, Text VarChar) , создавайте службу, которая будет делать выборку из таблицы (where Enabled = 1) и запускайте текст запроса как "EXECUTE IMMEDIATE" Сделал в обеих базах Код: plaintext 1. Сделал в Центральной базе Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. В результате не получилось. В удаленной базе запись добавилась, но в центральную не перенеслась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 15:45 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
dorian grey, Так это то же самое, что Вы и раньше делали. Надо выполнение скрипта убрать из блока(режима) PASSTHROUGH Можно сделать так(давно один гуру в этом форуме технологию описывал) Повесте триггер на таблицу скриптов, по вставке вызываете событие, которое выполнит скрипт. Только добавьте в таблицу скриптов идентификатор базы на которой нужно выполнить, чтобы у Вас обработчик события в каждой базе выполнял только скрипты предназначенные для этой базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 17:36 |
|
||
|
Репликация ASA902
|
|||
|---|---|---|---|
|
#18+
antandМожно сделать так(давно один гуру в этом форуме технологию описывал) Повесте триггер на таблицу скриптов, по вставке вызываете событие, которое выполнит скрипт. Только добавьте в таблицу скриптов идентификатор базы на которой нужно выполнить, чтобы у Вас обработчик события в каждой базе выполнял только скрипты предназначенные для этой базы. Спасибо! С событиями все получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2010, 11:07 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=31&tid=2010762]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 378ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...