top-shop.ru
Кошелек женский Fabula
Решение программистской задачи - имена файлов для пакета DBMS_DATAPUMP составляются по кольцевой схеме, а каждый следующий экспорт сдвигает указатель кольца файлов. Задача решена при создании JOB-а для Export Data Pump.

Основная идея

Планируем JOB в SHEDULER Oracle, при каждом следующем запуске job-а он должен сам составлять имя файла для экспорта, такое, чтобы запись файлов велась по кольцевой схеме, заданной длинны N (минимально два дамп-файла). Таким образом, перезаписываться всегда будет самый старый экспорт базы данных, а мы гарантированно сохраняем N последних дампов базы данных.

При этом мы независимо устанавливаем периодичность запусков "экспортного job-а", раз в неделю, в день, вручную вне очереди планировщика - неважно, кольцевое именование файлов от этого не зависит, даже если вы запустите два раза в день - все равно будет перезаписываться самый старый дамп базы.

  1. Делаем SEQUENCE, который будет отсчитывать запуски экспортов:
    CREATE SEQUENCE KOLCO_EXPORTA
      START WITH 1
      MAXVALUE 999999999999999999999999999
      MINVALUE 1
      NOCYCLE
      NOCACHE
      NOORDER;
    
  2. Составляем PL/SQL программу для JOB-а:
    DECLARE
      pos_kolco NUMBER;
      fname     VARCHAR2(50);
    BEGIN
      -- Вот основная фишка, тут N=2, получаем "кольцеобразно изменяющийся номер"
      -- установите необходимую Вам длину цикла перезаписи
      SELECT MOD(KOLCO_EXPORTA.NEXTVAL, 2) INTO pos_kolco FROM dual; 
    
      -- Примерно таким образом составляем имена файлов .DMP и .LOG
      fname := 'FULL_' || pos_kolco ||'.DMP';
    
      -- Дальше обязательно делаете проверки на существование файлов и удаляете их, если
      -- они существуют - иначе пакет DBMS_DATAPUMP выпадет в EXCEPTION
    
      -- Дальше сама механика запуска DATA PUMP 
      -- handle := dbms_datapump.open('EXPORT','FULL'); 
      -- и т. д.
    
    END;
    
    
Решение PL/SQL: Как записывать экспорт БД Oracle "по кольцу из файлов". Кольцевая перезапись дампов - файлов экспортов. dbms_datapump.open('EXPORT','FULL').

содержание
Блог администратора Oracle.