Debezium Connector пытается открыть старый файл журнала

У меня есть разъем debezium, который работает нормально в течение ограниченного времени. Эти ошибки возникают в файле журнала:

      Caused by: java.sql.SQLException: ORA-00308: cannot open archived log '+RECO/XXXXXXXX/ARCHIVELOG/2022_01_04/thread_1_seq_53874.3204.1093111215'
ORA-17503: ksfdopn:2 Failed to open file +RECO/XXXXXXXX/ARCHIVELOG/2022_01_04/thread_1_seq_53874.3204.1093111215
ORA-15012: ASM file '+RECO/XXXXXX/ARCHIVELOG/2022_01_04/thread_1_seq_53874.3204.1093111215' does not exist

Я узнал, что в этой базе данных файлы журнала удаляются ежедневно. Мой коннектор пытается прочитать старый файл журнала, которого больше нет? Например, как я могу указать своему разъему, чтобы он проверял только последние 12 часов. Или я должен что-то сделать на стороне базы данных?

1 ответ

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

Можно удалить архивные журналы, которые больше не нужны, но очень важно убедиться, что вы не удаляете журналы, которые по-прежнему требуются Oracle Connector для выполнения интеллектуального анализа данных. В вашем конкретном случае разъем по-прежнему требуется thread_1_seq_53874.3204.1093111215но лог уже не в файловой системе и поэтому коннектор остановится с ошибкой. Эта ошибка возникает с любым другим коннектором, таким как MySQL, если вы удалите бинарные журналы до того, как коннектор завершит их чтение.

Например, как я могу указать своему коннектору проверять только последние 12 часов.

Вы не можете.

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

Или я должен что-то сделать на стороне базы данных

Архивные журналы необходимо хранить до тех пор, пока они нужны соединителю. Задержка соединителя Oracle зависит как от нестабильности вашей базы данных, так и от ряда факторов, таких как производительность оборудования сервера базы данных (диск и процессор), размер ваших журналов повторного выполнения и т. д.

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

Другие вопросы по тегам