D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Команды системы (TCL) / hot-backup

hot-backup

Настройка и управление системой горячего резервирования HotBackup

hot-backup {{command} {server=name}}

Обычно команду вводят без аргументов - в этом случае на экран выводится меню. Описание наиболее важных понятий системы горячего резервирования можно найти в разделе "hot backup, General".

Через меню можно управлять всеми операциями. Если терминал позволяет, то можно использовать клавиши со стрелками там, где это указано:

Enter Выбрать подсвеченную опцию.
число От 0 до 9. Выбрать соответствующую опцию. '0' -- опция 10.
CTRL-N Переместить курсор вниз. (стрелка вниз)
CTRL-B Переместить курсор вверх. (стрелка вверх)
CTRL-X Отменить. Применимо только там, где запрашивается ввод.
ESC Выйти. Вернуться к предыдущему меню. Эту клавишу можно использовать для последовательного выхода из всех меню, вплоть до выхода на уровень TCL.
Q Выйти. Вернуться к предыдущему меню.
X Завершить. Вернуться на уровень TCL из любого меню.

Когда курсор перемещается к новому полю, в области сообщений выводится краткая подсказка.

Структура экрана

Экран делится на две области:

  • Область меню, которая предназначена для вывода меню.
  • Область сообщений, где выводятся результаты, сообщения или подсказки.
Определения
Server - сервер. Фоновый процесс. Серверы работают парами - по одному на каждой системе.
Master - ведущий. Система 'master' - это главная система, где работают пользователи. Она выступает в роли ведущей системы при горячем резервировании. В расширительном смысле, сервер, на котором функционирует master-система, является master-сервером.
Slave - ведомый. Система 'slave' - это резервная копия master-системы. Она выступает в роли ведомой системы при горячем резервировании. В расширительном смысле, сервер, на котором функционирует slave-система, является slave-сервером.
Transaction log queue - очередь журнала транзакций. Все обновления в master-системе непосредственно не передаются в slave-систему. Вместо этого, они помещаются в очередь журнала транзакций на master-системе, которая регулярно опустошается в режиме FIFO (первый пришел, первый вышел). В норме, эта очередь должна быть очень маленькой. Когда транзакция извлекается из очереди, ей назначается транзакционный номер. Транзакция физически удаляется из очереди только тогда, когда slave-сервер подтвердит выполнение транзакции. Так что, если что-то неправильное произойдет, например, перед сохранением записи на удаленной машине, то данная транзакция может быть снова послана на slave-сервер.
Log slave updates - вести журнал обновлений slave-системы. В обычном режиме функционирования slave-системы обновления, производимые по инициативе самого slave-сервера, не записываются в очередь журнала транзакций. Однако, систему горячего резервирования можно настроить так, чтобы slave-система вела себя как master-система по отношению к другой slave-системе. Такое поведение задается опцией 'Log slave updates'.
Apply Updates - выполнять обновления. Slave-серверу можно приказать НЕ модифицировать базу данных на slave-системе. При этом обновления, поступающие из master-системы, НЕ выполняются. Вместо этого они помещаются во временный файл. Цель, которая здесь преследуется - получить на slave-системе "неподвижную" базу данных без остановки master-системы, чтобы, например, сделать полное сохранение базы данных. Обновления базы данных на slave-системе можно выполнить затем в любое время.
File and account auto-create - автоматически создавать файлы и счета. Предполагается, что база данных slave-системы является точной копией базы данных master-системы. Данная опция предписывает slave-серверу создавать счета или файлы, отсутствующие на slave-системе.
Helper - помощник. На slave-системе длинные операции, вроде очистки больших файлов, не выполняются самим slave-сервером, поскольку в это время он не смог бы обрабатывать поступающие данные. Для выполнения таких длинных операций slave-сервер создает фантомные процессы-помощники.
Large file creation - создание больших файлов. Файлы с модуло больше 100 создаются специальным образом. Сначала самим slave-сервером создается маленький файл (101), а затем создается процесс-помощник, который реорганизует этот файл, доводя его размер до необходимого. Преимуществом такого подхода является то, что файл создается практически мгновенно, становясь доступным для slave-системы сразу, без приостановки slave-сервера. Slave-сервер периодически проверяет состояние процесса-помощника, чтобы зафиксировать окончание его работы.
Temporary hold files - файлы временного хранения данных. Иногда slave-сервер создает временные файлы на slave-системе для хранения данных, которые он не может сразу поместить по назначению. Например, если получена команда очистки файла, то реально очистку выполняет процесс-помощник, а файл временного хранения данных используется для того, чтобы обновления очищаемого файла, поступившие после команды очистки, не были бы также удалены.
Управление D-указателями

