Обработка ошибок

exit_on_error (boolean)

Если этот параметр включен, любая ошибка приведет к прерыванию текущего сеанса. По умолчанию он выключен, так что только сеанс будет прерываться только при критических ошибках.

restart_after_crash (boolean)

Если этот параметр включен (по умолчанию), QHB будет автоматически перезагружаться после сбоя серверного процесса. Обычно это лучший способ обеспечить максимальную доступность базы данных. Однако в некоторых обстоятельствах, например, когда QHB активизируется кластерным ПО, такую перезагрузку лучше выключить, чтобы кластерное ПО могло получить контроль и выполнить действия, которые сочтет целесообразными.

Этот параметр можно задать только в файле qhb.conf или в командной строке сервера.

data_sync_retry (boolean)

Если этот параметр выключен (по умолчанию), QHB будет выдавать ошибку уровня PANIC в случае неудачи при попытке сохранить файлы с измененными данными в файловую систему. Это приведет к сбою сервера баз данных. Этот параметр можно задать только при запуске сервера.

В некоторых операционных системах состояние данных в кэше страниц ядра после ошибки обратной записи неизвестно. В некоторых случаях эти данные могут полностью пропасть, и становится опасно повторять попытку записи: вторая попытка может быть объявлена успешной, тогда как в действительности данные были утеряны. В подобных обстоятельствах единственный способ избежать потери данных — после любого сбоя восстанавливать их из WAL, предпочтительно перед этим выяснив основную причину сбоя и заменив неисправное оборудование.

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

recovery_init_sync_method (enum)

Когда в этом параметре установлено значение fsync (по умолчанию), QHB будет рекурсивно открывать и синхронизировать все файлы в каталоге данных до начала восстановления после сбоя. Поиск файлов будет проводиться по символическим ссылкам для каталога WAL и всех сконфигурированных табличных пространств (но не по другим символическим ссылкам). Это делается для того, чтобы убедиться, что все файлы WAL и данных надежно сохранены на диске до воспроизведения изменений. Такой подход применяется при запуске кластера баз данных, работа которого не была завершена должным образом (это касается и копий, созданных qhb_basebackup).

В Linux вместо этого может быть использовано значение syncfs, при котором операционная система целиком синхронизирует файловые системы, содержащие каталог данных, файлы WAL и табличные пространства (но не другие файловые системы, которые тоже могут быть доступны через символические ссылки). Это вариант может работать гораздо быстрее, чем fsync, поскольку при нем не нужно открывать каждый файл по отдельности. С другой стороны, он может быть медленнее, если файловая система совместно используется другими приложениями, изменяющими множество файлов, поскольку эти файлы также будут записываться на диск. Более того, Linux версий до 5.8 может не сообщать QHB об ошибках ввода/вывода, произошедших во время записи данных на диск, и соответствующие сообщения об ошибках могут выводиться только в журналы ядра.

Этот параметр можно задать только в файле qhb.conf или в командной строке сервера.