powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / Informix [игнор отключен] [закрыт для гостей] / dbexport
18 сообщений из 18, страница 1 из 1
dbexport
    #39760107
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Win 7, ids 9.40
Делаю бэкап базы
dbexport db_damp -ss
Разворачиваю на новом сервере
dbimport -q db_damp -d dbdbs

Проблема:
На новом сервере таблицы создаются, данные загружаются, но
При построении индексов получаю ошибку 100-ISAM error: duplicate value for a record with unique key.

На новом сервере смотрю таблицу на которой произошла ошибка, в таблице присутствует две записи с уникальным ключом.(в файле скрипта так же вижу две записи)
На сервере, где был выполнен dbexport, в таблице нет этой дублирующийся записи(есть только одна запись).

Не пойму от куда dbexport берёт эту дублирующуюся запись, причем запись в таблице не полностью совпадает с записью оригинала только поля по которым построен индекс.

Заранее спасибо за советы.
...
Рейтинг: 0 / 0
dbexport
    #39760474
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Конечно же на новом сервере не будет двух записей т.к. при загрузке произошла ошибка и вторая запись не была загружена.

в файле database_name.sql закоментарьте двумя минусами строку с созданием уникального ограничения (и если есть уникального индекса) тогда сможете загрузить данные в таблицу. Потом руками вычищайте данные и создавайте уникальные индексы и/или ограничения
...
Рейтинг: 0 / 0
dbexport
    #39760605
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cprКонечно же на новом сервере не будет двух записей
я же написал что
timtimНа новом сервере смотрю таблицу на которой произошла ошибка, в таблице присутствует две записи с уникальным ключом
меня интересует от куда берется "задвоенная" запись. на сервере-источнике нет задвоения.
...
Рейтинг: 0 / 0
dbexport
    #39760617
Фотография aist-psk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtimcprКонечно же на новом сервере не будет двух записей
я же написал что
timtimНа новом сервере смотрю таблицу на которой произошла ошибка, в таблице присутствует две записи с уникальным ключом
меня интересует от куда берется "задвоенная" запись. на сервере-источнике нет задвоения.
если на источнике пересоздать таблицу (с перезагрузкой данных ) - запись появится , лечить таблицу
...
Рейтинг: 0 / 0
dbexport
    #39760628
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aist-pskесли на источнике пересоздать таблицу (с перезагрузкой данных ) - запись появится , лечить таблицу
в файлах, которые создал dbexport, видно дублирующуюся запись, а в таблице сервера источника нет этой дублирующейся записи
Каким образом может появится дублирующаяся запись в файле dbeport-а если её нет в таблице, вот в чем вопрос. От куда dbexport вытягивает эту запись если её нет в таблице?
...
Рейтинг: 0 / 0
dbexport
    #39760633
Igor Zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ві попробуйте на источнике вібрать запись через seq. scan таблицы а не через индекс.
...
Рейтинг: 0 / 0
dbexport
    #39762639
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aist-pskесли на источнике пересоздать таблицу (с перезагрузкой данных ) - запись появится , лечить таблицу
Запись появилась.
А как лечить таблицу если в ней я не вижу(до выгрузки/загрузки) неправильной записи?
...
Рейтинг: 0 / 0
dbexport
    #39762901
Фотография aist-psk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
утилита oncheck для проверки
https://www.ibm.com/support/knowledgecenter/ru/SSGU8G_12.1.0/com.ibm.adref.doc/ids_adr_0369.htm

самое простое , если позволяет время - пересоздать таблицу (с перезагрузкой данных)
...
Рейтинг: 0 / 0
dbexport
    #39763045
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aist-pskпересоздать таблицу (с перезагрузкой данных)
Таблиц под сотню будет.
А oncheck какие опасности таит?
Попробую для начала oncheck -c по всем ключам.
Shared memory ещё шалит на сервере, надо buffers уменьшить, перезагрузить. И это асе на prod))
...
Рейтинг: 0 / 0
dbexport
    #39763225
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
timtim,

если onheck использовать только для вывода отчета, то ничем не грозит.
Для починки индексов например oncheck не рекомендуется (во всяком случае для старых версий)
...
Рейтинг: 0 / 0
dbexport
    #39763266
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cprДля починки индексов например oncheck не рекомендуетс
Понял, спасибо за инфу.

Нашел с десяток битых индексов.
Все пересоздал кроме одного.
Дропаю индекс - в ответ получаю что индекс дропнут, но смотрю через eSQlEditor и вижу что на месте дропнутого индекса появился другой индекс но с числовым названием 231_49 и по тем же столбцам.
Пытаюсь дропнуть этот "числовой индекс", а он не дропается.
Почему создается этот "числовой индекс" после drop index?
...
Рейтинг: 0 / 0
dbexport
    #39763295
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtimна месте дропнутого индекса появился другой индекс но с числовым названием
как понял это автоиндекс создаётся, но почему на других таблицах он не создается хотя в них тоже есть констрейны
...
Рейтинг: 0 / 0
dbexport
    #39763322
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
timtimtimtimна месте дропнутого индекса появился другой индекс но с числовым названием
как понял это автоиндекс создаётся, но почему на других таблицах он не создается хотя в них тоже есть констрейны

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

Соответственно, что бы пересоздать:
1. Дропаем констрент
2. Дропаем индекс
3. Создаем индекс
4. Создаем констрейнт.

Как-то так...
...
Рейтинг: 0 / 0
dbexport
    #39763324
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
timtimно почему на других таблицах он не создается хотя в них тоже есть констрейны

Не на каждый существующий индекс может ссылаться констрент. Для этого надо анализировать структуру БД что бы понять на какой индекс или автоиндекс ссылается констрент. А так, в таблице может быть введено ограничение, но она может содержать и просто индексы на которые не цепляется констрент.

Как-то так...
...
Рейтинг: 0 / 0
dbexport
    #39763326
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvt11. Дропаем констрент
2. Дропаем индекс
3. Создаем индекс
4. Создаем констрейнт.
Так и сделал.
В той таблице был индекс по полям аналогичным констрейнту.
...
Рейтинг: 0 / 0
dbexport
    #39763360
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtimВ той таблице был индекс по полям аналогичным констрейнту.
и я правильно понимаю что для данной таблицы не нужен констрейнт т.к. есть unique index?
...
Рейтинг: 0 / 0
dbexport
    #39763604
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
timtim,

если не надо создавать ссылку на таблицу, то можно первичный ключ не создавать.
...
Рейтинг: 0 / 0
dbexport
    #39763605
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
timtimtimtimВ той таблице был индекс по полям аналогичным констрейнту.
и я правильно понимаю что для данной таблицы не нужен констрейнт т.к. есть unique index?

Вопрос сложный для меня.
И UNIQUE INDEX и CONSTRAINT UNIQUE вводят ограничение на уникальность данных в поле. Если у нас индексировано одно поле как уникальное, на него можно навесить CONSTRAINT UNIQUE чисто технически, это не противоречит конструкции.

Но, есть и другие случаи, например, на UNIQUE INDEX навесить CONSTRAINT PRIMARY KEY, почему бы и нет?
И, с другой стороны, ни что не запрещает создать CONSTRAINT UNIQUE на два проиндексированных поля, одно из которых может быть UNIQUE INDEX.
Тут, скорее всего от задач зависит, которыми руководствуется разработчик БД.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / dbexport
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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