powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Изменение initial extent'а у таблицы
12 сообщений из 12, страница 1 из 1
Изменение initial extent'а у таблицы
    #32081081
Фотография Vadim_Maximov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, подскажите пожалуйста, каким образом можно изменить initial extent у таблицы в 7.3.4? У индекса - без проблем - тривиальный rebuild и вск ОК, а вот для таблицы почему-то нельзя...
Просто очень огромная база, за счет initial extent'ов, равным 10М - хотелось бы ее (базу) сделать поменьше, а при экспорте/импорте, как я понял параметры создания таблиц остаются какими и были.

Т.е. нужно пройтись по таблицам, поменять у них initial extent, после чего уже делать export/import.

Каким образом можно осуществить подобное?
Или может я вообще чего-то не догоняю?..
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081098
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пересоздание таблиц через CTAS
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081108
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А связи, ограничения и т.д не пропадут????
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081122
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пропадут, нужно пересоздавать.
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081142
Фотография Vadim_Maximov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, а может есть какое-нибудь готовое решение (скрипт или софт какой)?
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081167
Фотография MaxU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в принципе есть вариант поиграться с файлом, полученным с помощью ключа "indexfile" утилиты IMP...
т.е.

1. делаем експорт (если такового еще нет)
2. imp user/pwd@ora_sid file=exp.dmp indexes=y constraints=y indexfile=cre.sql <FULL=Y | FROMUSER=exp_usr> [touser=new_schema]
3. редактируем STORAGE PARAMETERS в "cre.sql"? не забыв при этом сохранить оригинальный "cre.sql" - я обычно делал это с помощью Perl script.
4. в отредактированном "cre.sql", назовем его "cre_new.sql" комментируем ВСЕ кроме создания таблиц, это лучше сделать тем же скриптом (см. пп 4)...
5. запускаем "cre_new.sql" - теперь у вас созданы все таблицы с необходимыми STORAGE PARAMETERS
6. imp user/pwd@ora_sid file=exp.dmp ignore=y (fromuser= touser=) - импортируем данные в созданные ранее таблицы, создаем индексы, "constraints", etc.

зы если найду скрипты на перле то могу выложить сюда, если возникнет необходимость...

удачи!
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081203
Фотография MaxU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел скрипты:
1. step1.pl
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#!/bin/perl
while (<>) {
  s/^REM\s+//;
  next if ( m/\.{ 3 }\s+\d+\s+rows/i || m/^CONNECT/ );
  s/\;/\;\n/g;
  print;
}


2. step2.pl
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
#!/bin/perl
$/ = '';
$new_init_ext_sz =  "1M" ;
while (<>) {
 #                $ 1                 $ 2       $ 3       $ 4     $ 5 
 if ( m/^(create table.*?initial.?)(\d+)(.*?next.?)(\d+)(.*?\;)/ism ) {
   print  "$1 $new_init_ext_sz$ 3 $new_init_ext_sz$ 5 \n\n";
 }
}


запуск:
Код: plaintext
1.
perl step1.pl cre.sql | perl step2.pl > cre_new.sql
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081216
Фотография Vadim_Maximov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но что-то с перлом не получается.
Говорит следующее:
"Процесс не может получить доступ к файлу, так как этот файл занят другим процессом". И ничего не происходит...вообще я в перле совершенный чайник...

2All: неужели никто никогда не сталкивался с подобной проблемой?
Это что же получается: один раз ошибся при задании параметров таблицы и всю жизнь с ней такой живи??????

PS: А сам Oracle что-нибудь говорит по этому поводу? Я что-то не нашел.
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081220
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то непонятно. ???? У меня БД работает под Windows NT. Вообще проблемма затронута актуальная.
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081223
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
напишите скрипт на основе user_tables, user_indexes, user_constraints, user_tab_columns - универсальное решение.
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081224
Фотография Gooddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелосьбы найти скрипт на PL/SQL, это былобы понятно да и Perl мало кто знает.
...
Рейтинг: 0 / 0
Изменение initial extent'а у таблицы
    #32081261
Фотография MaxU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Процесс не может получить доступ к файлу, так как этот файл занят другим процессом" - скорее всего процесс експорта все еще активен или завис...

проверьте есть ли EXP.EXE в списке запущенных задач
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Изменение initial extent'а у таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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