Для того чтобы получить возможность записывать данные в файлы, slave-сервер производит некоторые проверки и изменения в файловых D-указателях в slave-системе:

  • Удаляются ограничения на обновление. Это должно гарантировать, что slave-сервер будет иметь право записи в каждый конкретный файл.
  • Проверяется точность маршрутных имен подпрограмм, указанных в CALLX-корреляциях. Имена счета и файла, где располагается подпрограмма, ищутся в соответствующем ей каталогизированном объекте в MD того счета, где расположен данный файл. Если подпрограмма не найдена, то CALLX-корреляция удаляется.
  • Проверяется точность маршрута к целевому файлу в Bridge-корреляциях. Если целевой файл не найден, то Bridge-корреляция удаляется.

Однако, количество проверок неизбежно ограничено. Не контролируются A-корреляции, а также ссылки на файлы в BASIC-подпрограммах. Поэтому, если не предпринимать специальных мер предосторожности, то возможно, что slave-сервер прекратит попытку обновления файла. Следует заметить, что никакой потери данных при этом НЕ произойдет, поскольку такая неудачная транзакция подтверждена не будет и может быть повторно передана. Запустив сервер в режиме трассировки, можно выявить, какая запись и какой файл являются причиной данной проблемы.

Установка

Войдите в счет 'dm' и введите:

hot-backup

При первом вызове этой команды следует определить сервер. На экране отображается следующее меню:

Setup Server
1 New Server
Select and press <Return>

Нажмите клавишу <Return> и введите соответствующую информацию, как это объяснено в следующей ниже секции 'Setup Server'.

Setup Server - настройка сервера

Меню 'Setup Server' выводится автоматически при первом вызове 'hot-backup', или при выборе соответствующей опции в главном меню.

Server name :

Имя сервера - любая строка букв длиной до 8 символов. Этим именем будет называться данный сервер во всех других меню. Если в виртуальной машине D3 определен только один сервер, то он будет подразумеваться во всех командах.

Server type :

Тип сервера - Master или Slave. В зависимости от указанного здесь типа сервера, некоторые поля данного меню станут неприменимыми.

Host name :

Только для типа Master. Имя Unix-хоста, где расположен соответствующий slave-сервер.

TCP port number :

Для slave-сервера - номер TCP-порта (от 1024 до 32767), на котором он слушает. Для master-сервера - номер TCP-порта соответствующего slave-сервера.

Protocol : inet

Протокол - изменять не нужно, поскольку в настоящий момент поддерживается только сетевой протокол tcpip (inet).

Log slave update :

Только для slave-сервера. Если указать 'ON', то все изменения, получаемые slave-сервером, будут помещаться в очередь журнала транзакций для передачи на другую систему. Если указать 'OFF', то обновления не будут помещаться в очередь. По умолчанию предполагается 'OFF'.

Check period :

Только для master-сервера. Периодичность в секундах, с которой master-сервер будет выполнять ряд системных проверок. 0 - запретить все проверки. Периодичность в 300 секунд (5 минут) подойдет для большинства систем.

TxLog timer :

Только для master-сервера. Периодичность в секундах, с которой master-сервер будет опустошать очередь журнала транзакций. Если очередь не пуста, то сервер будет ее опустошать непрерывно. Если в какой-то момент она опустеет, то master-сервер перейдет в "спящий" режим на указанный здесь период. Разумно указать маленькое значение (2 или 3 секунды).

Notify list :

Список пользователей D3 или номеров портов D3, куда надо посылать уведомление в случае ошибки (указываются через запятую). Для номеров портов используется синтаксис как в команде TCL 'msg'. Например, чтобы посылать уведомления пользователям 'dm' и 'bob', а также на порт 0, следует ввести: dm,bob,!0

