powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как можно создать копии баз на одном сервере?
48 сообщений из 48, показаны все 2 страниц
Как можно создать копии баз на одном сервере?
    #34022085
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоит задача следующего вида:

на сервере есть база BASE_A
нужно не удаляя ее создать ее копию BASE_B

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

OS: Windows 2003
IDS: 9.40
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34022121
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, ну самое простое: делаете экспорт базы, а затем импортируете ее на этот же сервер с новым именем базы. Утилиты dbexport и dbimport
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34022179
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndronХм, ну самое простое: делаете экспорт базы, а затем импортируете ее на этот же сервер с новым именем базы. Утилиты dbexport и dbimport

dbexport -ss BASE_A > base_a.sql

dbimport -c base_a.sql BASE_B

Так?
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34022471
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Середа AndronХм, ну самое простое: делаете экспорт базы, а затем импортируете ее на этот же сервер с новым именем базы. Утилиты dbexport и dbimport

dbexport -ss BASE_A > base_a.sql

dbimport -c base_a.sql BASE_B

Так?
нет

dbexport <некие параметры RTFM> BASE_A

rename BASE_A.exp BASE_B.exp
rename BASE_B.exp/BASE_A.sql BASE_B.exp/BASE_B.sql

dbimport <некие параметры RTFM> BASE_B
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34022516
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Танdbexport <некие параметры RTFM> BASE_A

rename BASE_A.exp BASE_B.exp
rename BASE_B.exp/BASE_A.sql BASE_B.exp/BASE_B.sql

dbimport <некие параметры RTFM> BASE_B

dbexport -ss BASE_A
rename BASE_A.exp BASE_B.exp
rename BASE_B.exp/BASE_A.sql BASE_B.exp/BASE_B.sql
dbimport -d BASE_B

Нужно ли что-то править внутри экспортитуемых файлов?
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34022608
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Середа Танdbexport <некие параметры RTFM> BASE_A

rename BASE_A.exp BASE_B.exp
rename BASE_B.exp/BASE_A.sql BASE_B.exp/BASE_B.sql

dbimport <некие параметры RTFM> BASE_B

dbexport -ss BASE_A
rename BASE_A.exp BASE_B.exp
rename BASE_B.exp/BASE_A.sql BASE_B.exp/BASE_B.sql
dbimport -d BASE_B
Опция -d нужна для указания dbspace, в котором будет создана база.
Вы не дочитали

СередаНужно ли что-то править внутри экспортитуемых файлов?
А вам нужно что-нибудь изменить?
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34022644
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, похоже, что даже на такую элементарную операцию нужно таки FAQ написать...
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34026200
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilisМда, похоже, что даже на такую элементарную операцию нужно таки FAQ написать...
А что не так?
...ну под новым именем да и в определенное пространство...

А вот то что там внутри синонимов понытакано и их надо руками править (в общем случае надо хотя бы знать что они там есть и убедиться, что они будут создаваться правильно) - вот это кстати можно в FAQ отметить ;)
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34030602
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге все кончилось ( или продолжилось? ) следующим образом:

1) Экспорт БД;
2) Правка имени каталога с файлами экспорта;
3) Правка имени файла содержащего схему БД;
4) Коррекция имен синонимов внутри файла схемы БД;
5) Коррекция имен БД используемых в SELECT в процедурах хранимых в данной БД;
6) Коррекция схемы так, что бы большие таблицы стали нулевыми (очень плохое действие... но все же).
7) Импорт БД с включенным журналированием (т.к. некоторые синонимы в импортируемой БД связаны с базами отключить журналирование на которых низззя).
8) Доливка данных в транкейтнутые таблицы.

Ужос!
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34030609
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Середа8) Доливка данных в транкейтнутые таблицы.
8.0) Отключение журналирования в импортированной БД;
8.1) Заливка данных в таблицы (где это нужно);
8.2) Включение журналирования БД.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34030751
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СередаВ итоге все кончилось ( или продолжилось? ) следующим образом:

1) Экспорт БД;
2) Правка имени каталога с файлами экспорта;
3) Правка имени файла содержащего схему БД;

