powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отключение прогресса выполнения многочисленных скриптов из ф@йла
7 сообщений из 7, страница 1 из 1
Отключение прогресса выполнения многочисленных скриптов из ф@йла
    #39710871
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация:

Oracle server 11.2.0.2 x86, windows xp. На машине вылезла ошибка в данных CRC. Ошибка вылезала повсеместно. База использовалась без архив логов, ближайший бекап нужной схемы двухмесячной давности, редо логи частично убиты. Возможности восстановить базу до рабочего состояния нет. При попытке сделать бекап или скомпилировать новый объект получаем instance terminated. Все что удалось сделать с базой, это подключится под sysdba и выполнить запросы типа select from. Поднял бекап, сделал экспорт структуры таблиц без constraint. Далее написал скрипт, который генерируют запросы, которые в качестве единственного поля возвращают скрипт создания для каждой из строк таблицы. Вобщем на выходе имеем файл вида:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
insert into "DBMAINT_ACT" ("DUMMY",
"PDATE_UPDATE",
"RUN_BEGIN",
"RUN_END",
"TYPE_ACTION",
"NOTE",
"SUCCESSED") VALUES ('',
to_date('13.01.2016', 'dd.mm.yyyy'),
to_date('13.01.2016', 'dd.mm.yyyy'),
to_date('13.01.2016', 'dd.mm.yyyy'),
1,
'Действие выполнено',
1);

insert into "DBMAINT_ACT" ("DUMMY",
"PDATE_UPDATE",
"RUN_BEGIN",
"RUN_END",
"TYPE_ACTION",
"NOTE",
"SUCCESSED") VALUES ('',
to_date('13.01.2016', 'dd.mm.yyyy'),
to_date('13.01.2016', 'dd.mm.yyyy'),
to_date('13.01.2016', 'dd.mm.yyyy'),
2,
'Действие выполнено',
1);

insert into "DBMAINT_ACT" ("DUMMY",
"PDATE_UPDATE",
"RUN_BEGIN",
"RUN_END",
"TYPE_ACTION",
"NOTE",
"SUCCESSED") VALUES ('',
to_date('13.01.2016', 'dd.mm.yyyy'),
to_date('13.01.2016', 'dd.mm.yyyy'),
to_date('13.01.2016', 'dd.mm.yyyy'),
3,
'Действие выполнено',
1);



Файл получился более 1.5 Gb. Пришлось FAR-ом разбить его на мелкие файлики по 80-100 Мб. После загрузки всех файлов планирую накинуть constraint-ы и индексы. Суть в том что выполнение скриптов в этих файлах занимает очень много времени. Интересует есть ли возможность ускорить процесс выполнения таких скриптов? Параметры spool:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
set long 1000000
set lines 180
set trimspool on
set heading off
set feedback off
set pages 0
set verify off
set timing off
SET LINESIZE 5000
SET TERMOUT OFF
set serveroutput off



При запуске @script; pl/sql developer моргает, сигнализирую прогресс добавления строк, "row inserted" я не наблюдаю, окно SQL-command чистое и лишь по окончанию выполнения каретка курсора останавливается и дает закомитить скрипт. Мне кажется, developer может быстрее выполнять скрипты за счет возможности отключения вывода информации о прогрессе добавления записи, но в spool нужно оставить вывод информации об ошибках (как оказалось в некоторых строках пользователи забивали одномерную кавычку '). Вот такое вот извращение =)
...
Рейтинг: 0 / 0
Отключение прогресса выполнения многочисленных скриптов из ф@йла
    #39710955
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо insert надо было сделать плоский файл или csv с данными, который и загрузить лодырем.
Быстро и надежно.
...
Рейтинг: 0 / 0
Отключение прогресса выполнения многочисленных скриптов из ф@йла
    #39711000
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KpaqpTuk,

SQL*Plus?
...
Рейтинг: 0 / 0
Отключение прогресса выполнения многочисленных скриптов из ф@йла
    #39711011
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim LejninKpaqpTuk,

SQL*Plus?

Выгружал в SQL*Plus, загружал в developer.

andrey_anonymousВместо insert надо было сделать плоский файл или csv с данными, который и загрузить лодырем.
Быстро и надежно.
Попробую, интересно, если я для каждой таблицы (их ~ 1200) создам свою CSV, смогу ли автоматизировать процесс загрузки SQL*Loader-ом.
...
Рейтинг: 0 / 0
Отключение прогресса выполнения многочисленных скриптов из ф@йла
    #39711028
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KpaqpTukVadim LejninKpaqpTuk,

SQL*Plus?

Выгружал в SQL*Plus, загружал в developer.

andrey_anonymousВместо insert надо было сделать плоский файл или csv с данными, который и загрузить лодырем.
Быстро и надежно.
Попробую, интересно, если я для каждой таблицы (их ~ 1200) создам свою CSV, смогу ли автоматизировать процесс загрузки SQL*Loader-ом.


Ос то какой?

Код: plsql
1.
for %f in ( *.csv ) do echo sqlldr userid=/ control=input.ldr data=%f
...
Рейтинг: 0 / 0
Отключение прогресса выполнения многочисленных скриптов из ф@йла
    #39711096
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim LejninKpaqpTukпропущено...


Выгружал в SQL*Plus, загружал в developer.

пропущено...

Попробую, интересно, если я для каждой таблицы (их ~ 1200) создам свою CSV, смогу ли автоматизировать процесс загрузки SQL*Loader-ом.


Ос то какой?

Код: plsql
1.
for %f in ( *.csv ) do echo sqlldr userid=/ control=input.ldr data=%f


Здорово, похоже то что нужно. Попробую.
...
Рейтинг: 0 / 0
Отключение прогресса выполнения многочисленных скриптов из ф@йла
    #39712401
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,
andrey_anonymous

Примного благодарен.
Написал 2 скрипта, один для генерации контролов и второй для генерации плоских файлов, соотношение 1 контрол к 1 файлу. Затем через командную строку прогнал sql*loader-ом контролы, база загрузилась за пару часов. Ошибки были, но впредь можно будет подшаманить генерацию файлов и они уйдут сами собой.

Спасибо. Новый механизм в копилку =)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отключение прогресса выполнения многочисленных скриптов из ф@йла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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