Apply updates :

Только для slave-сервера. 'ON' или 'OFF'. Дать инструкцию slave-серверу выполнять обновления, которые он получает от соответствующего master-сервера, немедленно (ON) или задерживать их (OFF) до получения специальной команды. Обычно эта опция устанавливается в 'ON'. Заметим, что если запретить выполнение обновлений, то спецификация сервера будет модифицирована автоматически. Когда slave-сервер стартует, он сообщает о состоянии этой опции. Выполнение обновлений не следует запрещать на слишком большое время, поскольку пока не будут выполнены обновления, база данных slave-системы не будет точной копией базы данных master-системы.

Auto create :

Только для slave-сервера. 'ON' или 'OFF'. Автоматически создавать отсутствующие счета и файлы в slave-системе. Разумной предосторожностью будет выставить эту опцию в ON.

Comments :

Комментарий - любой текст.

Confirm (y/n/q):

'y' - подтвердить создание сервера, 'n' - вернуться к предыдущим полям, 'q' - отказаться от создания сервера и выйти.

Current Server Selection - выбор текущего сервера

Большинство команд меню адресованы 'текущему' серверу, идентифицируемому по его имени. Если в виртуальной машине D3 определен только один сервер, то он всегда будет подразумеваться текущим. Если определено более одного сервера, то при вводе команды 'hot-backup' будет выводиться следующее меню:

Operation title
1 server.name
2 server.name 
...
Select and press <RETURN>

Чтобы выбрать сервер, введите соответствующий номер и нажмите клавишу <RETURN>. Имя 'текущего' сервера будет отображаться в заголовке hot backup. Выбранный сервер будет или единственным сервером на данной машине, или текущим сервером, выбранным в данном меню. Чтобы выбрать другой текущий сервер, нажмите 'ESC' или 'Q', и вы вернетесь в меню выбора сервера.

Main Menu - главное меню
1 Status Вывести на экран последние сообщения от выбранного сервера. В заголовке области сообщений на экране выводится имя сервера и некоторая дополнительная информация. Сообщения выводятся в обратном хронологическом порядке (начиная с самого последнего). Для этой команды не требуется, чтобы сервер был обязательно запущен.
2 Query Server Опросить выбранный сервер. Сервер должен быть запущен. Возвращаемая информация описана ниже в разделе 'Результаты опроса сервера'.
3 Start Server Запустить выбранный сервер. Этот процесс выводит на экран разнообразную информацию о стартующем сервере.
4 Stop Server Остановить выбранный сервер. Выдается запрос на подтверждение останова сервера.
5 Show Server Показать параметры установки выбранного сервера. Для возврата в главное меню нажмите 'y'. Описание выводимой информации идентично приведенному выше для меню 'Setup Server'.
6 Show statistics Показать статистику транзакций. Если эта команда выполняется на slave-сервере, то результаты будут выведены на экран немедленно, если только этот сервер запущен. Если команда выполняется на master-сервере, то запрос будет передан slave-серверу и результаты будут выведены позже. Оба сервера должны быть запущены. Время отклика зависит от того, насколько slave-сервер занят. С помощью этой команды можно быстро определить установлено ли соединение между серверами. Статистика накапливается slave-сервером и очищается каждый раз при его перзапуске.
7 Display Queue Отобразить состояние очереди журнала транзакций. Будет показана следующая информация:
n frames in queue
DL or ALL files logged
File updates enqueued for all processes

или

File updates no longer enqueued
Current transaction: nnn
Last ACK'ed transaction: nnn
Current transaction: nnn
Upd itm 'item.id' in 'file.reference'

По количеству фреймов можно приблизительно оценить объем еще не переданных данных. Номер текущей транзакции это номер транзакции, передаваемой в данный момент. Номер последней подтвержденной транзакции определяет последнюю транзакцию, которая была получена и успешно обработана соответствующим slave-сервером. Если номер последней транзакции не указывается, то это означает, что запрос был сделан в тот момент, когда все транзакции уже были подтверждены. Последняя строка указывает на первую до сих пор не подтвержденную соответствующим сервером транзакцию. Это может быть обновление записи, удаление записи и т.д. В случае возникновении проблем, эта транзакция будет первой, которую следовало бы повторно передать.

