Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 DB2 9.1 - проблема с default page size  [new]
chemb
Member

Откуда:
Сообщений: 22
Уважаемый All!
Нужна помощь....

Стояла задача развернуть ClearQuest с использованием DB2 9.1 в качестве СУБД. Для решения задачи была создана стандартная БД с автоматической поддержкой для репозитория и такие же для production и test. У всех БД bufferpool и tablespace были оставлены по умолчанию, при создании в качестве default page size оставлено 4к.

Создана Ver.1 схемы, выполнено тестирование на тестовой бд, выполнен накат на production. Ver.1 передана в опытную эксплуатацию. Было заполнено много справочников и создано больше сотни записей о дефектах. По итогам опытной эксплуатации предложено доработать Ver.1 схемы.

В процессе доработки натолкнулся на проблему - при попытке тестирования обновление тестовой бд не проходило. Сделал точную копию production и test баз, начал играться с ними. Выяснилось следующее:

1. Если базу сделать не с 4к а с 16к - новая схема накатывается.
2. Если базу сделать с 4к, потом добавить новый bufferpool и tablespace - новая схема накатывается
3. Если базу восстановить как новую, потом добавить в нее новые буферы и пространства - схема не накатывается.

Ошибка возникает при выполнении запроса вида alter table, который сам по себе довольно длинный и в котором создается много новых полей типа CLOB(100). Обновление выполняется непосредственно из ClearQuest Designer.

Данные, внесенные в старую схему терять нельзя, перезабивать ручками - долго. Разбираться как именно генерируется запрос на обновление схемы - почему-то не хочется...

В качестве приемлемого решения видится изменение default page size у самой БД. Но с BD2 я знаком второй день, - не нашел пока можно ли это поменять, если да - где это поменять и какие еще грабли связанные с этой проблемой меня стерегут.

Пожалуйста, посоветуйте куда посмотреть. Если есть опыт по этой проблеме - буду признателен...
12 май 08, 12:44    [5650129]     Ответить | Цитировать Сообщить модератору
 Re: DB2 9.1 - проблема с default page size  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4949
SQLCODE или SQLSTATE ошибки?
12 май 08, 13:16    [5650366]     Ответить | Цитировать Сообщить модератору
 Re: DB2 9.1 - проблема с default page size  [new]
chemb
Member

Откуда:
Сообщений: 22
Сообщение об ошибке выглядит буквально так:

ERROR! An error was detected in the middle of upgrading database "DTEST" to schema "DTST" version 8: SQLExecute: RETCODE=-1, State=S1000, Native Error=-670
SQL statement="alter table defect add analisys clob(100M) DEFAULT NULL"
[DataDirect][ODBC DB2 Wire Protocol driver][UDB DB2 for Windows, UNIX, and Linux]RECORD LENGTH OF TABLE EXCEEDS PAGE SIZE LIMIT. 4005 USERSPACE1

...
12 май 08, 14:17    [5650820]     Ответить | Цитировать Сообщить модератору
 Re: DB2 9.1 - проблема с default page size  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4949
Да, размера страницы в 4k для userspace1 мало.
Изменение default page size при уже созданной базе не поможет - userspace1 создается при создании базы.
Вам надо либо изначально создавать базу со страницей в 8(16)k, либо создать новое табличное пространство с таким размером страницы и перезагрузить в него данные из userspace1.
12 май 08, 15:05    [5651152]     Ответить | Цитировать Сообщить модератору
 Re: DB2 9.1 - проблема с default page size  [new]
chemb
Member

Откуда:
Сообщений: 22
> либо создать новое табличное пространство с таким размером страницы
> и перезагрузить в него данные из userspace1.

...добавил табличное пространство. А чем перегрузить данные в него из userspace1 ? И как убедится, что целостность в процессе переноса не нарушена?
12 май 08, 15:22    [5651290]     Ответить | Цитировать Сообщить модератору
 Re: DB2 9.1 - проблема с default page size  [new]
MishGunRU
Guest
Mark Barinstein
перезагрузить в него данные из userspace1.


а какими средствами кроме экспорт/импорт таблицы это можно сделать?
12 май 08, 15:22    [5651294]     Ответить | Цитировать Сообщить модератору
 Re: DB2 9.1 - проблема с default page size  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4949
chemb
А чем перегрузить данные в него из userspace1 ? И как убедится, что целостность в процессе переноса не нарушена?

1. Сгенерировать DDL:
db2look -d MY_DB -ct -e -z MY_SCHEMA -t MY_NAME -o MY_NAME.SQL
2. Выгрузить таблицу на диск:
db2 export to MY_NAME.ixf of ixf ...
3. db2 drop table MY_SCHEMA.MY_NAME
4. Выполнить CREATE TABLE из MY_NAME.SQL с указанием нового табличного пространства.
5. Загрузить таблицу:
db2 load from MY_NAME.ixf of ixf ...
6. Выполнить остальные команды из MY_NAME.SQL

Может понадобиться SET INTEGRITY, если есть зависимые таблицы.
12 май 08, 16:06    [5651593]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить