Выгрузка данных из секций
Обычно, выгрузить (dump) данные из секции может быть необходимо в следующих случаях:
- Необходимо выполнить архивацию данных.
- Необходимо освободить дисковое пространство, путём усечения секции. В этом случае рекомендуется сохранить данные, выгрузив их.
Если вы используете лицензию OpenEdge Enterprise RDBMS и база данных стартована в многопроцессорной среде, то наиболее эффективным решением для быстрой выгрузки данных из секции является использование многопоточной бинарной выгрузки. Для этого применяется команда PROUTIL DUMP с параметрами многопоточной выгрузки:
proutil db-name -C dump table-name target-directory partition partition-name -index num -thread n -threadnum nthreads -dumplist dumplist-file
Здесь,
-index num, – индекс, используемый для выгрузки данных. Обратите внимание, здесь не поддерживаются word-индексы. Если параметр не указан, то по умолчанию используется первичный индекс. Для выгрузки данных из секции используйте локальный индекс.
-thread n, – тип бинарной выгрузки:
-
- Если указано значение 0, то выгрузка однопоточная.
- Если указано значение 1, то выгрузка многопоточная.
-threadnum nthreads, – максимальное количество потоков. По умолчанию равно количеству CPU.
-dumplist dumplist-file, – имя файла, в котором будет сохранен список из всех файлов с данными (.bd), созданных во время выгрузки. Этот файл в последствие может быть использован в качестве входного параметра для команды бинарной загрузки.
Примечание:
- Если вы хотите выгрузить данные из всех секций таблицы – не используйте параметр partition.
- Во время многопоточной выгрузки данных из секции, команды PROUTIL DUMP создаёт несколько файлов, по одному на каждый поток. Такие файлы именуются согласно следующему шаблону, table-name_partition–idP_partition-name.bdn. Например, бинарная выгрузка в два потока из секции Order_2013 создаст следующие два файла: order_1P_order_2013.bd и order_1P_order_2013.bd2.
Пример. Предположим нам необходимо сделать бинарную выгрузку данных из таблицы Order_2013. С помощью PROUTIL IDXANALYS мы определили номер локального индекса OrderDateLocalIdx – он равен 70. Следующий пример команды PROUTIL DUMP выполнит многопоточную выгрузку данных в текущий рабочий каталог с помощью индекса с номером 70 в два потока:
proutil sports -C dump order . partition Order_2013 -index 70 -thread 1 -threadnum 2