8 Special operations Выполнение наименее часто используемых операций. См. ниже раздел "Special Operations".
9 Transaction log menu Управление очередью журнала транзакций. См. ниже раздел "Transaction Log Menu".
Special Operations - специальные операции
1 Status Вывести на экран последние сообщения от выбранного сервера. То же, что и в главном меню.
2 Turn traces ON Включить трассировку на выбранном сервере. Трассировка значительно замедляет работу сервера и ее не следует оставлять включенной в нормальном режиме. Это только инструмент отладки.
3 Turn traces OFF Запретить трассировку на выбранном сервере.
4 Setup Server Создать новый сервер или модифицировать параметры выбранного сервера. См. выше раздел 'Setup Server'.
5 Delete server Удалить спецификацию выбранного сервера. Будет запрошено подтверждение.
6 List permanent log Выдать список всех сообщений от всех серверов из постоянного журнала. Содержимое журнала выводится в области сообщений экрана. Чтобы посмотреть следующее сообщение нажмите CTRL-N. Чтобы посмотреть предыдущее сообщение нажмите CTRL-B. Чтобы ввести специальную команду для поиска первого сообщения, поступившего после указанной даты (времени), или для поиска заданной строки, введите ':' (двоеточие). Чтобы вернуться в меню специальных операций введите 'q' или нажмите ESC.
7 Clear permanent log Очистить файл постоянного журнала. При выборе этого пункта будет выдано подменю, с помощью которого можно выбрать очистку всего файла, записей старше одной недели, или старше одного месяца. Будет запрошено подтверждение.
8 Stop applying updates Только для slave-сервера. Дать указание выбранному серверу остановить выполнение обновлений поступающих от соответствующего master-сервера. Обновления будут сохраняться во временном файле 'hb.log,apply'. Количество отложенных обновлений указывается в выводе команды 'Query Server' из главного меню. Отложенные обновления можно выполнить с помощью следующей ниже опции.
9 (Re)start applying updates Только для slave-сервера. Выполнить отложенные обновления, если таковые имеются, и восстановить нормальный режим выполнения новых обновлений по мере их поступления.
10 Close opened files Только для slave-сервера. Slave-сервер обслуживает все файлы, которые он открыл с момента своего запуска. Если нужно удалить файл в slave-системе, или если в master-системе пришлось выполнить восстановление файла file-of-files из-за пропущенной в нем записи (см. ниже описание сообщения об ошибке 'Cannot read FOF item'), то slave-серверу необходимо дать команду закрыть все открытые им файлы. Это позволяет сделать данная опция. Если к этим файлам снова потребуется доступ, то slave-сервер их повторно откроет.
Transaction Log Menu - меню журнала транзакций

Меню журнала транзакций следует использовать в системе, которая определена как master-система. С помощью него можно контролировать, какие обновления и как должны передаваться в соответствующую slave-систему.

1 Display queue Показать состояние очереди журнала транзакций. То же, что и опция 7 в главном меню.
2 Log DL files only Помещать в журнал обновления только тех файлов, которые имеют атрибут DL в своем D-указателе. Эта опция воздействует на всю систему. Такой режим работы позволяет осуществлять четкий контроль за тем, что должно передаваться в другую систему.
3 Log ALL files Помещать в журнал обновления всех файлов в системе. Следует заметить, что slave-сервер НЕ будет выполнять выполнять никаких модификаций в следующих файлах счета 'dm' на slave-системе: abs, accounts, devs, errors, file-of-files, hb.log (управляющие файлы hot backup), jobs, pibs resizing. Эту опцию следует использовать с осторожностью, имея в виду, что slave-сервер может создавать счета и файлы для полученных данных.
4 Stop enqueuing Прекратить помещение обновлений в очередь. Будет запрошено подтверждение. Эту опцию следует использовать с чрезвычайной осторожностью, поскольку с момента ее выбора никакие обновления в базе данных master-системы никогда не будут переданы в slave-систему. Единственной обоснованной причиной использования данной опции является ситуация, когда необходимо остановить очередь из-за серьезных проблем в главной системе и переключить пользователей на slave-систему. Сообщение об этом событии также помещается в файл 'errors'.
5 Start enqueueing Возобновить помещение обновлений в очередь. Сообщение об этом событии также помещается в файл 'errors'.
6 Clear log queue Очистить очередь журнала транзакций. Будет запрошено подтверждение. Все помещенные в очередь обновления будут потеряны. Сообщение об этом событии также помещается в файл 'errors'.

