Сброс базы данных с помощью PROUTIL - PullRequest
0 голосов
/ 14 сентября 2018

Есть ли способ выгрузить всю базу данных?Я пытался использовать эту команду PROUTIL, но она не работает:

PROUTIL db1 -C DUMP "C:\var".

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Нет.Не существует версии команды proutil, которая выводит всю базу данных одной командой.

Вам необходимо создать сценарий для вывода каждой таблицы по отдельности.Один (упрощенный) способ сделать это примерно так:

output to value(  "dumpall.sh" ).
for each _file no-lock where _tbl-type = "t":
  put unformatted "_proutil " pdbname(1) " -C dump " _file-name " ." skip.
end. 
output close.

(Мета-схема Progress ссылается на таблицы как на «файлы», поскольку номенклатура SQL не совсем захватила мир в начале 80-х годов. _Tbl-type был введен намного позже. Тип "t" - это обычная таблица приложения, "v" - это виртуальная таблица, а "s" - системная таблица. Вы не хотите создавать дампы "v" или "s" и proutilв любом случае не буду их выгружать.)

Сброс (и повторная загрузка) небольшой демонстрационной базы данных таким способом довольно прост.Тем не менее, существует множество возможных улучшений этого подхода, если вы работаете с более существенной базой данных (например, производственной базой данных 100 ГБ).Кроме необработанных данных таблиц есть много других вещей.Специфика варьируется в зависимости от приложения (не все используют каждую функцию БД), но также очень часто необходимо сбросить и перезагрузить значения последовательности, пользователей и разрешения SQL, чтобы назвать несколько.

0 голосов
/ 14 сентября 2018
...