Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Задача следующая: создать копию БД и с какой-либо периодичностью переносить в эту копию данные с основной базы. При этом данные в основной базе могут удаляться, но при переносе в копию удалений быть не должно. DB2 9.7. Рассматриваю стандартный механизм sql репликации. Два момента работы - запись изменений и применение изменений. Возможно ли исключить в какой-либо момент все операции delete? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 09:35 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slix, Здравствуйте. Возможно. Defining triggers on CD tables to prevent specific rows from being captured Если надо не на постоянной основе запрещать репликацию удалений, а на время, то можете создать свою контрольную таблицу с флагом и проверять его в WHEN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 10:12 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Спасибо за ссылку. Попробовал, работает. Теперь возникла другая проблема. В большинстве таблиц определено автогенерируемое поле ID. Программа Apply не может перенести изменения в таблицу назначения, т.к. это поле указывается явно. Каким способом лучше это обойти? Пока что приходит на ум только убрать этот столбец при регистрации в программе Capture. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 09:37 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slixВ большинстве таблиц определено автогенерируемое поле ID. Программа Apply не может перенести изменения в таблицу назначения, т.к. это поле указывается явно. Каким способом лучше это обойти? Пока что приходит на ум только убрать этот столбец при регистрации в программе Capture.В таблицу-цель что-то ещё пишет, кроме репликации? Если нет - удалите автогенерацию поля в таблице-цели. Если да, и хочется, чтобы ID в цели всё равно генерировался, сделайте generated by default но так, чтобы диапазоны генерируемых значений и значений, которые реплицируются, не совпадали. Например, генерируйте значения в минус в одной базе и в плюс - в другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 09:59 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Так и не удаётся настроить репликацию. Восстанавливаю базу меняя ей название. После запуска capture и apply в некоторых таблицах target данные вообще удаляются. Похоже они удаляются во всех, но затем переносятся из основной(тут проблема с некоторыми таблицами). Использую asnclp. Сейчас возникают вопросы: как сделать так, чтобы данные из таблиц назначения не удалялись? можно ли как-то увидеть более конкретный лог по каждой таблице? Прилагаю часть скрипта asnclp Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 11:14 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, да. спасибо за ответ. Во всех таблицах-целях удалил автогенерацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 11:17 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Логи подробные программы apply идут в WFQUAL1.TRC. По ним понял что нужно внешние ключи ещё поудалять в таблицах базы назначения. После этого данные перенеслись. Однако вопрос с удалением так и остался. Когда происходит удаление из таблиц назначения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 17:37 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slixКогда происходит удаление из таблиц назначения?Когда вы выполняете холодный старт capture, либо capture не может продолжить после предыдущего запуска. Перед тем, как начать реплициовать, первоначально по-умолчанию запускается процесс синхронизация таблиц, который и удаляет сначала все записи из цели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2012, 19:47 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, А можно ли как-нибудь отключить этот "процесс синхронизации по умолчанию"? Хотелось бы вообще запретить удаление из таблицы цели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 09:22 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slixА можно ли как-нибудь отключить этот "процесс синхронизации по умолчанию"? Хотелось бы вообще запретить удаление из таблицы цели. IBMSNAP_REGISTER.DISABLE_REFRESH=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 10:14 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, огромное спасибо за ответы. Сейчас вроде бы всё работает. После установки IBMSNAP_REGISTER.DISABLE_REFRESH=1 вручную(запросом) выходила ошибка. Решил её через Центр репликации, выполнив на сете "Полное обновление" - "Вручную...". Также в данный момент на базе назначения удаляю все автогенерируемые поля и все внешние индексы. Может быть подскажете ещё способ обойти удаление внешних индексов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 09:45 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slixТакже в данный момент на базе назначения удаляю все автогенерируемые поля и все внешние индексы. Может быть подскажете ещё способ обойти удаление внешних индексов.Если я правильно понял, то речь идёт о внешник ключах, а не внешних индексах. Зачем вы их удаляете? Чем они вам мешают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 10:16 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Когда во время репликации переносятся данные по таблице со внешним ключом, то возможно данные в таблицу, на которую ссылается ключ, ещё не были перенесены. В итоге выходит ошибка, что нет такого ключа в связанной таблице. Возможно я как-то не так зарегистрировал источники или цели. В инфоцентре db2 все примеры сводятся к репликации одной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 10:55 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slixКогда во время репликации переносятся данные по таблице со внешним ключом, то возможно данные в таблицу, на которую ссылается ключ, ещё не были перенесены. В итоге выходит ошибка, что нет такого ключа в связанной таблице.Вы должны все связанные ссылочной целостностью таблицы включать в один subscription set, тогда такие ошибки не должны появляться. Planning the number of subscription-set members ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 11:05 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, все таблицы в одном subscription set. Проверю ещё раз с ключами, может быть ошибка в другом была. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 11:52 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinslixА можно ли как-нибудь отключить этот "процесс синхронизации по умолчанию"? Хотелось бы вообще запретить удаление из таблицы цели. IBMSNAP_REGISTER.DISABLE_REFRESH=1 При установке вышеуказанного параметра запрещается полное обновление. Причём, программа Apply начинает выдавать ошибку, пока через "Центр репликации" не установлю "обновление вручную". Однако мне необходима возможность полного обновления, но чтобы при этом данные не удалялись из таблицы назначения. То есть механизм FULL_REFRESH почти устраивает. Можно ли как-то запретить Apply удалять данные, при этом пусть останется возможность указать Capture перенести в CD-таблицы все имеющиеся данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 11:14 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slixОднако мне необходима возможность полного обновления, но чтобы при этом данные не удалялись из таблицы назначения.Эти 2 требования - взаимоисключающие. Я не понимаю, что вы хотите сделать. Полное обновление есть полное обновление. Если вы не хотите перед ним удалять данные из таблицы назначения, то что же у вас в ней будет после полного обновления с сохранением предыдущих данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 12:10 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Всё это затеяли из-за того что базы сейчас очень большие. Подстройка db2, индексы и перевод на более быстрые хранилища уже исчерпаны. При этом базы растут дальше. Уже реализовали возможность удаления старых данных из таблицы источника до какого-то момента времени. При этом в таблице назначения данные будут содержаться в полном объёме. В принципе это уже работает. Программа Capture переносит данные, удаление при этом не реплицируется. Полное обновление без удаления данныхи из таблицах цели может понадобиться, если произойдёт какой-либо сбой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 14:18 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Думаю что если запись уже существует, при полном обновлении она будет замещена. Понятно что это уже будет update, при полном же обновлении, видимо, используется только insert. Но может быть существует какой-то способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 14:22 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slixДумаю что если запись уже существует, при полном обновлении она будет замещена. Понятно что это уже будет update, при полном же обновлении, видимо, используется только insert. Но может быть существует какой-то способ?Apply так не делает. Вы можете руками синхронизировать таблицы, т.е., например, загрузить load'ом в промежуточную таблицу базы-цели основную таблицу, а потом вставить / обновить на основе ее содержимого таблицу-цель. Потом сделать так, чтобы процесс пошел дальше, как будно сбоя не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 15:20 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Возник ещё другой вопрос. Если включаю через Центр репликации на БД "возможность репликации", то при этом устанавливаются параметры LOGARCHMETH1=LOGRETAIN LOGRETAIN=RECOVERY Однако в инфоцентре db2 9.7 написано что параметр LOGRETAIN устаревший, и если использовать, то только один из них. http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.config.doc%2Fdoc%2Fr0000247.html Как быть? Верить инфоцентру или считать что Центр репликации всё правильно делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 10:11 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
slix... Как быть? Верить инфоцентру или считать что Центр репликации всё правильно делает?Ничего страшного в том, что Центр репликации устанавливает LOGRETAIN=RECOVERY нет. При этом, как написано в доке, LOGARCHMETH1 устанавливается в LOGRETAIN автоматически, т.е. архивное журналирование для базы включается, что и нужно для репликации. Если оно вас смущает, можете поставить LOGRETAIN=OFF, LOGARCHMETH1 должен сохранить при этом значение LOGRETAIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 11:18 |
|
||
|
Репликация в DB2 9.7. Можно ли НЕ реплицировать удаление данных?
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinslixКогда во время репликации переносятся данные по таблице со внешним ключом, то возможно данные в таблицу, на которую ссылается ключ, ещё не были перенесены. В итоге выходит ошибка, что нет такого ключа в связанной таблице.Вы должны все связанные ссылочной целостностью таблицы включать в один subscription set, тогда такие ошибки не должны появляться. Planning the number of subscription-set members subscription set изначально был один. Заработало после указания через Центр репликации для subscription set опции "Разрешить программе Apply использовать для элементов набора транзакционную обработку" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 08:35 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38026293&tid=1601589]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 276ms |
| total: | 431ms |

| 0 / 0 |
