Может ли Oracle работать с распределенными данными

AlexanderKz
Дата: 13.06.2006 12:12:53
Имеется 5 баз с одинаковыми по структуре таблицами заполненными разными данными. Например таблица man.
Есть представление allman:
select * from man@bd1 union all select * from man@bd2 union all ......

Все работает прекрасно, пока не падает один из каналов. Может ли oracle работать с распеределенными данными игнорируя упавший канал, т.е. считая, что данных там нет? (Понятно, что не для всех задач это коректно, но лучше, чем ничего)

Можно, конечно, написать свою процедуру, возвращающую множество строк. Внутри обрабатывать exception-ы, а условия выборки передавать как параметры.
Но тогда придется забыть про сложные запросы.

Второй вариант- постоянно тестировать каналы и автоматически пересоздавать вьюшки. Тогда проблем с блокировками и задержками будет выше крыши.


Может кто знает еще какие-нибудь пути решения?
Калина
Дата: 13.06.2006 12:15:57
AlexanderKz
Имеется 5 баз с одинаковыми по структуре таблицами заполненными разными данными. Например таблица man.
Есть представление allman:
select * from man@bd1 union all select * from man@bd2 union all ......

Все работает прекрасно, пока не падает один из каналов. Может ли oracle работать с распеределенными данными игнорируя упавший канал, т.е. считая, что данных там нет? (Понятно, что не для всех задач это коректно, но лучше, чем ничего)

Можно, конечно, написать свою процедуру, возвращающую множество строк. Внутри обрабатывать exception-ы, а условия выборки передавать как параметры.
Но тогда придется забыть про сложные запросы.

Второй вариант- постоянно тестировать каналы и автоматически пересоздавать вьюшки. Тогда проблем с блокировками и задержками будет выше крыши.


Может кто знает еще какие-нибудь пути решения?

А может PIPELINED c обработкой Exception
AlexanderKz
Дата: 13.06.2006 14:08:21
Калина

А может PIPELINED c обработкой Exception


Недостаток с процедурами в невозможности объединения. Сделали мы две процедуры ALLMAN(where VARCHAR2) и ALLPOST(where VARCHAR2), возмращающие все строки с фильтрацией по условию из всех доступных баз, и надо нам вычилить
select ... FROM MAN, POST WHERE MAN.F_MAN_ID = POST.F_MAN_ID 

Не писать же NL объединение вручную.

Или предлается как-то по другому?
AlexanderKz
Дата: 13.06.2006 14:10:53
Калина

А может PIPELINED c обработкой Exception


Прошу прощенья, стормозил. Можно передавать запрос целиком в качестве параметра.

А встроенных механизмов, все-таки, пока не существует/предвидится?
Elic
Дата: 13.06.2006 14:20:20
AlexanderKz
А встроенных механизмов, все-таки, пока не существует/предвидится?
RTFM Replication Overview, Materialized Views (FAQ)
AlexanderKz
Дата: 13.06.2006 16:25:54
Elic
AlexanderKz
А встроенных механизмов, все-таки, пока не существует/предвидится?
RTFM Replication Overview, Materialized Views (FAQ)


Спасибо. Если коротко, то вы рекамендуется использовать снапшеты перекачивая данные на свою сторону? Это не совсем то, что описано в первом письме.
Elic
Дата: 13.06.2006 16:35:56
AlexanderKz
вы рекамендуется
О, ужас
AlexanderKz
использовать снапшеты перекачивая данные на свою сторону? Это не совсем то, что описано в первом письме.
Зато развяжет от падения каналов.
AlexanderKz
Дата: 13.06.2006 16:59:49
Elic

AlexanderKz
Это не совсем то, что описано в первом письме.
Зато развяжет от падения каналов.


И все-таки хотелось бы решить именно поставленную задачу,
даже если есть другие хорошие задачи с хорошими решениями:)
Alexey Polovinkin
Дата: 13.06.2006 17:25:02
AlexanderKz

...
И все-таки хотелось бы решить именно поставленную задачу,
даже если есть другие хорошие задачи с хорошими решениями:)


А это не решает поставленой задачи?

Elic

AlexanderKz

вы рекамендуется

О, ужас


Педант
AlexanderKz
Дата: 13.06.2006 18:09:26
Alexey Polovinkin
AlexanderKz

И все-таки хотелось бы решить именно поставленную задачу,
даже если есть другие хорошие задачи с хорошими решениями:)

А это не решает поставленой задачи?

Нет.
Условия задачи:
1) получать актуальные данные с тех узлов, которые доступны (редкие запросы).
2) не хранить все данные на всех узлах. Диски не резиновые.
3) не гонять все данные и все изменения по сети, поскольку 99.5% этих изменений никто и никогда не спросит