![]() |
|
Модераторы: LSD |
![]()
|
|
| crook4 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.4.2009 Репутация: нет Всего: нет |
Смысл в следующем:
есть 2 БД, в БД slave есть таблица tab_slave, которая синхронизируется с таблицей tab_1 из БД test. На время синхронизации надо наложить блокировки на эти таблицы, чтобы пользователи не могли работать с этими таблицами. Вот написал функцию для синхронизации:
Здесь сначала проводится синхронизация по вставкам, удалениям и потом обновлениям. Как теперь тут наложить блокировки??? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Ну в своей базе можно использовать LOCK, но вот можно ли наложить LOCK на таблицу в удаленной базе, этот вопрос надо проверить.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 1 Всего: 36 |
crook4, у тебя обе БД находятся на одном сервере или разных?
у меня было аналогичная задача, только на разных серверах со слабым каналом между ними - сделал через copy 1) на сервере 1 создал промежуточную таблицу и из таблицы1 на сервере 1 запросом вставил данные которые нужно синхронмизировать 2) выгрузил данные из промежуточной таблицы в файл 3) файл скопировал на сервер2 - это решается специальным скриптом или rsync или чем-то аналогичным 4) на сервере2 выполнил загрузку данных через copy из файла в промежуточную таблицу и вставил запросом из промежуточной таблицы, те данные, которых нет в таблице2 на сервере2 и обновил из промежуточной таблицы данные, которые изменились 5) блокировку снял |
|||
|
||||
| crook4 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.4.2009 Репутация: нет Всего: нет |
У меня БД на разных серверах, канал нормальный (локальная сеть).
Функция отрабатывает нормально, но я пока не учел блокировки, а без них поидее не правильно. Когда пишу так:
PG не пропускает "begin work"... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PostgreSQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |