Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
Чемберлен vasilisТ.о. получается (а других идей у меня пока нет), что при создании ссылок на блоб-ы, которых то и нет на самом деле, идет жуткое торможение (как минимум на порядок) загрузки данных в таблицу. Проверить загрузку той же таблицы без блоба я не смог - и так потеряли пару дней, да и софт надо проверить, как он без него будет обходится... Какие у кого еще идеи ? Может, кто то сталкивался с похожими симптомами или грузил такие табблицы с пустыми блобами ? А с какой скоростью логические журналы при этом заполнялись? Они реально копировались или фиктивно? Сколько места оказалось занято в blobspace (по onstat -d update)? Так как загрузка шла dbexport то, естественно, логирования на базе не было. В любом случае, все лог.журналы идут "в сад", т.е. nul. В последнем варианте, где я замерил время загрузки, блобы уже грузились в собственное табличное пространство, а не в блобспейс. Вот размеры занятого табличного пространства, но надо учитывать, что в таблицу продолжается загрузка и сейчас там уже 11 576 261 строка и размер строки (rowsize из tabinfo) =157 байт. Код: plaintext 1. Хочу проверить идею, что по странице (4Кб) на каждое значение блоба таки выделялось... Просто || в .unl-файле. У меня была такая мысль, но, вроде, не подтверждается, т.к. только на эти пустые зарезервированные страницы ушло бы 11 милл.страниц, а их всего там 350 тыс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 16:48 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
А что показывает статистика по пространствам: onstat -D и onstat -g iof onstat -g iov Понятно, что целиком страницы может и не меняются, но могут резервироваться отдельно, что может сильно нагружать логические журналы (независимо от режима журнализации базы)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 18:15 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
ЧемберленА что показывает статистика по пространствам: onstat -D и onstat -g iof onstat -g iov Понятно, что целиком страницы может и не меняются, но могут резервироваться отдельно, что может сильно нагружать логические журналы (независимо от режима журнализации базы)... Та статистика (для конкретного случая) уже "канула в лету". А вот о нагрузке на логи мысль интересная. Надо бы помоделировать, да где же это время взять... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 17:40 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
vasilis vasilisПопытавшись объединить обсуждавшиеся вопросы и используя личный опыт попытался написать FAQ, который превратился в небольшую статью :) Она, конечно, немного больше вопроса переименования и создания копии БД, тем не менее, надеюсь, будет интересна всем, кто с такими проблемами изредка (или, к сожалению, часто) сталкивается. Читайте, обсуждайте, предлагайте, критикуйте... Как создать копию БД с новым именем? Как выгрузить базу утилитой dbexport и загрузить с новым именем утилитой dbimport? http://www.sql.ru/faq/faq_topic.aspx?fid=710 А что, никто так и не почитал ? Вряд ли там совсем нет ошибок или неточностей :) Читал, поставил высокую оценку. Раньше бы попалась - была бы очень познавательной :) Кое-что выходит за пределы моего опыта, поэтому не могу ни покритиковать ни дополнить. Есть что добавить по поводу глюков dbexport/dbimport, но эти сведения выходят за рамки указанной темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 18:44 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 09:03 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
А может я и ошибся. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 09:44 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 08:39 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЭто точно dbimport. Проверил на 5 млн, 6 мин. dbimport -- 1 мин load. А проверь теперь простую таблицу того же размера, но без Блоба. Я подозреваю, что время будет примерно таким же. Т.е. меня не интересует разница между dbimport и load. Интересует - есть ли разница в работе dbimport при загрузке таблиц с блобами и без них, т.к. в моем случае эта разница была просто огромной (хотя, возможно, причина и в другом...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 15:19 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
vasilis Журавлев ДенисЭто точно dbimport. Проверил на 5 млн, 6 мин. dbimport -- 1 мин load. А проверь теперь простую таблицу того же размера, но без Блоба. Я менял прямо в .sql от экспорта byte на integer, время сокращалось (в шесть раз) до нормального -- 1 мин. Баг виндового dbimport -- зуб даю. Сегодня с утра подумал -- а может гипертрейдинг? А сейчас понял какой нафиг гипертрейдинг -- у меня-ж amd64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 15:24 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЯ менял прямо в .sql от экспорта byte на integer, время сокращалось (в шесть раз) до нормального -- 1 мин. О-о, вот это уже интереснее. Но все же разница (в шесть раз) не такая уж и значительная. Я могу ее хоть как то объяснить. Но в моем случае, эта разница просто огромная (15 минут и 8 часов)... Журавлев ДенисБаг виндового dbimport -- зуб даю. Очень на это похоже, тем более, что и версия IDS довольно старая (9.30.ТС2), да и глюков в этой версии тоже прилично... Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 22:08 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
vasilisО-о, вот это уже интереснее. Но все же разница (в шесть раз) не такая уж и значительная. Я могу ее хоть как то объяснить. Но в моем случае, эта разница просто огромная (15 минут и 8 часов)... Всего-то в 32 раза ;), я думаю разница зависит от железа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 10:43 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойП.С.: (OFFTOP: при загрузке на ДРУГОЙ сервер) - исправить возможно упоминающиеся названия dbspace, в которых хранились индексы и фрагменты таблиц... Раз пошла такая пьянка - неплохо бы поправить в FAQ Как создать копию БД с новым именем? следующим образом: вместо авторнужно исправить, возможно упоминающиеся, названия dbspace, в которых хранились индексы и фрагменты таблиц на АнатоЛойнужно заменить возможно упоминающиеся названия отсутствующих dbspace, в которых хранились индексы и фрагменты таблиц, на названия существующих dbspace. Удалять такие названия не рекомендуется, поскольку: индексы, существовавшие как detached, после удаления ссылки на dbspace будут создаваться как attached, что может привести к ошибке "-212 Cannot add index. -142 ISAM error: overflow of tblspace page" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 05:54 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
А почему "заменить" лучше, чем "исправить" ? Тем, что "исправить" может подразумевать "удалить" упоминание ДБ-пространства ? А если у него все таки других пространств нет - мы ведь говорим о случае, когда надо создать копию для тестирования да еще и на другом сервере, возможно уменьшенную. А на ошибку "142 ISAM error: overflow of tblspace page" я никогда не наталкивался. Это что, часто бывает ? Короче, если настаиваешь на исправлении данного FAQ, то я исправлю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 13:24 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
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, то я исправлю :) Хм... Да честно говоря, даже интересно стало...Ау, неужто никто больше не натыкался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 23:46 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
АнатоЛой Хм... Да честно говоря, даже интересно стало...Ау, неужто никто больше не натыкался? ну почему же сразу - никто?! я вот, к примеру, не натыкался... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 16:14 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойДругих пространств возможно и нет - но раз пространство было ЯВНО прописано в старой схеме - лучше ЯВНО написать имя хотя бы того же пространства, в которое грузится БД (оно же есть - значит есть что написать :). Это приведёт к созданию detached индекса detached индексы создаются по умолчанию во всех версиях, начиная с 9.3 (если не ошибаюсь). Неужели ваше замечание актуально и для этих версий ? АнатоЛой поля: около 50 integer , пару DATE, пару DATETIME, 8 FLOAT около 80 индексов: 30 по одному полю, 2 по двум, 16 по трём и 24 по 4-ём... Мда, а я то ругал наших проектировщиков и девелоперов :)) Такого я даже на наших монстровидных структурах с серверами приложений и объектным хранилищем не видел... И большая часть индексов автоматические, из справочников ? Это с какой же скоростью вставляются записи в такую табличку ? АнатоЛой vasilis Короче, если настаиваешь на исправлении данного FAQ, то я исправлю :) Хм... Да честно говоря, даже интересно стало...Ау, неужто никто больше не натыкался? Пока молчат... Значит, пока не исправляю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 13:20 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
vasilis АнатоЛойДругих пространств возможно и нет - но раз пространство было ЯВНО прописано в старой схеме - лучше ЯВНО написать имя хотя бы того же пространства, в которое грузится БД (оно же есть - значит есть что написать :). Это приведёт к созданию detached индекса detached индексы создаются по умолчанию во всех версиях, начиная с 9.3 (если не ошибаюсь). Неужели ваше замечание актуально и для этих версий ? Виноват. Каюсь. Речь шла, конечно же, об IDS 7.31 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 18:23 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
АнатоЛой поля: около 50 integer , пару DATE, пару DATETIME, 8 FLOAT около 80 индексов: 30 по одному полю, 2 по двум, 16 по трём и 24 по 4-ём... vasilis Мда, а я то ругал наших проектировщиков и девелоперов :)) Это отдельная тема для разговора... Но ведь мы предлагаем советы для ВСЕХ, а не только для админов отруганных, внявших и исправившихся разработчиков?! :) vasilis Такого я даже на наших монстровидных структурах с серверами приложений и объектным хранилищем не видел... Тю... Может я чего не понимаю, но это типичная схема с таблицей фактов (типа "звезда" :), даже в доке по информиксу такое упоминается)... Хотя если вопрос не к таблице, а к индексам: буду только рад высказанным советам (а я ведь ещё ничего и не спрашивал :( :) ) vasilis И большая часть индексов автоматические, из справочников? Таки да (см.выше) - "звезда"... vasilis Это с какой же скоростью вставляются записи в такую табличку ? Штук 70 в сек... Средняя ("по больнице":) требуемая скорость вставки (исходя из объёмов):1 запись в 2 сек... Т.е., может и на пределе - надо замыслиться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 19:00 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
АнатоЛой Тю... Может я чего не понимаю, но это типичная схема с таблицей фактов (типа "звезда" :), даже в доке по информиксу такое упоминается)... Хотя если вопрос не к таблице, а к индексам: буду только рад высказанным советам (а я ведь ещё ничего и не спрашивал :( :) ) Если на таблице построены индексы create index ..... on table (filed1); create index ..... on table (field1,field5); create index ..... on table (field1,field5,field28); можно смело отказаться всех кроме последнего. Он полностью их заменит. Порядок полей в индексе имеет большое значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 20:48 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
onstat- Если на таблице построены индексы create index ..... on table (filed1); create index ..... on table (field1,field5); create index ..... on table (field1,field5,field28); можно смело отказаться всех кроме последнего. Он полностью их заменит. Порядок полей в индексе имеет большое значение. Это я понимаю... Также, насколько я понимаю, советом воспользоваться можно наполовину, поскольку АнатоЛой vasilis И большая часть индексов автоматические, из справочников? Таки да (см.выше) - "звезда"... и нет возможности отказаться от Код: plaintext который построен для поддержки внешнего ключа, поскольку полученный эффект не стоит эффекта от удаления самого внешнего ключа... :) :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 11:27 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойМожет я чего не понимаю, но это типичная схема с таблицей фактов (типа "звезда" :), даже в доке по информиксу такое упоминается)... vasilis Это с какой же скоростью вставляются записи в такую табличку ? Штук 70 в сек... Средняя ("по больнице":) требуемая скорость вставки (исходя из объёмов):1 запись в 2 сек... Т.е., может и на пределе - надо замыслиться :) Учти, что скорость будет падать нелинейно (в зависимости от кол-ва строк). И вот когда она станет совсем плохой вы сначала будете усиливать железо, а уже потом задумаетесь о той самой "типичной схеме" ? В хранилищах данных (OLAP, DSS) уже свои правила и типичные приемы работы и массовые индексы там больше мешают. И часто делается ДЕнормализация... И таблица может делиться по ширине на часто и редко используемые данные... Разве вы, кроме вставки, больше ничего с этими данными не делаете ? И вот для того, чтобы взять пару столбцов для обработки вы вынуждены тянуть с дисков всю длину строки... А апдейт строки сколько будет менять в многочисленных индексах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 14:53 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
АнатоЛой onstat- Если на таблице построены индексы create index ..... on table (filed1); create index ..... on table (field1,field5); create index ..... on table (field1,field5,field28); можно смело отказаться всех кроме последнего. Он полностью их заменит. Это я понимаю... Также, насколько я понимаю, советом воспользоваться можно наполовину, поскольку ...нет возможности отказаться от .... который построен для поддержки внешнего ключа Если такие автоиндексы все же есть (как указал onstat-), то можно уменьшить их число - просто сначала надо самому (вручную) создать такой составной индекс, а уже потом включить связные ограничения. Сервер достаточно умный, чтобы определить, что нужный индекс для реализации внешнего ключа уже есть и строить новый нет необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 14:58 |
|
||
|
Как можно создать копии баз на одном сервере?
|
|||
|---|---|---|---|
|
#18+
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); , я же говорю, что если я хочу сохранить констрейнт (а я хочу, и думаю никто не будет спорить, что не стоит удалять констрейнт), то избавиться от индекса не получиться, хоть я его сам создам до наложения констрейнта, хоть это сделает информикс автоматически при создании констрейнта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 17:41 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=34119753&tid=1608558]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
5ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 369ms |

| 0 / 0 |
