Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Отслеживание изменений данных в Oracle от Attunity больше не поддерживается. Дополнительные сведения см. в объявлении.
Экземпляр Oracle CDC извлекает изменения из одной исходной базы данных Oracle (кластер Oracle RAC считается одной базой данных) и записывает зафиксированные изменения в таблицы изменений в базе данных CDC в целевом экземпляре SQL Server.
Экземпляр CDC сохраняет свое состояние в системной таблице с именем cdc.xdbcdc_state. Эту таблицу можно запрашивать в любое время, чтобы найти состояние инстанции CDC. Дополнительные сведения о таблице cdc.xdbcdc_state см. в cdc.xdbcdc_state.
В таблице ниже описаны состояния экземпляра CDC в таблице xdbcdc_state.
Для каждого состояния показаны следующие два признака для соответствующих столбцов в таблице cdc.xdbcdc_state:
Экземпляр не активен (в настоящее время отсутствует процесс Windows, который его обрабатывает). Если активное значение столбца равно 1, выполняется подпроцесс службы Oracle CDC Service, обрабатывающий этот конкретный экземпляр Oracle CDC.
Если значение столбца ошибки равно 0, экземпляр Oracle CDC не находится в состоянии ошибки. Если значение столбца ошибки равно 1, возникает ошибка, которая препятствует обработке изменений экземпляра Oracle CDC.
Если столбец ошибки имеет значение 1, а активное значение столбца также равно 1, то для экземпляра Oracle CDC возникает ошибка восстановления, которая может быть разрешена автоматически. Если столбец ошибки имеет значение 1, а активный столбец имеет значение 0, то в большинстве случаев может потребоваться обходное решение вручную, чтобы устранить проблему, прежде чем можно будет возобновить обработку.
В следующей таблице описаны различные коды состояния, которые экземпляр Oracle CDC может сообщать в таблице состояний.
| Состояние | Код активного состояния | Код состояния ошибки | Описание | Подсостояние |
|---|---|---|---|---|
| ПРЕРВАННЫЙ | 0 | 1 | Экземпляр Oracle CDC не запущен. Подстатус ABORTED указывает, что экземпляр Oracle CDC был АКТИВНЫМ, а затем неожиданно остановился. | Главный экземпляр службы Oracle CDC устанавливает подстатус ABORTED, когда обнаруживает, что экземпляр Oracle CDC не запущен, хотя его статус установлен в ACTIVE. |
| ОШИБКА | 0 | 1 | Экземпляр Oracle CDC не запущен. Состояние ERROR указывает, что экземпляр CDC был АКТИВНЫМ, но затем обнаружил ошибку, которая не подлежит восстановлению и отключил сам себя. | MISCONFIGURED: обнаружена неустранимая ошибка конфигурации. PASSWORD-REQUIRED: для конструктора отслеживания измененных данных для Oracle по Attunity отсутствует пароль или настроенный пароль недействителен. Это может быть связано с изменением пароля асимметричного ключа службы. |
| БЕГ | 1 | 0 | Экземпляр CDC работает и обрабатывает записи изменений. | IDLE: все записи изменений были обработаны и сохранены в целевые таблицы управления (_CT). Активная транзакция с таблицами управления отсутствует. ОБРАБОТКА: обрабатываются записи изменений, которые еще не записываются в таблицы элемента управления (_CT). |
| ОСТАНОВЛЕНО | 0 | 0 | Экземпляр CDC не запущен. | Подстатус STOP указывает, что экземпляр CDC оказался активным, а затем был правильно остановлен. |
| ПРИОСТАНОВЛЕН | 1 | 1 | Экземпляр CDC запущен, но обработка приостановлена из-за ошибки, доступной для восстановления. | ОТКЛЮЧЕНО: невозможно установить подключение к исходной базе данных Oracle. Обработка возобновляется после восстановления подключения. STORAGE: хранилище заполнено. Обработка возобновляется, когда хранилище становится доступным. В некоторых случаях это состояние может не отображаться, так как таблица состояния не может быть обновлена. LOGER: средство ведения журнала подключено к Oracle, но оно не может считывать журналы транзакций Oracle из-за временной проблемы. |
| Ошибка данных | x | x | Этот код состояния используется только для таблицы xdbcdc_trace . Он не отображается в таблице xdbcdc_state . Записи трассировки с таким состоянием указывают на проблему с записью в журнале Oracle. Недопустимая запись журнала хранится в столбце данных в виде BLOB-объекта. | BADRECORD: не удалось проанализировать присоединенную запись журнала. CONVERT-ERROR: данные в некоторых столбцах не удалось преобразовать в целевые столбцы в таблице записи. Это статус может отображаться только в том случае, если конфигурация указывает, что ошибки преобразования должны приводить к созданию записей трассировки. |
Так как состояние службы Oracle CDC хранится в SQL Server, могут возникнуть случаи, когда значение состояния в базе данных может не отражать фактическое состояние службы. Наиболее распространенный сценарий заключается в том, что служба теряет подключение к SQL Server и не может возобновить ее (по какой-либо причине). В этом случае состояние, хранящееся в cdc.xdbcdc_state , становится устаревшим. Если метка времени последнего обновления (UTC) превышает минуту, состояние, вероятно, устарело. В этом случае используйте средство просмотра событий Windows для поиска дополнительных сведений о состоянии службы.
Обработка ошибок
В этом разделе описывается, как служба Oracle CDC обрабатывает ошибки.
Лесозаготовка
Служба Oracle CDC создает сведения об ошибке в одном из следующих мест.
Журнал событий Windows, используемый для регистрации ошибок и указания событий жизненного цикла Oracle CDC Service (запуск, остановка, (повторное) подключение к целевому экземпляру SQL Server).
Таблица MSXDBCDC.dbo.xdbcdc_trace, которая используется для общего ведения журнала и трассировки основным процессом Oracle CDC Service.
Таблица <cdc-database>.cdc.xdbcdc_trace, которая используется для общего ведения журнала и трассировки экземплярами Oracle CDC. Это означает, что ошибки, связанные с определенным экземпляром Oracle CDC, регистрируются в таблице трассировки этого экземпляра.
Данные фиксируются службой Oracle CDC, когда служба:
Запускается или останавливается диспетчером управления службой.
Не удается подключиться к связанному экземпляру SQL Server, а также при успешном восстановлении подключения после сбоя.
Возникает ошибка при запуске экземпляров Службы Oracle CDC.
Обнаружено, что экземпляр Oracle CDC был прерван.
Возникает непредвиденная ошибка.
Данные регистрируются экземпляром CDC, когда экземпляр:
Включен или отключен.
Возникает ошибка.
Восстановление после исправимой ошибки.
Таблица трассировки также используется для записи подробных данных трассировки для устранения неполадок.
Обработка ошибок подключения к источнику Oracle
Службе Oracle CDC требуется постоянное подключение к исходной базе данных Oracle. Многие ошибки подключения, которые не связаны с конфигурацией службы (например, сетевые ошибки), считаются временными. Таким образом, если служба Oracle CDC не может установить соединение с базой данных Oracle (при запуске или во время работы после отключения), служба изменяет состояние на SUSPENDED/DISCONNECTED и вводит цикл повторных попыток, в котором подключение извлекается через регулярные интервалы. После повторной установки подключения обработка продолжается.
Другие типы ошибок подключения не являются временными (например, неправильные учетные данные, недостаточные привилегии и неверный адрес базы данных). При возникновении этих ошибок состояние службы Oracle CDC имеет значение ERROR/MISCONFIGURED или ERROR/PASSWORD-REQUIRED, а служба отключена. Когда пользователь исправляет базовую ошибку, экземпляр Oracle CDC должен быть повторно включен вручную для возобновления обработки.
Если не ясно, является ли ошибка временной, рекомендуется предположить, что она является временной.
Обработка ошибок подключения к целевому серверу SQL Server
Службе Oracle CDC требуется постоянное подключение к целевому экземпляру SQL Server. Это подключение используется для:
Убедитесь, что в настоящее время нет других служб с тем же именем, работающих с этим экземпляром SQL Server.
Проверьте, какой экземпляр Oracle CDC включен или отключен, а затем запустите или остановите его подпроцесс.
Когда служба устанавливает подключение к целевому экземпляру SQL Server и проверяет, является ли она единственной службой Oracle CDC с таким именем, она может проверить, какие экземпляры Oracle CDC включены и запускает их процессы обработки (после этого служба останавливает эти процессы, когда они отключаются). Экземпляры Oracle CDC используют подключения к SQL Server для работы с базой данных CDC экземпляра Oracle CDC.
Обработка ошибок при сбое подключения к целевому SQL Server зависит от того, являются ли ошибки временными.
Для известных не временных ошибок (таких как плохие учетные данные, недостаточные привилегии, плохие сведения о подключении), служба регистрирует ошибку в журнал событий Windows и останавливает (она не может записываться в таблицу трассировки, так как она не может подключиться к SQL Server). В этом случае пользователь должен устранить ошибку и перезапустить службу Windows Oracle CDC.
Для временных ошибок и непредвиденных ошибок операция выполняется несколько раз, и если сбой сохраняется в течение значительного периода времени, служба CDC останавливает подпроцессы экземпляра CDC и возвращается к первоначальной попытке подключения (к этому времени служба Oracle CDC на другом компьютере, возможно, уже взяла под контроль именованную службу CDC).
Обработка полных ошибок целевого хранилища SQL Server
Когда служба Oracle CDC обнаруживает, что она не может вставить новые данные изменений в целевую базу данных CDC SQL Server, она записывает предупреждение в журнал событий и пытается вставить запись трассировки (хотя это может завершиться ошибкой по той же причине). Затем она повторяет операцию в определенном интервале до тех пор, пока она не будет успешно выполнена.
Обработка ошибок Oracle CDC
Экземпляр Oracle CDC считывает журнал транзакций Oracle и обрабатывает его. Если в процессе обработки CDC возникает ошибка, она фиксируется в таблице cdc.xdbcdc_state, и пользователю необходимо вручную вмешаться, исходя из характера ошибки.
Например, экземпляр Oracle CDC может быть неактивен в течение длительного времени, и необходимые файлы журнала транзакций Oracle больше не доступны. В этом случае DBA Oracle должен восстановить необходимые журналы для возобновления обработки экземпляра Oracle CDC.
Обработка непредвиденных сбоев экземпляра Oracle CDC
Служба Oracle CDC отслеживает подпроцессы конкретного экземпляра CDC. При прерывании подпроцесса экземпляра CDC служба CDC отключает его в таблице MSXDBCDC.dbo.xdbcdc_databases и обновляет состояние cdc.xdbcdc_state на "АБОРТИРОВАНО". В этом случае для дальнейшего анализа используется стандартное диалоговое окно отчетов об ошибках Windows.
См. также
Конструктор отслеживания измененных данных для Oracle от Attunity
Экземпляр Oracle CDC