
Ускорение резервного копирования активных баз данных в OpenEdge
Оптимизация времени, затрачиваемого на резервное копирование, играет ключевую роль в минимизации простоев и обеспечении бесперебойной работы приложений. В последней версии OpenEdge 12.8 LTS были внедрены усовершенствованные функции утилиты PROBKUP, которые значительно повышают скорость резервного копирования в режиме реального времени.
Компания Progress рекомендует создавать резервные копии исходных баз данных перед началом любых процедур восстановления. Это гарантирует наличие резервной копии в случае, если восстановление приведет к потере функциональности базы данных. После успешного восстановления и тестирования рекомендуется создать резервную копию восстановленной версии перед ее вводом в эксплуатацию.
Многопоточное резервное копирование представляет собой эффективный метод повышения производительности процедуры резервного копирования в реальном времени. По умолчанию эта функция активирована для онлайн- и офлайн-резервного копирования в OpenEdge 13.0.
probkup online newb testdb.bk -thread 1
Для отключения многопоточности необходимо использовать параметр “-thread 0” в командной строке при выполнении резервного копирования.
probkup online newb testdb.bk -thread 0
Если параметр “-threadnum” не указан, система автоматически устанавливает максимальное количество потоков, равное числу доступных процессоров. Коэффициент буферизации записи по умолчанию составляет 1024, определяя объем памяти, используемой для записи данных в буфер.
probkup online testdb testdb.bk -com ... Number of threads not specified. The default number of threads used is 4. (20669) Write buffer factor (-wbf): 1024 (20786) Backup has spawned 4 worker threads. (20857) Backup will be compressed using ZSTD compression. (20279) Compression level set to 3. (20280) 1079 active blocks out of 1098 blocks in testdb will be dumped. (6686) 256 BI blocks will be dumped. (6688) Backup requires an estimated 6.2 MBytes of media. (9285) Restore would require an estimated 1595 db blocks using 6.2 MBytes of media. (9286) Backed up 1335 db blocks in 00:00:01 Wrote a total of 18 backup blocks using 2.4 MBytes of media. (13625) Backup complete. (3740)
Пример конфигурации многопоточного резервного копирования показывает, как утилита PROBKUP настраивает максимальное количество потоков в зависимости от заданного параметра. В системе с четырьмя процессорами, при значении “-numthreads”, превышающем удвоенное количество процессоров, утилита ограничивает максимальное количество потоков до восьми, что соответствует удвоенному числу процессоров.
probkup online newb testdb.bk -threadnum 50 ... Thread number specified exceeds the max/available CPUs. Maximum number of threads that will be used is 8. (20671) Write buffer factor (-wbf): 1024 (20786) Backup has spawned 8 worker threads. (20857) 10596116 active blocks out of 10596147 blocks in testdb will be dumped. (6686) 256 BI blocks will be dumped. (6688) Backup requires an estimated 89.9 GBytes of media. (9285) Restore would require an estimated 1595 db blocks using 6.2 MBytes of media. (9286) Backed up 10596372 db blocks in 00:05:20 Wrote a total of 311959 backup blocks using 80.9 GBytes of media. (13625) Backup complete. (3740)
Если указан параметр “-thread”, а параметр “-threadnum” отсутствует, используется значение по умолчанию “-threadnum”. Значение по умолчанию “-threadnum” представляет собой минимальное значение между количеством процессоров в системе и жёстко заданным значением, равным шести. Эти настройки предотвращают перегрузку системы многопоточностью. Например, в системе с четырьмя процессорами используется четыре потока, а в системе с восемью процессорами — шесть потоков. Хотя значение по умолчанию ограничено шестью потоками, наилучшие результаты обычно достигаются при использовании количества потоков, равного числу процессоров в системе.
Для получения подробной информации о синтаксисе и функциях утилиты PROBKUP обратитесь к соответствующему разделу документации: “PROBKUP utility“.