powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / перенос БД
5 сообщений из 5, страница 1 из 1
перенос БД
    #37518946
lubava1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переносила БД с одной машины на другую. Делаю как и всегда командами db2look, db2move export, db2move load
тока после загрузки данных половина таблиц стали неактивными. При попытки выполнить запрос к ней:
Код: plaintext
DB2 SQL Error: SQLCODE=- 668 , SQLSTATE= 57016 , SQLERRMC= 1 ;NSI.EXCHANGER, DRIVER= 3 . 57 . 82 
пробую запустить reorg для каждой таблицы как многие советует выводит:
Код: plaintext
SQL2216N  SQL error "-668" occurred while reorganizing a database table or its indexes.
...
Рейтинг: 0 / 0
перенос БД
    #37519482
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lubava1991,

Скорее всего из-за ограничений на таблицах (внешние ключи, check и т.д.).

>db2 "? sql668"

SQL0668N Operation not allowed for reason code "<reason-code>" on table
"<table-name>".

Explanation:

Access to table "<table-name>" is restricted. The cause is based on the
following reason codes "<reason-code>":

1

The table is in the Set Integrity Pending No Access state. The
integrity of the table is not enforced and the content of the
table may be invalid. An operation on a parent table or an
underlying table that is not in the Set Integrity Pending No
Access state may also receive this error if a dependent table
is in the Set Integrity Pending No Access state.

...

User response:

1

Execute the SET INTEGRITY statement with the IMMEDIATE CHECKED
option on table "<table-name>" to bring the table out of the
Set Integrity Pending No Access state. For a user maintained
materialized query table, execute the statement with the
IMMEDIATE UNCHECKED option instead of the IMMEDIATE CHECKED
option.

...
...
Рейтинг: 0 / 0
перенос БД
    #37519497
lubava1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да. но ведь на другом БД нормальная.
Решила вопрос реорганизацией каждой таблицы с помощью команд:

Код: plaintext
1.
db2 set integrity for shema.tab all immediate unchecked 
db2 reorg table shema.tab

вопрос закрыт
...
Рейтинг: 0 / 0
перенос БД
    #37519675
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lubava1991да. но ведь на другом БД нормальная.
Решила вопрос реорганизацией каждой таблицы с помощью команд:

Код: plaintext
1.
db2 set integrity for shema.tab all immediate unchecked 
db2 reorg table shema.tab

вопрос закрытЯ бы настоятельно рекомендовал вам разобраться с этим вопросом, чтобы потом не было неприятных сюрпризов.
Вы должны понимать последствия ваших действий.

Вкратце:
LOAD - низкоуровневая утилита, которая при загрузке не проверяет внешние ключи.
Она просто помещает child в таблицу в check pending state.
Кроме того, у db2move в режиме LOAD есть неприятная особенность - она не может грузить данные в таблицы с generated always полями.
Поэтому, если вы пропустите соответствующие сообщения db2move, то вы можете получить 0 записей в parent таблице и непустую child таблицу.
Команда set integrity ... immediate unchecked не производит никаких проверок целостности, а просто верит вам, что всё у вас хорошо и разрешает доступ к таблице (ставя при этом соотв. флажок в системном каталоге, что, мол, вы сами ответственны теперь за это).
Применив её к child таблице, вы получите полный доступ к ней и нарушение ссылочной целостности.

Если вы уверены в том, что с данными у вас всё нормально, то вы, конечно можете пользоваться immediate unchecked...

P.S.:
reorg таблицы после LOAD вообще не нужен.
...
Рейтинг: 0 / 0
перенос БД
    #37531441
A.Panskikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lubava1991,

immediate unchecked - это стремная команда.

Если у Вас есть желание переносить базу через пересоздание/заливку, то нужно быть осторожным.
То, что получено после db2look-db2move не совсем (а для моей ситуации совсем) непригодно.
Требуется доработка напильником.

У меня сценарий следующий:

1. Распарсить ddl от db2look куски - создание БД, таблиц, индексов, констрейнов и т.д.
2. Создать БД + таблицы
3. залоадить данные (выгрузка-загрузка делается своим скриптом с учетом лобов и генеретед)
4. построить индексы,констрейны, функции, вьюхи, триггеры и т.д.
5. дотащить недостающее с исходника (текущие значения сиквенсов, недостающие комменты, гранты на функции-процедуры)

И тогда все будет хорошо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / перенос БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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