Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как можно создать копии баз на одном сервере? / 25 сообщений из 48, страница 1 из 2
29.09.2006, 13:41
    #34022085
Середа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно создать копии баз на одном сервере?
Стоит задача следующего вида:

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

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

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

dbexport -ss BASE_A > base_a.sql

dbimport -c base_a.sql BASE_B

Так?
...
Рейтинг: 0 / 0
29.09.2006, 14:58
    #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
29.09.2006, 15:06
    #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
29.09.2006, 15:26
    #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
29.09.2006, 15:32
    #34022644
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно создать копии баз на одном сервере?
Мда, похоже, что даже на такую элементарную операцию нужно таки FAQ написать...
...
Рейтинг: 0 / 0
02.10.2006, 15:01
    #34026200
Середа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно создать копии баз на одном сервере?
vasilisМда, похоже, что даже на такую элементарную операцию нужно таки FAQ написать...
А что не так?
...ну под новым именем да и в определенное пространство...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

У меня и так много вопросов к данной операции - убирать что-то из схемы рисковать не хочу.
а у вас какая версия SqlEditor?
Я всегда после срыва dbimport скрипты им догружаю
...
Рейтинг: 0 / 0
04.10.2006, 13:18
    #34031411
Середа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно создать копии баз на одном сервере?
Тан СередаВариант хороший, но у меня где-то проблема. dbimport отлично все грузит, а вот SqlEditor ругается на синтаксис в процедурах. Так что я не знаю как потом загрузить "остаток".
dbaccess можно применить.
А как ругается SqlEditor, какая ошибка, в каком месте?
Выделяет точку с запятой в конце синтаксической конструкции.
Я вчера с этим ковырялся, а с тех поре еще много я чем - подробности не могу вспомнить :(. Но у меня сложилось впечатление, что несмотря на то что везде все настроено (локали) SqlEditor запинается на символе\символах из "не той" локали.
...
Рейтинг: 0 / 0
04.10.2006, 13:20
    #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
06.10.2006, 14:32
    #34037820
Leonid Vorontsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно создать копии баз на одном сервере?
А почему не обсуждается onuload/onload? По-моему, очень даже - и быстро, и таблицы дефрагментируются заодно...
...
Рейтинг: 0 / 0
09.10.2006, 17:21
    #34042443
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно создать копии баз на одном сервере?
Попытавшись объединить обсуждавшиеся вопросы и используя личный опыт попытался написать FAQ, который превратился в небольшую статью :)
Она, конечно, немного больше вопроса переименования и создания копии БД, тем не менее, надеюсь, будет интересна всем, кто с такими проблемами изредка (или, к сожалению, часто) сталкивается.
Читайте, обсуждайте, предлагайте, критикуйте...
Как создать копию БД с новым именем?
Как выгрузить базу утилитой dbexport и загрузить с новым именем утилитой dbimport?

http://www.sql.ru/faq/faq_topic.aspx?fid=710
...
Рейтинг: 0 / 0
11.10.2006, 15:03
    #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
11.10.2006, 15:15
    #34047677
Чемберлен
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно создать копии баз на одном сервере?
vasilisТ.о. получается (а других идей у меня пока нет), что при создании ссылок на блоб-ы, которых то и нет на самом деле, идет жуткое торможение (как минимум на порядок) загрузки данных в таблицу.
Проверить загрузку той же таблицы без блоба я не смог - и так потеряли пару дней, да и софт надо проверить, как он без него будет обходится...
Какие у кого еще идеи ? Может, кто то сталкивался с похожими симптомами или грузил такие табблицы с пустыми блобами ?

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

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

http://www.sql.ru/faq/faq_topic.aspx?fid=710
А что, никто так и не почитал ? Вряд ли там совсем нет ошибок или неточностей :)
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как можно создать копии баз на одном сервере? / 25 сообщений из 48, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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