4) Вырезание всех объектов, ссылающихся на журналируемые базы, из файла содержащего схему БД;
5) Импорт БД без журналирования
6) Включение журналирования
7) Создание объектов, ссылающихся на журналируемые базы
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34030809
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант конечно... но трудно то что работая в винде парсить трудно :(

У меня впереди еще база у которой только схема 24 метра. Там фиг повырезаешь минонимы, и процедуры в которых есть ссылки... легче таблицы вычислить крупноразмерные.

...хотя... короче попал я с этой фигней.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34030940
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СередаВариант конечно... но трудно то что работая в винде парсить трудно :(

У меня впереди еще база у которой только схема 24 метра. Там фиг повырезаешь минонимы, и процедуры в которых есть ссылки... легче таблицы вычислить крупноразмерные.

...хотя... короче попал я с этой фигней.
Вы можете вырезать вообще все постронние объекты, оставить только create table, create index, alter table add constraint, update statistics

А procedure, view, synonym, trigger создать после импорта.

Могут быть связи сложные между объектами, например, использование процедур и вьюх в триггерах, поэтому лучше все сразу вырезать.
А таблицы, индексы, констрейнты и статистика от этих связей не зависят.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34031066
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тан СередаВариант конечно... но трудно то что работая в винде парсить трудно :(

У меня впереди еще база у которой только схема 24 метра. Там фиг повырезаешь минонимы, и процедуры в которых есть ссылки... легче таблицы вычислить крупноразмерные.

...хотя... короче попал я с этой фигней.
Вы можете вырезать вообще все постронние объекты, оставить только create table, create index, alter table add constraint, update statistics

А procedure, view, synonym, trigger создать после импорта.

Могут быть связи сложные между объектами, например, использование процедур и вьюх в триггерах, поэтому лучше все сразу вырезать.
А таблицы, индексы, констрейнты и статистика от этих связей не зависят.

Вариант хороший, но у меня где-то проблема. dbimport отлично все грузит, а вот SqlEditor ругается на синтаксис в процедурах. Так что я не знаю как потом загрузить "остаток".
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34031346
zenk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На первой же процедуре валится?

Попробуй добавить или убрать ; после END PROCEDURE
Сталкивался с такой фигнёй.

Возможно также, что файл слишком большой получился - не знаю, не пользовался SQLEditor.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34031365
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СередаВариант хороший, но у меня где-то проблема. dbimport отлично все грузит, а вот SqlEditor ругается на синтаксис в процедурах. Так что я не знаю как потом загрузить "остаток".
dbaccess можно применить.
А как ругается SqlEditor, какая ошибка, в каком месте?
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34031377
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zenkПопробуй добавить или убрать ; после END PROCEDURE
Верно - на первой же. И там есть такая запись END PROCEDURE и еще там что- то типа надвания документа.

У меня и так много вопросов к данной операции - убирать что-то из схемы рисковать не хочу.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34031393
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Середа zenkПопробуй добавить или убрать ; после END PROCEDURE
Верно - на первой же. И там есть такая запись END PROCEDURE и еще там что- то типа надвания документа.

У меня и так много вопросов к данной операции - убирать что-то из схемы рисковать не хочу.
а у вас какая версия SqlEditor?
Я всегда после срыва dbimport скрипты им догружаю
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34031411
Середа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тан СередаВариант хороший, но у меня где-то проблема. dbimport отлично все грузит, а вот SqlEditor ругается на синтаксис в процедурах. Так что я не знаю как потом загрузить "остаток".
dbaccess можно применить.
А как ругается SqlEditor, какая ошибка, в каком месте?
Выделяет точку с запятой в конце синтаксической конструкции.
Я вчера с этим ковырялся, а с тех поре еще много я чем - подробности не могу вспомнить :(. Но у меня сложилось впечатление, что несмотря на то что везде все настроено (локали) SqlEditor запинается на символе\символах из "не той" локали.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34031420
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТанВы можете вырезать вообще все постронние объекты, оставить только create table, create index, alter table add constraint, update statistics

А procedure, view, synonym, trigger создать после импорта.

Могут быть связи сложные между объектами, например, использование процедур и вьюх в триггерах, поэтому лучше все сразу вырезать.
А таблицы, индексы, констрейнты и статистика от этих связей не зависят.

+1 и мой respect Тан :)

Ещё могу добавить во избежание проблем с нехваткой места (не хватит при загрузке или после загрузки останется мало :):

В некоторых случаях стоит исправить EXTENT SIZE и NEXT SIZE для таблиц:
1) если, как было упомянуто нет нужды загружать данные во все таблицы, а особенно в большие
2) потому что на "рабочей" БД запас SIZE больше, чем это может понадобиться на "тестовой".

3) (OFFTOP: при загрузке на другую операционку с большим размером страниц) - IDS просто откажется принимать размеры SIZE,
меньше 4 * PAGE SIZE...

