![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Гость_SergE |
|
|||
Unregistered |
Не подскажете ли, господа?
Где можно в Internet найти литературу по синхронизации баз данных. Про синхронизацию двух баз Oracle. Про осуществление гарантированной закачки в базу данных от удалённого клиента. Спасибо. |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Я понял так, что Вас интересуют репликации? Могу порекомендовать http://www.sql.ru
--------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
По поводу репликации данных в первую очередь надо почитать справку по Oracle, там все достаточно хорошо описанно. Можно запустить Enterprise Management Console, там все операции по настрйке репликации делаются достаточно легко, и при желании можно записать скрипты, а затем их модифицировать.
-------------------- 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. |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Если по правде, то я никогда сам не пользовался Ораклевыми репликациями как таковыми по той причине, что когда я начинал это делать у меня небыло достаточных навыков в этом деле. Сейчас я немного разобрался, как это делается, но у меня прекрасно работает свой ранее сделанный механизм. Опишу его работу:
У нас имеется 12 серверов, причем один - центральный, он и есть ведущий. Полной синхронизации серверов не требуется. Нужно, чтобы одинаковыми были только таблицы справочников (адреса, услуги, тарифы и прочие таблицы с условно-постоянной информацией). Над этими табличками на центральном сервере висят триггеры на Insert, Update и Delete, которые и отслеживают изменения и делают запись в отдельную табличку "искусственных репликаций", куда попадают: 1. номер "репликации" 2. имя таблички, над которой происходили изменения; 3. Дата 4. имя пользователя 5. Тип изменений (Ins or Del or Upd) 6. имя колонки таблицы 7. Данные (Old / New) Далее данные из этих табличек выгружаются в файлы, рассылаются на все участки (ведомые сервера), где они закачиваются на сервер и запускается хранимая процедура, которая: 1. Разворачивает данные табличек в понятные SQL команды 2. Выполняет эти SQL команды как DML операции 3. Записывается статус выполнения команды (успешно или ошибка) Далее данные о статусе выполнения "репликации" (каждой отдельной ее SQL команды) выгружаются в файл, который отсылается на центральный участок (ведущий сервер) и закачивается в БД. Это нужно для того, чтобы следить, где и как что выполнилось. Если ошибка - надо разрулить ее вручную (но это было на начальном этапе, когда все только устаканивалось, сейчас это работает без сбоев с апреля месяца). Итак, если репликация на ведомом сервере выполнилась, то все Ok и ее больше не трогаем (для данного сервера), иначе отсылаем ее опять (мало ли что, вдруг письмо не дошло?) и так пока не узнаем Ok или Error Буду благодарен за критику. --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Dimich
Вообщем ты повторил систему репликации Oracle ![]() -------------------- 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. |
|||
|
||||
Petro123 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Простите, а зачем выгружать даные в файл, разве нельзя непосредственно обратиться к нужным данным и залить их в новую базу? Кажется есть ведь гомогенные запросы? Добавлено @ 12:24 Да кстати не подскажите, как создать файл и отослать его вдруг понадобится? Это сообщение отредактировал(а) Petro123 - 28.6.2007, 12:28 |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Да, можно и так. Так гораздо лучше, но у меня дело осложняется тем, что каналы связи просто никакие. В лучшем случае dialup, где модем висит параллельно общему телефону, в гудшем случае gprs, которое вообще может неделю не работать и тогда приходится файлы на флешке с попутным междугородним автобусом передавать, все-таки межгород. Файл создаю не из pl/sql. Этим занимается специальная клиентская программа, которая к тому же обрабатывает входящие/исходящие письма с этими самыми файлами. --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
Petro123 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
А что за файлы, типизированные или текстовые?
|
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Типизированные. Такого примерно формата:
Поле Тип данных Размер данных Собственно данные Потом эти файлы еще архиватором упаковываются и режутся на тома. Очевидные недостатки: ограниченность поддерживаемых типов данных (NUMBER, VARCHAR, DATE), хотя можно прикрутить (при желании) и другие типы, я за ненадобностью это не делал. Но, если есть желание повторять, то лучше разобраться с нативными ораклевыви репликациями. Я такой изврат делал от безысходности. Причины описывал. --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
Petro123 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Не по чему разбираться пока, может есть какие ссылочки хорошие, русские.
А твой способ мне по душе Создаем тригеры, журналы изменений таблиц, только файлы мне лень создавать, наверное гомогенными запросами можно слить будет инфу из одной базы в другую (кстати как тоже вопрос), Теоретически все вроде понятно, но блин практически, возникает много вопросиков, безобидных, но требующих время. Все таки придется наверное пойти по твоему пути, он хотя бы прозрачен для меня... |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Petro123 написание собственного велосипеда, процесс гораздо более долгий и сопряженный с бОльшим количеством ошибок, чем разбирательство по английской документации.
-------------------- 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. |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Petro123, ну, если так заинтересовался, могу запостить пример триггера над таблицей, пример процедуры, которая все это хозяйство разворачивает в DML операции и выполняет их, ну и собственно структуру таблиц.
Кстати, если связь между БД хорошая, то можно данные из одной БД в другую гонять через dblink и не мучаться с файлами. Тогда у тебя воодще может не быть клиентских частей как у мну. Но и к совету LSD я бы советовал тебе прислушаться. Этот человек всегда дело говорит. Это сообщение отредактировал(а) Dimich - 3.7.2007, 06:46 --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
Только не это, шеф! Максимум, на что годится эта консоль - это мониторинг ошибочных транзакций, и их состав. Но никому не советую ее использовать для управления объектами репликации. Визарды, это вообще отдельная тема. Кажется, один раз я попробовал запустить какой-то мастер по созданию репликационной группы, в нем оказалость 6 нудных шагов, в итоге приведшие меня в никуда, ни окея, ни кансела. И это только маленький пример. Так что устанавливаем пакет DBMS_REPCAT и да здравствует PL/SQL. P.S. С каждым новым релизом Oracle, я все больше ненавижу индусов. -------------------- It's better to burn out than to fade away. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Я настраивал репликацию именно им и все работало. -------------------- 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. |
|||
|
||||
Petro123 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Да, да конечно, буду очень признателен |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Oracle" | |
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |