Difference between revisions of "InitiateBackupCreation"

From SunFlurry wiki
Jump to: navigation, search
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:51, 7 February 2021

  InitiateBackupCreation (Работа с резервным копированием)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер и БД
Исключения:Невозможно превратить в строку, число, процесс резервного копирования уже активен, ошибка сервера.
Визуальность:Нет

Функция инициирует (и ожидает завершения, если необходимо) процесс резервного копирования базы данных и сопутствующих файлов проекта по протоколу, заданному в файлах инициализации сервера. Идентификатор протокола задается из установок в файле инициализации сервера. Если ожидание окончания процесса не задано, функция возвращается сразу же после инициации процесса резервного копирования, иначе только после окончания процесса или возникновения ошибки. Для получения информации по асинхронному процессу, а также для получения описания ошибки, остановившей процесс, используется функция QueryBackupProgress. Только один процесс резервного копирования на сервере может быть активен в отдельно взятое время, это относится как к процессам, инициируемым этой функцией, так и к процессам, запускаемым по расписанию. Если на момент вызова функции, на сервере уже активен процесс копирования, функция вызывает исключение. Исключение также будет вызвано, если функция запущена в режиме ожидания и в процессе копирования произошла ошибка. Внимание: процесс резервного копирования для больших баз может занимать длительное время, для определенных СУБД он также может замедлять или останавливать работу пользователей, он также загружает сервер и увеличивает нагрузку на его жесткий диск. Однако, резервное копирование необходимо выполнять на регулярной основе (лучше всего по расписанию), чтобы не потерять базу данных из-за отказа оборудования или вирусов.

Синтаксис

InitiateBackupCreation(<Идентификатор протокола резервного копирования (STRING)>,<Ожидать завершения процесса (INT)>=0):<Внутренний код процесса резервного копирования (INT)>

Аргументы

  • <Идентификатор протокола резервного копирования (STRING)> - Аргумент задает идентификатор протокола резервного копирования, заданный в файле инициализации сервера.
  • <Ожидать завершения процесса (INT)> - (необязательный аргумент) Аргумент задает режим выполнения функции. Если он равен нулю (по умолчанию), функция инициирует процесс копирования и возвратится сразу же после этого (даже если процесс не удалось начать из-за неверного идентификатора, функция не будет об этом знать, исключение будет создано только если процесс копирования уже активен в данный момент). В этом режиме необходимо периодически использовать функцию QueryBackupProgress для получения информации по запущенному процессу. Если аргумент равен единице, функция будет самостоятельно ожидать окончания процесса копирования, если при его выполнении произошла ошибка, функция вызовет исключение.

Возвращаемое значение

Функция возвращает числовой внутренний код (индекс) созданного процесса копирования. Этот код необходимо использовать при вызове функции QueryBackupProgress.

Примеры

//Фрагмент выводит в лог различные состояния процесса резервного копирования "Создание копии по запросу"
//Цикл завершается в момент получения информации об ошибке или удачном окончании процесса.
iNum:=InitiateBackupCreation("Создание копии по запросу");
аСтр0:="";
аРез:=1;
While аРез=1 Do
  аСтр:="";
  аДата:=0;
  аРез:=QueryBackupProgress(iNum,аСтр,аДата);
  
  аТип:="";
  If аРез=0 Then
    аСтр:="Внутренняя ошибка!";
    аТип:="!";
  ElseIf аРез=2 Then
    аТип:="I";
  ElseIf аРез=3 Then
    аТип:="!";
  EndIf;
  
  If аСтр0<>аСтр Then
    Message(аСтр,аТип);
    аСтр0:=аСтр;
  EndIf;
  Sleep(50);
EndDo;