Обеспечивает ли Oracle RAC полностью прозрачное аварийное переключение между узлами?

StackOverflow https://stackoverflow.com/questions/1498793

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня есть приложение, работающее на Oracle 10g с использованием Hibernate.Мне интересно, можно ли обеспечить высокую доступность приложения в случае сбоев базы данных без каких-либо изменений кода на стороне приложения, используя Oracle RAC.

У меня есть два узла Oracle RAC для приложения, и в идеале я хотел бы иметь возможность отключить один из узлов и продолжить работу приложения без каких-либо исключений, достигающих кода приложения.

Мое приложение отправляет запросы выбора, вставки, обновления и удаления в базу данных.

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

Это было полезно?

Решение

Извините, но не совсем.Вы смотрите на прозрачное аварийное переключение приложений (TAF), а Oracle в настоящее время не поддерживает TAF ни для чего, кроме операторов SELECT.DML необходимо будет перезапустить.Взгляни на этот статья с хорошим объяснением того, что RAC (и TAF) могут для вас сделать.

Несмотря ни на что, вам нужно будет уметь обрабатывать сбои транзакций.Это важная причина, по которой у нас есть транзакции...чтобы мы могли изящно справляться с неудачами.Помните также, что аппаратный сбой (от которого вас защищает RAC) — это лишь одна из множества причин, по которым транзакция может не удаться.

Удачи, приятного кодирования!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top