Oracle. Импорт схем с исключением больших таблиц

Восстановление дампа размером 98 Гб занимает примерно 233 минут (03:53). Довольно длительное время, а с учетом того что схемы ресторятся часто и при этом содержат практически одни и те же данные (дампы за разные даты), то получаем как минимум 2 проблемы:

  1. Большой объем схемы, который занимает табличное пространство и дисковое пространство
  2. Грустные сотрудники 😞, которые ожидают окончания рестора БД
В связи с этим, было решено восстанавливать схемы исключая из них часть таблиц, особенно больших размеров.

Логично, что данное решение имеет недостаток - в случае, если понадобятся данные из исключенной таблицы, то придется выполнять доимпорт схемы. Но это не страшно, дабы эти данные бывают нужны в 1 из 10 случаев.

После исключения таблиц - время рестора уменьшилось до 100 минут (01:40). Довольно хороший результат 💪

С учетом, что рестор выполняется скриптом (sh), то в коде используется следующая команда:

# Импорт таблиц за исключением некоторых, чтобы ускорить рестор (EXCLUDE)
$CMD $SYSUSER/$SYSPSWD$URL SCHEMAS=$FROM_USERNAME DIRECTORY=BACKUP_DIR REMAP_SCHEMA=$FROM_USERNAME:$TO_USERNAME TRANSFORM=OID:N DUMPFILE=$FILENAME LOGFILE=LOG_DIR:$LOGFILE REMAP_TABLESPACE=$FROM_TABLESPACE:$TO_TABLESPACE parallel=3 EXCLUDE=TABLE:\"IN\(\'SOFITDOCBODY\',\'DIGEST\',\'SIGNEXPORTLOG\', \'DIGESTSIGN\',\'HISTORYMODIFY\',\'TASKJOURNAL\',\'ANYDATA\'\,\'DATAOBJECTCHANGELOG\',\'DOCJOURNAL\',\'REFJOURNAL\',\'DOCEVERRLOG\',\'DOCATTACH\',\'REFATTACH\',\'REFATTACHTYPES\',\'MSG\',\'SYSEVENT\'\)\"

# После импорта БД, создаем пустые таблицы по тем что пропустили (INCLUDE)
$CMD $SYSUSER/$SYSPSWD$URL SCHEMAS=$FROM_USERNAME DIRECTORY=BACKUP_DIR REMAP_SCHEMA=$FROM_USERNAME:$TO_USERNAME TRANSFORM=OID:N DUMPFILE=$FILENAME LOGFILE=LOG_DIR:$LOGFILE2 REMAP_TABLESPACE=$FROM_TABLESPACE:$TO_TABLESPACE parallel=3 CONTENT=METADATA_ONLY REMAP_TABLESPACE=ANYDATA_TBS:USERS INCLUDE=TABLE:\"IN\(\'SOFITDOCBODY\',\'DIGEST\',\'SIGNEXPORTLOG\', \'DIGESTSIGN\',\'HISTORYMODIFY\',\'TASKJOURNAL\',\'ANYDATA\'\,\'DATAOBJECTCHANGELOG\',\'DOCJOURNAL\',\'REFJOURNAL\',\'DOCEVERRLOG\',\'DOCATTACH\',\'REFATTACH\',\'REFATTACHTYPES\',\'MSG\',\'SYSEVENT\'\)\"

*Использование обратного слеша (\) обусловлено спецификой sh-скрпитов, которые используются для экранирования символов кавычек и закрывающей скобки.



Комментарии

Популярные сообщения из этого блога

Linux (РедОС). Сброс пароля

ТФФ 35.0. Полный перечень документов альбома ТФФ (Таблица 2)

ТФФ 34.0. Полный перечень документов альбома ТФФ (Таблица 2)

SQL Error [53200]: ОШИБКА: нехватка разделяемой памяти Подсказка: Возможно, следует увеличить параметр max_locks_per_transaction

РедОС. Подключение к сетевой папке