Результаты опроса сервера:

Server <servername>. PIB <pib>. PID <pid>.
 Server type [Slave|Master]. Traces [ON|OFF].
Total [recvd|sent] 289K. {Cur trans 1041.}
 ACK'ed trans 1039. {updates {NOT} applied.}
{n file(s) failed to open successfully}
{n pending update(s)}
Status <status>

Где:

servername Имя сервера.
pib Номер порта D3 данного сервера.
pid Идентификатор unix-процесса данного сервера.
Cur trans Только для slave-сервера. Номер текущей транзакции, полученной slave-сервером. В процессе обмена данными между серверами этот номер должен увеличиваться.
ACK'ed trans Номер последней, успешно подтвержденной slave-сервером транзакции. При непустой очереди номер подтвержденной транзакции должен быть немного меньше, чем номер транзакции, полученной slave-сервером.
{updates {NOT} applied} Только для slave-сервера. Указывается, выполняются ли в настоящее время обновления базы данных slave-системы, поступившие из master-системы.
Total [sent|recvd] Суммарный объем данных в килобайтах, поступивших за текущий день. Из-за дополнительной протокольной информации master-сервер выдает немного большее число, чем slave-сервер.
{n file(s) failed to open successfully} Только для slave-сервера. Указывается, если такой факт имел место, что slave-сервер получал запросы на открытие файлов, но не смог этого сделать. В любой момент времени несколько файлов могут ожидать открытия, и поэтому, чтобы убедиться, что возникли какие-то проблемы, сдедует этот запрос повторить
{n pending updates} Только для slave-сервера. Указывается, если такой факт имел место, что база данных slave-системы в настоящее время недоступна, и что имеется 'n' отложенных обновлений, ожидающих выполнения.

Status (состояние сервера):

Reading network Чтение из сети - это нормальное состояние slave-сервера.
Wait response to call Только для master-сервера. Master-сервер пытается обратиться к своему slave-серверу.
Wait incoming call Только для slave-сервера. Slave-сервер находится в ожидании своего master-сервера, чтобы установить с ним соединение.
Stopped Сервер остановлен. Причина останова указывается в предыдущем статус-сообщении или в файле постоянного журнала.
Connected Промежуточное состояние, возникающее сразу после того, как соединение установлено.
Writing to network Запись в сеть - передача данных соответствующему серверу. Если такое состояние сохраняется, а передачи данных фактически не происходит, то это означает, что получатель данных их не читает. Если такое состояние продолжается больше 30 секунд, то соединение разрывается и устанавливается заново.
Waiting for ACK Только для master-сервера. Ожидание подтверждения от своего slave-сервера.
Idle Только для master-сервера. Очередь пуста и трафик отсутствует.
Reading queue Только для master-сервера. Промежуточное состояние, когда master-сервер извлекает сообщения из очереди журнала транзакций.
Выполнение операций из TCL

Некоторые операции можно выполнять из TCL. Для этого используются предложения такого вида:

hot-backup команда server=имя_сервера

Аргумент 'server=имя_сервера' можно не указывать, если сервер только один. Такие команды удобно использовать в макросах, автоматически выполняющих последовательности команд.

Команды:

start Запустить указанный сервер.
stop Остановить указанный сервер.
status Вывести информацию о состоянии указанного сервера (аналогично опции 1 в главном меню).
queue Вывести информацию об очереди журнала транзакций (аналогично опции 7 в главном меню).
debug Заставить указанный сервер выйти в BASIC-отладчик. Затем сервер можно отлаживать, воспользовавшись режимом tandem. Эта команда предназначена только для тестирования.
Основные сообщения об ошибках

В данном разделе перечислены наиболее важные сообщения об ошибках, предупреждения и уведомления, которые могут появиться в области сообщений на экране или в файле постоянного журнала.

