powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Распределение БД по серверам
21 сообщений из 46, страница 2 из 2
Распределение БД по серверам
    #35259437
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу еще вопросец... Будет ли работать такая система без одного из серверов? Как минимум смогу я к ней подконнектится и читать данные отлько на доступном сервере?
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259521
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evclid79На девятой DB2 все красиво уже...
А на восьмой вроде и не сложно...

Create table..... (COL1 ...)
partitioning key (COL1)....

НО вот как определить правило которое по значению COL1 определит в какой раздел строку кинуть что-то я не вижу...

Partitioning and Clustering Guide :

Database partitioning is the method by which the placement of each row in the table is determined. The method works as follows:
1. A hashing algorithm is applied to the value of the distribution key, and generates a number between zero (0) and 4095.
2. The distribution map is created when a database partition group is created. Each of the numbers is sequentially repeated in a round-robin fashion to fill the distribution map.
3. The number is used as an index into the distribution map. The number at that location in the distribution map is the number of the database partition where the row is stored.
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259525
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTСразу еще вопросец... Будет ли работать такая система без одного из серверов? Как минимум смогу я к ней подконнектится и читать данные отлько на доступном сервере?
Не-а...
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259566
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman, уточню на всякий случай... Есть сервер1 и сервер2... На них есть БД... На сервер1 положили целиком таблицу1, на сервер2 - соответственно таблицу2.... Вырубился сервер2... Можно сделать select к таблице1?
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259696
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTgardenman, уточню на всякий случай... Есть сервер1 и сервер2... На них есть БД... На сервер1 положили целиком таблицу1, на сервер2 - соответственно таблицу2.... Вырубился сервер2... Можно сделать select к таблице1?
Не все так просто. Где-то на одной ноде есть системный каталог. Если эта нода вылитит угадай что будет?
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259740
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman, я так понимаю можно настроить на какой ноде будет системный каталог... Допустим он на сревере1 (см. данные выше), что будет если отвалится сервер2?
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259835
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTgardenman, я так понимаю можно настроить на какой ноде будет системный каталог... Допустим он на сревере1 (см. данные выше), что будет если отвалится сервер2?

Код: plaintext
1.
2.
3.
4.
[db2inst1@db2dpf0 ~]$ db2start
 04 / 16 / 2008   20 : 21 : 39       1     0    SQL6048N  A communication error occurred during START or STOP DATABASE MANAGER processing.
 04 / 16 / 2008   20 : 21 : 39       0     0    SQL1026N  The database manager is already active.
SQL6032W  Start command processing was attempted on "2" node(s).  "0" node(s) were successfully started.  "1" node(s) were already started.  "1" node(s) could not be started.

У меня какраз один из серваков забрали.
[db2inst1@db2dpf0 ~]$ db2 connect to ... - просто висит.

На горячем ходу - увы - не могу попробовать.
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259836
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL1229N The current transaction has been rolled back because of a system
error. SQLSTATE=40504
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259888
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman :( а жаль
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259937
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы этого не было DPF-ноды еще объединяют в failover-кластер, но тут уже без внешней СХД никак.
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259976
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTgardenman :( а жаль
А если так: Партицировать таблицы. Ненужные данные на ленту и в архив.
А чтобы данные вроде как видны были - MQT управляемые юзером. В запросе данные есть а на самом деле их в базе нет. Так можно? никто не делал случайно?
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35259991
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вылетела нода с каталогом - всё.
Если нет - то команды, для которых нужны будут данные с умершей ноды, будут отваливаться.
А если вы, грубо говоря, будете делать
Код: plaintext
select * from tabname where dbpartitionnum(colname) in (номера_живых_нод)
то оно работать будет.
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35260045
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein, gardenman как-то ваши показания не стыкуются:)
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35260388
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTMark Barinstein, gardenman как-то ваши показания не стыкуются:)
у меня нет одной ноды. я не могу законнектиться. Возможно что соединения которые были живы на момент отваливания ноды продолжат в каком-то смысле жить. Я не могу проэкспериментировать сейчас.
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35261112
Evclid79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно создать таблицу с дополнительной generated always колонкой, которая будет генерить число.
Эту колонку определить как partitioning key.
например я пробовал на 4-х раздельной базе... По partitionmaps значение 0 из этой колонки отправляло строку в раздел 0, 6 во 2-ой раздел, 1 в пятый, а 5 в третий.....
Ну а дальше дело техники....