П.С.: (OFFTOP: при загрузке на ДРУГОЙ сервер) - исправить возможно упоминающиеся названия dbspace, в которых хранились индексы и фрагменты таблиц...
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34037820
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему не обсуждается onuload/onload? По-моему, очень даже - и быстро, и таблицы дефрагментируются заодно...
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34042443
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попытавшись объединить обсуждавшиеся вопросы и используя личный опыт попытался написать FAQ, который превратился в небольшую статью :)
Она, конечно, немного больше вопроса переименования и создания копии БД, тем не менее, надеюсь, будет интересна всем, кто с такими проблемами изредка (или, к сожалению, часто) сталкивается.
Читайте, обсуждайте, предлагайте, критикуйте...
Как создать копию БД с новым именем?
Как выгрузить базу утилитой dbexport и загрузить с новым именем утилитой dbimport?

http://www.sql.ru/faq/faq_topic.aspx?fid=710
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34047601
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На днях наблюдал любопытную ситуацию при загрузке БД dbimport-ом на 4-х процессорный сервак с рейдом.
Три достаточно больших таблички при загрузке очень сильно отличались по времени, хотя их структура была почти одинаковой, за исключением одной детали (о ней ниже). Итак, таблицы:
1. назовем ее table1 для простоты, ее размер в выгруженном виде 900М и 8,5 мил.строк грузится 10-15 минут.
2. table2 - ее размер в выгруженном виде 420М и почти 16 мил.строк грузится 15-20 минут (она чуть уже)
3. table3 - ее размер в выгруженном виде всего 200М и 4,5 мил.строк грузится, внимание, 500 минут, т.е. более 8 часов.
На этой таблице срывали загрузку несколько раз, т.к. не могли понять такого замедления. Потом начали исследовать. Выключили первичные ключи, т.е. никаких индексов уже не строится (хотя для первых двух таблиц они, практически, и не мешали), нет логирования, установили большие размеры экстентов (первичные и вторичные). Единственное замеченное существенное отличие было в одном поле table3 - оно типа byte и направлено в blobspace. Казалось бы, вот оно - главная причина такого замедления, но, самое смешное, что НИ ОДНОГО блоба в таблицу не грузится, это поле просто забыли выкинуть, как обычно, из старого дизайна. Смена конкретного blobspace на tablespace ничего не дала.
Т.о. получается (а других идей у меня пока нет), что при создании ссылок на блоб-ы, которых то и нет на самом деле, идет жуткое торможение (как минимум на порядок) загрузки данных в таблицу.
Проверить загрузку той же таблицы без блоба я не смог - и так потеряли пару дней, да и софт надо проверить, как он без него будет обходится...
Какие у кого еще идеи ? Может, кто то сталкивался с похожими симптомами или грузил такие табблицы с пустыми блобами ?
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34047677
Чемберлен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilisТ.о. получается (а других идей у меня пока нет), что при создании ссылок на блоб-ы, которых то и нет на самом деле, идет жуткое торможение (как минимум на порядок) загрузки данных в таблицу.
Проверить загрузку той же таблицы без блоба я не смог - и так потеряли пару дней, да и софт надо проверить, как он без него будет обходится...
Какие у кого еще идеи ? Может, кто то сталкивался с похожими симптомами или грузил такие табблицы с пустыми блобами ?

А с какой скоростью логические журналы при этом заполнялись? Они реально копировались или фиктивно? Сколько места оказалось занято в blobspace (по onstat -d update)? И что там вставлялось в столбец? Просто || в .unl-файле?

Хочу проверить идею, что по странице (4Кб) на каждое значение блоба таки выделялось...
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34047682
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisПопытавшись объединить обсуждавшиеся вопросы и используя личный опыт попытался написать FAQ, который превратился в небольшую статью :)
Она, конечно, немного больше вопроса переименования и создания копии БД, тем не менее, надеюсь, будет интересна всем, кто с такими проблемами изредка (или, к сожалению, часто) сталкивается.
Читайте, обсуждайте, предлагайте, критикуйте...
Как создать копию БД с новым именем?
Как выгрузить базу утилитой dbexport и загрузить с новым именем утилитой dbimport?

