Восстановление транзакции
Восстановление транзакции
При использовании gfix, вы имеете множество режимов для получения информации и для разрешения зависших транзакций после ошибок двухфазного подтверждения. Процесс идентификации зависших транзакций и их подтверждение либо откат называется восстановлением транзакций.
Вы можете попытаться восстановить сразу все зависшие транзакции или вы можете выполнять восстановление транзакции за транзакцией, используя идентификатор каждой индивидуальной транзакции.
Поиск зависших транзакций
Для получения списка всех зависших транзакций с индикацией, что произойдет с каждой, если было запрошено автоматическое двухфазное восстановление, используйте переключатель -l[ist]:
gfix -l база-данных
Подсказка для восстановления
Используйте переключатель -p[rompt] вместе с -l[ist] для получения от gfix списка зависших транзакций одну за другой и выдачи вам запроса на выполняемое действие:
COMMIT или ROLLBACK:
gfix -l -р база-данных
Автоматическое двухфазное восстановление
Поскольку зависшие транзакции являются результатом либо ошибок при подтверждении, либо ошибок при откате, сервер знает, как должна каждая из них заканчиваться. Следовательно, автоматическое восстановление просто является способом подтверждения, что вы хотите, чтобы утилита gfix продолжала осуществлять первоначальное намерение, каким оно было, когда двухфазное подтверждение было прервано.
Переключатель-t[wo_phase] {ID | all} инициирует автоматическое двухфазное восстановление.
Используйте all для выполнения двухфазного восстановления всех зависших транзакций:
gfix -t all база-данных
Используйте ID для ввода идентификатора одной транзакции, для которой вы хотите выполнить двухфазное восстановление:
gfix -t nnnnnn база-данных
Здесь nnnnnn - идентификатор транзакции.
Задание подтверждения или отката
Чтобы попытаться разрешить зависшие транзакции их подтверждением, используйте переключатель-c[ommit] {ID | all}. Для восстановления всех зависших транзакций таким способом введите:
gfix -с all база-данных
Для разрешения одной зависшей транзакции попыткой ее подтверждения введите:
gfix -с nnnnnn база-данных
Здесь nnnnnn - идентификатор транзакции.
Для попытки разрешения зависших транзакций путем их отката используйте переключатель -r[ollback] {ID | all}. Для восстановления всех зависших транзакций таким способом введите:
gfix -r all база-данных
Для разрешения одной зависшей транзакции попыткой ее отката введите:
gfix -r nnnnnn база-данных
Здесь nnnnnn - идентификатор транзакции.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Что такое транзакции?
Что такое транзакции? В этой книге практически в каждой главе упоминаются транзакции. Понятие транзакции пронизывает всю теорию и практику работы с базами данных. Транзакции всегда, транзакции везде - вот лозунг разработчиков СУБД.Понятие транзакции само по себе
И снова про транзакции
И снова про транзакции Новичков иногда пугает "особенность" IBX закрывать все запросы при подтверждении или "откате" транзакции. Разместим на нашей форме две кнопки, как показано на рис. 2.10: Button 1 (свойство Caption равно Commit) и Button2 (Rollback). Рис 2.10. Кнопки управления
Автоматические транзакции
Автоматические транзакции Для разрешения провайдеру самостоятельно управлять транзакциями нужно указать в строке инициализации параметр "auto_commit=true":Call сn.Open("data source=localhost:d:databaseemployee.gdb;auto_commit=true","gamer", "vermut")В этом случае все создаваемые объекты сессий для данного источника
Распределенные транзакции
Распределенные транзакции Еще одним способом инициирования транзакции является подключение сессии к координатору распределенных транзакций. В общих чертах, координатор представляет собой сессию, транслирующую вызовы собственных интерфейсов управления транзакциией
Транзакции
Транзакции Все задачи пользователей в Firebird помещаются внутрь транзакций. Задача начинается с оператора START TRANSACTION и завершается, когда выполненная работа подтверждается (commit) или отменяется (rollback). Задача пользователя может выполнять множество запросов к операциям в
Контекст транзакции
Контекст транзакции Завершенное общение между клиентом и сервером называется транзакцией. Каждая транзакция имеет уникальный контекст, что приводит к тому, что транзакция будет изолирована от всех других транзакций указанным способом. Правила для контекста транзакции
Транзакции и MGA
Транзакции и MGA MGA (Multi-Generational Architecture, многоверсионная архитектура) является названием основной архитектурной модели управления состоянием базы данных Firebird.В модели MGA каждая строка, сохраняемая в базе данных, содержит уникальный идентификатор той транзакции, которая ее
Вложенные транзакции
Вложенные транзакции В Firebird транзакции всегда запускаются и завершаются клиентом. Некоторые другие СУБД могут запускать и подтверждать транзакции из хранимых процедур, потому что для управления транзакциями они используют двухфазную блокировку транзакций. Вместо
Зависшие транзакции
Зависшие транзакции Если нарушения в сети или ошибки диска делают одну или более баз данных недоступными, то двухфазное подтверждение завершается с ошибкой на второй фазе, подтранзакции остаются в их переходном состоянии, будучи отмеченными ни как подтвержденные, ни
Триггеры и транзакции
Триггеры и транзакции Триггеры всегда выполняются в контексте конкретной операции DML, как часть этой операции и внутри той транзакции, которая осуществляет запрос оператора DML. Нет смысла отделять их от транзакции или от операции, которая привела к выполнению триггера.
Транзакции в isql
Транзакции в isql Управление транзакциями в isql отличается в зависимости от того, вводите ли вы оператор DDL, команду SHOW или другие виды операторов.Когда isql стартует, она запускает транзакцию с уровнем изоляции SNAPSHOT (параллельный) с установкой разрешения блокировок WAIT. Если