Согласен... способ не профессиональный, зато он работает и другого на восьмерке я не нашел... ):
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35263807
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gardenmanу меня нет одной ноды. я не могу законнектиться. Возможно что соединения которые были живы на момент отваливания ноды продолжат в каком-то смысле жить. Я не могу проэкспериментировать сейчас.То что я вижу на своей тестовой системе:
Если в сессии я делал запросы на данные ноды, которая потом отвалилась, то мое соединение разрывается после падения этой ноды (не содержащей системный каталог, конечно).
Но я могу переконнектится и работать дальше. При этом, если я опять буду пытаться слать запросы на данные упавшей ноды, то эти запросы будут отваливаться, но соединение разрываться не будет.
Если после переконнекта я не буду слать запросы на данные упавшей ноды, то они будут работать.
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35274907
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас попробовал репликацию настроить на federated таблицу... Работает!!!
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35275061
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле Не Работает!!!
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35277494
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве должно? Ведь нормально для репликации изменения собираются на той стороне, где находится реплицируемая таблица (читаются Capture из логов или перехватываются триггерами в случае не-DB2-источника) (случае full refresh'а малоинтересны). А уж таблицы с накопленными изменениями делают federated и их читает Apply.
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35277881
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пытался в качестве таблицы-цели указать federated-таблицу... У меня сыграло ограничение по транзакциям... В том смысле, что нельзя в одной транзакции изменять обыкновенную таблицу и federated-таблицу....
...
Рейтинг: 0 / 0
Распределение БД по серверам
    #35283439
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTgardenman, mitek мне на эту отдельную ноду надо вынести одну большую таблицу ~100млн. записей + к ней штук 10-15 summary table. Так что Вы там про ESE говорили? Куда хоть копнуть? С чего начать? Какое меню выбрать?:)Если еще кому интересно.
В db2 с dpf можно руками управлять, в какую ноду какую запись положить.
Пусть ваша таблица должна быть разбита по нодам так, чтобы активная ('A') часть была на node 0, а архивная ('B') часть была на node 1.
Делается это примерно так:
Код: plaintext
1.
2.
3.
4.
create nodegroup testgroup on all nodes;
create tablespace testspace in testgroup ...;
create table test (your_columns_description_goes_here, part char( 1 ) not null default 'A') 
in testspace distribute by hash(part);
alter table test add constraint test_part check(part in ('A', 'B'));
Далее надо узнать, какое хэш-значение поставится в соответствие обоим значениям поля part.
Для этого делается тестовая вставка 2-х записей и запрос на получение хэша:
Код: plaintext
1.
insert into table test (..., part) values (..., 'A'), (..., 'B');
select part, dbpartitionnum(part) n, hashedvalue(part) h from test;
Если записи легли не так, как надо (т.е. для part='A' n<>0 или для part='B' n<>1), то:
- выгружается на диск distribution map для этой nodegroup (запускать на сервере):
Код: plaintext
db2gpmap -d your_base -m test.map -t TEST
Этот текстовый файл содержит 4096 цифр-номеров узлов с нумерацией от 0 до 4095.
Пусть для активной части select вернул: part='A', n=1, h=1234
Т.е. выяснилось, что все записи с part='A' лягут в нежелаемую ноду.
Тогда в этом текстовом файле заменяем 1234-ую цифру (нумерация начинается с 0) с 1 на 0.
То же, если надо, делаем для part='B'.
И делаем
Код: plaintext
redistribute nodegroup testgroup using targetmap test.map;
После этого select должен вернуть нужные номера нодов для ваших частей и вы можете быть уверенным, что записи разложаться так, как вы хотели.
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Распределение БД по серверам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]