powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как можно создать копии баз на одном сервере?
25 сообщений из 48, страница 1 из 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
25 сообщений из 48, страница 1 из 2
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как можно создать копии баз на одном сервере?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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