http://www.sql.ru/faq/faq_topic.aspx?fid=710
А что, никто так и не почитал ? Вряд ли там совсем нет ошибок или неточностей :)
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34048109
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чемберлен vasilisТ.о. получается (а других идей у меня пока нет), что при создании ссылок на блоб-ы, которых то и нет на самом деле, идет жуткое торможение (как минимум на порядок) загрузки данных в таблицу.
Проверить загрузку той же таблицы без блоба я не смог - и так потеряли пару дней, да и софт надо проверить, как он без него будет обходится...
Какие у кого еще идеи ? Может, кто то сталкивался с похожими симптомами или грузил такие табблицы с пустыми блобами ?
А с какой скоростью логические журналы при этом заполнялись? Они реально копировались или фиктивно? Сколько места оказалось занято в blobspace (по onstat -d update)?
Так как загрузка шла dbexport то, естественно, логирования на базе не было.
В любом случае, все лог.журналы идут "в сад", т.е. nul.
В последнем варианте, где я замерил время загрузки, блобы уже грузились в собственное табличное пространство, а не в блобспейс.
Вот размеры занятого табличного пространства, но надо учитывать, что в таблицу продолжается загрузка и сейчас там уже 11 576 261 строка и размер строки (rowsize из tabinfo) =157 байт.
Код: plaintext
1.
tabname            num_rows total_p used_p data_p nodata free_p total_kb
cd_person           11576261   375000    350732   350688   44       24268    1500000 
ЧемберленИ что там вставлялось в столбец? Просто || в .unl-файле?
Хочу проверить идею, что по странице (4Кб) на каждое значение блоба таки выделялось...
Просто || в .unl-файле.
У меня была такая мысль, но, вроде, не подтверждается, т.к. только на эти пустые зарезервированные страницы ушло бы 11 милл.страниц, а их всего там 350 тыс.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34048449
Чемберлен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что показывает статистика по пространствам:

onstat -D

и

onstat -g iof
onstat -g iov

Понятно, что целиком страницы может и не меняются, но могут резервироваться отдельно, что может сильно нагружать логические журналы (независимо от режима журнализации базы)...
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34051570
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧемберленА что показывает статистика по пространствам:
onstat -D
и
onstat -g iof
onstat -g iov
Понятно, что целиком страницы может и не меняются, но могут резервироваться отдельно, что может сильно нагружать логические журналы (независимо от режима журнализации базы)...
Та статистика (для конкретного случая) уже "канула в лету".
А вот о нагрузке на логи мысль интересная. Надо бы помоделировать, да где же это время взять... :)
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34051812
svat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilis vasilisПопытавшись объединить обсуждавшиеся вопросы и используя личный опыт попытался написать FAQ, который превратился в небольшую статью :)
Она, конечно, немного больше вопроса переименования и создания копии БД, тем не менее, надеюсь, будет интересна всем, кто с такими проблемами изредка (или, к сожалению, часто) сталкивается.
Читайте, обсуждайте, предлагайте, критикуйте...
Как создать копию БД с новым именем?
Как выгрузить базу утилитой dbexport и загрузить с новым именем утилитой dbimport?

http://www.sql.ru/faq/faq_topic.aspx?fid=710
А что, никто так и не почитал ? Вряд ли там совсем нет ошибок или неточностей :)

Читал, поставил высокую оценку. Раньше бы попалась - была бы очень познавательной :)
Кое-что выходит за пределы моего опыта, поэтому не могу ни покритиковать ни дополнить. Есть что добавить по поводу глюков dbexport/dbimport, но эти сведения выходят за рамки указанной темы.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34052449
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisНа днях наблюдал любопытную ситуацию при загрузке БД dbimport-ом на 4-х процессорный сервак с рейдом.
....
dbimport?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
create database bt in dev1;
create table test_w_blob(a int, b byte );
create PROCEDURE sptest_w_blob2(cnt int);
define i int;
   FOR i in (1 to cnt)
     insert into  test_w_blob(a, b) values (1, null);
   END FOR
END PROCEDURE;