ERROR: This command applies only to Slave servers
Ошибка: Эта команда применима только к slave-серверам

Некоторые команды можно использовать, только если выбран slave-сервер. Такие команды функционально не могут выполняться master-серверами.

Not a phantom. Running on PIB xxx. PID yyy
Не фантом. Выполняется на PIB xxx. PID yyy

Это сообщение может появиться при обращении к серверу, который или запущен в приоритетном режиме (для отладки), или, скорее всего, аварийно завершился или был принудительно прерван, и в файле jobs осталась его запись в противоречивом состоянии.

Terminated abnormally
Аварийное завершение

Фантомный процесс сервера завершился, но процесс завершения прошел не должным образом. Вероятно процесс был принудительно завершен, или возникла фатальная ошибка.

Notice from server 'servername'
Уведомление от сервера 'имя_сервера'

Уведомление о том, что сообщение, появившееся в области сообщений экрана, поступило от указанного сервера.

Waiting for server 'servername' to start
Ожидание запуска сервера 'имя_сервера'

Ожидание запуска фантомного процесса сервера.

Waiting for server 'servername' to initialize
Ожидание инициализации сервера 'имя_сервера'

Фантомный процесс запущен и теперь ожидает завершения инициализации сервера.

FAILED: Cannot start phantom process
Отказ: Не удается запустить фантомный процесс

Фантомный процесс не удается запустить. Проверьте диспетчер заданий. Убедитесь, что в очереди находится не слишком много заданий. Воспользуйтесь командой 'list-jobs', чтобы выяснить причину отказа.

FAILED: Server 'servername' encountered an error and stopped
Отказ: Сервер 'имя_сервера' столкнулся с ошибкой и остановлен

Фантомный процесс запустился нормально, но сервер не смог завершить свою инициализацию. Причину отказа можно выяснить, воспользовавшись опцией 'status' главного меню. Самой распространенной причиной является ошибка 'BIND' (ошибка связывания), указывающая на то, что заданный TCP-порт уже занят. Часто при останове сервера TCP-соединение не закрывается немедленно и его TCP-порт остается занятым. Обычно такие порты освобождаются автоматически по истечении некоторого периода времени, который определяется протоколом TCP. Остановите master-сервер, подождите несколько минут и снова его запустите. Если ошибка BIND повторяется постоянно, то следует изменить номер TCP-порта как на master-сервере, так и на slave-сервере.

WARNING: Server 'servername' is already running on PIB xxx
Предупреждение: Сервер 'имя_сервера' уже запущен на PIB xxx

В запуске сервера отказано, потому что похоже, что этот сервер уже запущен. На работающий сервер при этом никаких воздействий не оказывается. Если сервер НЕ работает, но данное сообщение все равно появляется, то это может указывать то, что поврежден управляющий файл hb.log. Убедитесь, что сервер действительно не работает (с помощью команды where), и выполните команду:

delete hb.log имя_сервера
WARNING: Transaction are NOT enqueued
Предупреждение: Постановка транзакций в очередь не производится

Это предупреждение выдается master-сервером, чтобы сообщить о том, что обновления базы данных не поступают в очередь и поэтому не передаются в slave-систему. Теперь базы данных отличаются.

WARNING: Transaction queue has grown to xxx frames
Предупреждение: Очередь транзакций возросла до xxx фреймов

Периодически master-сервер проверяет, не выросла ли очередь более, чем на 500 фреймов, по сравнению с предыдущим значением. Это сообщение указывает на то, что slave-сервер не успевает обрабатывать поступающие транзакции. Проверьте, что принимающий сервер не остановлен, или, что он не завершил свою работу аварийно. В исключительных ситуациях это сообщение может быть нормальным, например, когда производятся массированные обновления базы данных.

malloc error. err=xxx
Ошибка malloc. err=xxx

Система не может выделить память. Это указывает на серьезные проблемы в Unix. Проверьте область подкачки.

socket creation failed
Создать сокет не удалось

Сокетная библиотека, которая используется фантомным процессом, не подключена соответствующим образом к монитору. Обратитесь к руководству по инсталляции, чтобы подключить нужные для данной реализации сокетные библиотеки.

