Приветствую Всех кто мог бы помочь!
Проблема следующая,
Была БД из 20 томов по по гигу на том.
Както начала выдавать сообщение на тему база повреждена,выгрузите и загрузите данные.
Что и сделали.
Выгрузились файлы с данными объемом 16 гигов.
Dump делали текстовый типа
def var i as int.
for each _file where _Tbl-Type = 'T' no-lock.
output to value("dump.p").
put unformatted
"def var i as int init 0." skip
"def var j as int init 1." skip
"DEFINE STREAM fl." skip
"output stream fl to value('dump.log') append." skip
"for each " _file-name " no-lock." skip
"if i = 0 then output to value('" _file-name + ".' + string(j))." skip
"i = i + 1." skip
"export " _file-name "." skip
"if i = 120000 then do:" skip
"put stream fl unformatted '" _file-name + ".' + string(j) + ' = ' i skip." skip
"i = 0. j = j + 1." skip
"output close." skip
"end." skip
"end." skip
"if i <> 0 and i <> 120000 then put stream fl unformatted '" _file-name + ".' + string(j) + ' = ' i skip." skip
"output stream fl close." skip.
output close.
compile dump.p save.
run dump no-error.
if error-status:error then do i = 1 to error-status:num-messages:
displ error-status:get-message(i). pause.
end.
end.
Но когда делали загрузку пришлось увеличить базу еще на 2 тома :
так как эти 16 гигов не поместились.
Загрузку делали так:
def var i as int.
output to value('log.txt').
put today string(time, "HH:MM:SS").
output close.
for each _file where _Tbl-Type = 'T' no-lock.
output to value("load.p").
put unformatted
"def var i as int init 0 label 'Record'." skip
"def var j as int init 1." skip
"def var v-file as char." skip
"DEFINE STREAM fl." skip
"v-file = '" _file-name + ".' + string(j)." skip
"output stream fl to value('log.txt') append." skip
"repeat while search(v-file) <> ?." skip
" displ v-file format 'x(76)'. pause 0." skip
" input from value(v-file)." skip
" repeat:" skip
" i = i + 1." skip
" create " _file-name "." skip
" import " _file-name "." skip
" displ i with overlay centered side-labels row 18 1 down. pause 0." skip
" end." skip
" put stream fl unformatted v-file ' = ' i skip." skip
" j = j + 1." skip
" v-file = '" _file-name + ".' + string(j)." skip
" i = 0." skip
"end." skip
"output close." skip
"output stream fl close." skip.
output close.
compile load.p save.
run load no-error.
if error-status:error then
do i = 1 to error-status:num-messages:
displ error-status:get-message(i). pause.
end.
end.
output to value('log.txt') append.
put today string(time, "HH:MM:SS").
output close.
Кто может сказать , ПОЧЕМУ?!?[/b]
Если это из-за фрагментации, то как можно провести дефрагментацию?!?
Dump/Load
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
re:Dump/Load
Сообщение об ошибке было следующее:
08:17:16 BROKER 0: Начало сеанса multi-user. (333)
08:17:16 BROKER 0: Начинается физический накат (Physical Redo) с адреса 0 . (5326)
08:17:16 BROKER 0: Физический накат завершен по адресу blk 0 off 219 upd 0. (7161)
08:17:16 BROKER 0: ** База данных повреждена. Выгрузите данные и перезагрузите их. (37)
08:17:17 BROKER 0: Версия PROGRESS 9.1D для UNIX54. (4234)
Дамп нельзя сделать из за Data Administration, т.к. файловая система действительно не поддерживает файлы больше 2Gb и есть таблицы, где дамп не просто > 2Gb, а доходит до 5 Gb
Load делали в новую базу созданную следующим образом:
prostrct create <db> <db>.st -blocksize 8192 , также создавалась и версия с ошибкой
Вместо dbanalys`a использовали tabanalys, количество записей до и после так проверяли, все ровно.
Что значит разбить на области?
И, если можно, как осуществить бинарный дамп и загрузку? Информации на данную тему "Ноль".
08:17:16 BROKER 0: Начало сеанса multi-user. (333)
08:17:16 BROKER 0: Начинается физический накат (Physical Redo) с адреса 0 . (5326)
08:17:16 BROKER 0: Физический накат завершен по адресу blk 0 off 219 upd 0. (7161)
08:17:16 BROKER 0: ** База данных повреждена. Выгрузите данные и перезагрузите их. (37)
08:17:17 BROKER 0: Версия PROGRESS 9.1D для UNIX54. (4234)
Дамп нельзя сделать из за Data Administration, т.к. файловая система действительно не поддерживает файлы больше 2Gb и есть таблицы, где дамп не просто > 2Gb, а доходит до 5 Gb
Load делали в новую базу созданную следующим образом:
prostrct create <db> <db>.st -blocksize 8192 , также создавалась и версия с ошибкой
Вместо dbanalys`a использовали tabanalys, количество записей до и после так проверяли, все ровно.
Что значит разбить на области?
И, если можно, как осуществить бинарный дамп и загрузку? Информации на данную тему "Ноль".
Re: re:Dump/Load
Последний раз редактировалось George 28 мар 2005, 13:32, всего редактировалось 1 раз.