execute procedure sptest_w_blob2(500000)
 9 sec 

unload to '1.unl' select * from test_w_blob;
load from '1.unl' insert into test_w_blob;
 9 sec 

dbexport bt
drop database bt;
dbimport bt -d dev1
 40 sec. 


IBM Informix Dynamic Server Version 10.00.TC3
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34052560
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может я и ошибся.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
time echo "execute procedure sptest_w_blob2(5000000);" |dbaccess bt
real    2m42.688s

time echo "load from '1.unl' insert into test_w_blob;" |dbaccess bt
real    3m31.410s

time dbimport bt -d dev1
real    2m48.178s

IBM Informix Dynamic Server Version 10.00.UC3
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34056086
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис
Код: plaintext
1.
...
IBM Informix Dynamic Server Version 10.00.TC3
Это точно dbimport. Проверил на 5 млн, 6 мин. dbimport -- 1 мин load.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34057433
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисЭто точно dbimport. Проверил на 5 млн, 6 мин. dbimport -- 1 мин load.
А проверь теперь простую таблицу того же размера, но без Блоба.
Я подозреваю, что время будет примерно таким же.
Т.е. меня не интересует разница между dbimport и load. Интересует - есть ли разница в работе dbimport при загрузке таблиц с блобами и без них, т.к. в моем случае эта разница была просто огромной (хотя, возможно, причина и в другом...).
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34057453
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis Журавлев ДенисЭто точно dbimport. Проверил на 5 млн, 6 мин. dbimport -- 1 мин load.
А проверь теперь простую таблицу того же размера, но без Блоба.

Я менял прямо в .sql от экспорта byte на integer, время сокращалось (в шесть раз) до нормального -- 1 мин.


Баг виндового dbimport -- зуб даю.


Сегодня с утра подумал -- а может гипертрейдинг? А сейчас понял какой нафиг гипертрейдинг -- у меня-ж amd64.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34058667
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисЯ менял прямо в .sql от экспорта byte на integer, время сокращалось (в шесть раз) до нормального -- 1 мин.
О-о, вот это уже интереснее. Но все же разница (в шесть раз) не такая уж и значительная. Я могу ее хоть как то объяснить. Но в моем случае, эта разница просто огромная (15 минут и 8 часов)...
Журавлев ДенисБаг виндового dbimport -- зуб даю.
Очень на это похоже, тем более, что и версия IDS довольно старая (9.30.ТС2), да и глюков в этой версии тоже прилично...
Спасибо за помощь!
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34059235
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisО-о, вот это уже интереснее. Но все же разница (в шесть раз) не такая уж и значительная. Я могу ее хоть как то объяснить. Но в моем случае, эта разница просто огромная (15 минут и 8 часов)...
Всего-то в 32 раза ;), я думаю разница зависит от железа.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34088455
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойП.С.: (OFFTOP: при загрузке на ДРУГОЙ сервер) - исправить возможно упоминающиеся названия dbspace, в которых хранились индексы и фрагменты таблиц...
Раз пошла такая пьянка - неплохо бы поправить в FAQ
Как создать копию БД с новым именем?
следующим образом:
вместо
авторнужно исправить, возможно упоминающиеся, названия dbspace, в которых хранились индексы и фрагменты таблиц
на
АнатоЛойнужно заменить возможно упоминающиеся названия отсутствующих dbspace, в которых хранились индексы и фрагменты таблиц, на названия существующих dbspace. Удалять такие названия не рекомендуется, поскольку: индексы, существовавшие как detached, после удаления ссылки на dbspace будут создаваться как attached, что может привести к ошибке "-212 Cannot add index. -142 ISAM error: overflow of tblspace page"
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34093991
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему "заменить" лучше, чем "исправить" ? Тем, что "исправить" может подразумевать "удалить" упоминание ДБ-пространства ?
А если у него все таки других пространств нет - мы ведь говорим о случае, когда надо создать копию для тестирования да еще и на другом сервере, возможно уменьшенную.
А на ошибку "142 ISAM error: overflow of tblspace page" я никогда не наталкивался. Это что, часто бывает ?
Короче, если настаиваешь на исправлении данного FAQ, то я исправлю :)
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34099236
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisА почему "заменить" лучше, чем "исправить" ? Тем, что "исправить" может подразумевать "удалить" упоминание ДБ-пространства ?
Да, именно это я и имел ввиду

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