Cannot call host 'hostname'. Errno=xxx
Не удается связаться с хостом 'имя_хоста'. Errno=xxx

Master-сервер не может установить связь с хостом. "xxx" указывает код ошибки. Код ошибки сильно зависит от реализации системы. С помощью команды Unix "ping имя_хоста", убедитесь, что хост доступен по сети. Если доступен, то наиболее вероятной причиной будет неактивность slave-сервера, т.е. или он не запущен, или на нем возникла ошибка. Чтобы проверить состояние slave-сервера, воспользуйтесь через меню опцией status.

Cannot read FOF item 'xxx'
Не удается прочитать запись 'xxx' файла FOF

Из-за нарушения целостности файла file-of-files в master-системе, система не может идентифицировать обновляемый файл. "xxx" - это номер файла в master-системе. Данные нормальным образом передаются в slave-систему, но записываются там в файл временного хранения "hb.missing,mastername*xxx", где "mastername" - имя master-сервера, а "xxx" - номер файла. Чтобы исправить ситуацию, необходимо срочно пересоздать файл file-of-files на master-системе, выполнив полное сохранение (возможно в режиме dummy) с опцией (S). Пропущенную в файле fof запись можно также восстановить вручную, если имя файла удасться определить из содержимого этого файла, сохраненного во временном файле хранения на резервной машине. Затем, данные можно скопировать в реальный файл. Дайте команду slave-серверу закрыть открытые им файлы и, используя меню специальных операций, заставьте его открыть этот новый файл.

Файл Lost+Found

Если slave-сервер не может обработать какую-то транзакцию (например, нужный счет не существует, а автоматическое создание пропущенных счетов запрещено), то она сохраняется в файле "hb.log,lost+found".

Записи этого файла получают имена, содержащие отметку времени их создания. Этот файл можно использовать для восстановления данных. Записи имеют следующий формат:

1 Тип записи:
1 Код транзакции не известен
2 Slave-сервер переустановлен
3 Внутренняя ошибка
4 Тайм-аут на транзакции. Такие ошибки могут возникать при остановке master-сервера.
5 Сообщение о "плохой" сети
6 Не удалось выполнить операцию. В сообщении об ошибке обычно указывается причина проблемы.
7 Не удалось обновить D-указатель. В главном словаре или в словаре файла находится элемент похожий на D-указатель, препятствующий созданию файла. Чтобы дать возможность создать файл, эта запись была удалена, а все ее содержимое записано, начиная с атрибута 10.
8 MD счета, в котором запущен slave-сервер (обычно "dm"), содержит запись, вызывающую коллизию с именем счета. Хотя это и не запрещено, это плохая практика. Сервер удаляет такую запись и выводит дамп ее содержимого.
9 Slave-сервер удалил корреляцию из D-указателя, поскольку она не могла разрешить ссылку на CALLX подпрограмму или на файл. Удаленная корреляция содержится в записи lost+found.
10 При выполнении задержанных обновлений не удалось обработать транзакцию
11 Неправильная длина транзакции
2 Операционный код транзакции (opcode), если он есть, или "?"
3 Имя сервера
4 Время во внутреннем формате
5 Дата во внутреннем формате.
6 Номер транзакции.
7 Номер последней подтвержденной транзакции.
8 Сообщение.
9 Время и дата во внешнем формате.
10 Тело транзакции, которую не удалось обработать, или какие-то данные, которые сервер отверг. Здесь может использоваться более одного атрибута. Данные могут быть не полными.

Опции:

q Тихий режим. Только для операций, запускаемых не из меню. Подавляется вывод всех сообщений.
v Многословный режим. При запуске сервера из меню включается режим трассировки.

Примеры:

hot-backup
Enter the main menu.
hot-backup start
Start the (only) server on the virtual machine.
hot-backup

Войти в главное меню.

hot-backup start

Запустить единственный на данной виртуальной машине сервер.

hot-backup start server=todev
hot-backup start server=fromprod
hot-backup status server=todev
hot-backup status server=fromprod

На системе, которая является одновременно и slave, и master, запустить master-сервер 'todev' и slave-сервер 'fromprod', а затем получить информацию о состоянии обоих серверов.