Других пространств возможно и нет - но раз пространство было ЯВНО прописано в старой схеме - лучше ЯВНО написать имя хотя бы того же пространства, в которое грузится БД (оно же есть - значит есть что написать :). Это приведёт к созданию detached индекса и позволит избежать пресловутой -142. Кстати, такое создание в большей степени воспроизведёт "похожесть" БД :)

vasilis
А на ошибку "142 ISAM error: overflow of tblspace page" я никогда не наталкивался. Это что, часто бывает?

Для меня - часто :)
Пример, где бывает:
поля: около 50 integer , пару DATE, пару DATETIME, 8 FLOAT
2 млн. записей,
EXTENT SIZE 1500000 NEXT SIZE 100000,
около 80 индексов: 30 по одному полю, 2 по двум, 16 по трём и 24 по 4-ём...

vasilis
Короче, если настаиваешь на исправлении данного FAQ, то я исправлю :)
Хм... Да честно говоря, даже интересно стало...Ау, неужто никто больше не натыкался?
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34101542
svat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой
Хм... Да честно говоря, даже интересно стало...Ау, неужто никто больше не натыкался?

ну почему же сразу - никто?! я вот, к примеру, не натыкался... :)
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34108937
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойДругих пространств возможно и нет - но раз пространство было ЯВНО прописано в старой схеме - лучше ЯВНО написать имя хотя бы того же пространства, в которое грузится БД (оно же есть - значит есть что написать :). Это приведёт к созданию detached индекса
detached индексы создаются по умолчанию во всех версиях, начиная с 9.3 (если не ошибаюсь). Неужели ваше замечание актуально и для этих версий ?

АнатоЛой
поля: около 50 integer , пару DATE, пару DATETIME, 8 FLOAT
около 80 индексов: 30 по одному полю, 2 по двум, 16 по трём и 24 по 4-ём...

Мда, а я то ругал наших проектировщиков и девелоперов :))
Такого я даже на наших монстровидных структурах с серверами приложений и объектным хранилищем не видел...
И большая часть индексов автоматические, из справочников ?
Это с какой же скоростью вставляются записи в такую табличку ?

АнатоЛой vasilis
Короче, если настаиваешь на исправлении данного FAQ, то я исправлю :)
Хм... Да честно говоря, даже интересно стало...Ау, неужто никто больше не натыкался?
Пока молчат... Значит, пока не исправляю. :)
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34113552
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis АнатоЛойДругих пространств возможно и нет - но раз пространство было ЯВНО прописано в старой схеме - лучше ЯВНО написать имя хотя бы того же пространства, в которое грузится БД (оно же есть - значит есть что написать :). Это приведёт к созданию detached индекса
detached индексы создаются по умолчанию во всех версиях, начиная с 9.3 (если не ошибаюсь). Неужели ваше замечание актуально и для этих версий ?

Виноват. Каюсь. Речь шла, конечно же, об IDS 7.31
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34113693
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой
поля: около 50 integer , пару DATE, пару DATETIME, 8 FLOAT
около 80 индексов: 30 по одному полю, 2 по двум, 16 по трём и 24 по 4-ём...


vasilis
Мда, а я то ругал наших проектировщиков и девелоперов :))


Это отдельная тема для разговора... Но ведь мы предлагаем советы для ВСЕХ, а не только для админов отруганных, внявших и исправившихся разработчиков?! :)

vasilis
Такого я даже на наших монстровидных структурах с серверами приложений и объектным хранилищем не видел...


Тю... Может я чего не понимаю, но это типичная схема с таблицей фактов (типа "звезда" :), даже в доке по информиксу такое упоминается)... Хотя если вопрос не к таблице, а к индексам: буду только рад высказанным советам (а я ведь ещё ничего и не спрашивал :( :) )

vasilis
И большая часть индексов автоматические, из справочников?


Таки да (см.выше) - "звезда"...

vasilis
Это с какой же скоростью вставляются записи в такую табличку ?


Штук 70 в сек... Средняя ("по больнице":) требуемая скорость вставки (исходя из объёмов):1 запись в 2 сек... Т.е., может и на пределе - надо замыслиться :)
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34113900
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой


Тю... Может я чего не понимаю, но это типичная схема с таблицей фактов (типа "звезда" :), даже в доке по информиксу такое упоминается)... Хотя если вопрос не к таблице, а к индексам: буду только рад высказанным советам (а я ведь ещё ничего и не спрашивал :( :) )




Если на таблице построены индексы

create index ..... on table (filed1);
create index ..... on table (field1,field5);
create index ..... on table (field1,field5,field28);

можно смело отказаться всех кроме последнего.
Он полностью их заменит.

Порядок полей в индексе имеет большое значение.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34115021
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-

Если на таблице построены индексы

create index ..... on table (filed1);
create index ..... on table (field1,field5);
create index ..... on table (field1,field5,field28);

можно смело отказаться всех кроме последнего.
Он полностью их заменит.

Порядок полей в индексе имеет большое значение.

Это я понимаю... Также, насколько я понимаю, советом воспользоваться можно наполовину, поскольку

АнатоЛой vasilis
И большая часть индексов автоматические, из справочников?


Таки да (см.выше) - "звезда"...

и нет возможности отказаться от

Код: plaintext
create  index ..... on table (filed1);

который построен для поддержки внешнего ключа, поскольку полученный эффект не стоит эффекта от удаления самого внешнего ключа... :) :(
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34119732
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойМожет я чего не понимаю, но это типичная схема с таблицей фактов (типа "звезда" :), даже в доке по информиксу такое упоминается)... vasilis
Это с какой же скоростью вставляются записи в такую табличку ?

Штук 70 в сек... Средняя ("по больнице":) требуемая скорость вставки (исходя из объёмов):1 запись в 2 сек... Т.е., может и на пределе - надо замыслиться :)
Учти, что скорость будет падать нелинейно (в зависимости от кол-ва строк).
И вот когда она станет совсем плохой вы сначала будете усиливать железо, а уже потом задумаетесь о той самой "типичной схеме" ?
В хранилищах данных (OLAP, DSS) уже свои правила и типичные приемы работы и массовые индексы там больше мешают. И часто делается ДЕнормализация... И таблица может делиться по ширине на часто и редко используемые данные...
Разве вы, кроме вставки, больше ничего с этими данными не делаете ?
И вот для того, чтобы взять пару столбцов для обработки вы вынуждены тянуть с дисков всю длину строки... А апдейт строки сколько будет менять в многочисленных индексах...
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34119753
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой onstat-
Если на таблице построены индексы
create index ..... on table (filed1);
create index ..... on table (field1,field5);
create index ..... on table (field1,field5,field28);
можно смело отказаться всех кроме последнего.
Он полностью их заменит.

Это я понимаю... Также, насколько я понимаю, советом воспользоваться можно наполовину, поскольку
...нет возможности отказаться от
....
который построен для поддержки внешнего ключа
Если такие автоиндексы все же есть (как указал onstat-), то можно уменьшить их число - просто сначала надо самому (вручную) создать такой составной индекс, а уже потом включить связные ограничения. Сервер достаточно умный, чтобы определить, что нужный индекс для реализации внешнего ключа уже есть и строить новый нет необходимости.
...
Рейтинг: 0 / 0
Как можно создать копии баз на одном сервере?
    #34120360
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis АнатоЛой onstat-
Если на таблице построены индексы
create index ..... on table (filed1);
create index ..... on table (field1,field5);
create index ..... on table (field1,field5,field28);
можно смело отказаться всех кроме последнего.
Он полностью их заменит.

Это я понимаю... Также, насколько я понимаю, советом воспользоваться можно наполовину, поскольку
...нет возможности отказаться от
....
который построен для поддержки внешнего ключа
Если такие автоиндексы все же есть (как указал onstat-), то можно уменьшить их число - просто сначала надо самому (вручную) создать такой составной индекс, а уже потом включить связные ограничения. Сервер достаточно умный, чтобы определить, что нужный индекс для реализации внешнего ключа уже есть и строить новый нет необходимости.
onstat- говорил о том, что можно отказаться от create index ..... on table (filed1); , я же говорю, что если я хочу сохранить констрейнт (а я хочу, и думаю никто не будет спорить, что не стоит удалять констрейнт), то избавиться от индекса не получиться, хоть я его сам создам до наложения констрейнта, хоть это сделает информикс автоматически при создании констрейнта...
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как можно создать копии баз на одном сервере?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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