Исходные файлы с ошибкой не прошли проверку целостности
Обновлено: 21.11.2024
Целостность базы данных Caché защищена от системного сбоя функциями, описанными в этом руководстве.
Скопировать ссылку на этот раздел Фундаментальная защита целостности данных
В целом существует два разных уровня, на которых можно рассматривать целостность:
Структурная или физическая целостность базы данных относится к содержимому блоков базы данных на диске. Чтобы иметь структурную целостность, блоки базы данных должны быть самосогласованными, а глобальные переменные — проходимыми. Структурная целостность во время сбоя системы поддерживается технологией Caché write image journal (WIJ), как описано в главе “Write Image Journaling and Recovery”, а также внутренними алгоритмами Caché.
Логическая целостность относится к данным, представленным глобальными переменными в базе данных, и включает в себя самосогласованность данных, созданных приложением, целостность их транзакций и их соответствие реальному миру. Логическая целостность во время сбоя системы поддерживается за счет ведения журнала Caché (см. главу “Журналирование”) и обработки транзакций. (Другие аспекты логической целостности находятся под контролем кода приложения посредством надлежащего использования блокировок, транзакций и других механизмов, характерных для парадигмы программирования, используемой приложением.)
Автоматическое восстановление WIJ и журналов — это основные компоненты «пуленепробиваемой» архитектуры базы данных InterSystems, которая защищает базы данных Caché от системных сбоев.
Скопировать ссылку на этот раздел Механизмы проверки и восстановления целостности
Хотя системные сбои сами по себе не могут привести к потере целостности, всегда существует вероятность катастрофического сбоя устройства хранения, физического повреждения или взлома. В этом случае целостность базы данных, WIJ и журналов может быть нарушена. Чтобы компенсировать такие бедствия, Caché предоставляет следующие возможности:
Инструменты для проверки структурной целостности баз данных, описанные в разделе "Проверка структурной целостности" в этой главе.
Логическая репликация данных на основе журналов для автоматического перехода на другой ресурс и аварийного восстановления посредством зеркалирования (см. главу “Зеркальное отображение” в Руководстве по обеспечению высокой доступности Caché) и теневого копирования (см. главу “Shadowing” в этом руководстве).
DataCheck, инструмент для проверки согласованности данных между несколькими системами, когда такие технологии, как зеркалирование и теневое копирование, поддерживают реплицированную копию данных (см. главу “Консистентность данных в нескольких системах”).
Ведение журнала в кластерных системах с общими дисками на базе ECP в Caché (см. главу “Журналирование кластера”).
Скопировать ссылку на этот раздел Проверка целостности конструкции
Проверка целостности позволяет проверить структурную целостность (см. Фундаментальная защита целостности данных) набора баз данных или подмножества глобальных переменных в базах данных.
Выполнение проверки целостности имеет следующие преимущества:
Проверка целостности может быть интегрирована в вашу стратегию резервного копирования, чтобы гарантировать, что во время резервного копирования копия базы данных была неповрежденной и что во время самого резервного копирования не возникло ошибок, как описано в разделе Внешнее резервное копирование в “Резервное копирование и Восстановить и закрытьCurlyDoubleQuote; глава.
Проверка целостности может обнаружить повреждение до того, как пользователи столкнутся с ним, давая время для составления плана до того, как это повлияет на пользователей.
Регулярные проверки целостности обеспечивают средство, с помощью которого источник любых обнаруженных проблем с целостностью конструкции может быть более точно определен во времени, что повышает вероятность выявления основной причины.
Проверка целостности позволяет проверить целостность всех глобальных переменных в выбранных базах данных или выбранных глобальных переменных, хранящихся в одной указанной базе данных. Вы можете запустить проверку целостности с портала управления или с помощью утилиты ^Integrity в окне терминала. В этом разделе рассматриваются следующие темы:
Скопировать ссылку на этот раздел Ложные срабатывания проверки целостности
Выполнение проверки целостности нестабильной базы данных может привести к ложным сообщениям об ошибках целостности базы данных из-за текущих обновлений базы данных.
Когда проверка целостности выполняется с портала управления или с помощью диспетчера задач, как описано в разделе Проверка целостности базы данных с помощью портала управления, она выполняется в фоновом режиме и автоматически повторно проверяет все глобальные переменные, в которых обнаружены ошибки. Выходные данные проверки целостности, включающей этот автоматический второй проход, сообщают об ошибках следующим образом:
Если ошибка была обнаружена в глобальном масштабе при первом проходе, но не обнаружена при втором проходе, первая ошибка считается ложноположительной, и об ошибке не сообщается.
Если ошибка, обнаруженная в глобальном масштабе при втором проходе, отличается от ошибки, обнаруженной при первом проходе, сообщается только об ошибке второго прохода с текстом Эти глобальные ошибки отличаются от ошибок до повторной попытки .< /p>
Если в обоих проходах обнаружена одна и та же ошибка в глобальном параметре, об ошибке сообщается с сообщением При повторной попытке ошибки в глобальном масштабе не изменились .
Проверки целостности, выполняемые вручную с помощью утилиты ^Integrity или одной из точек входа, описанных в разделе Проверка целостности базы данных с помощью утилиты ^Integrity, не повторно тестируют глобальные переменные, сообщающие об ошибках при первом проходе. Если возвращаются ошибки, повторите проверку для этой конкретной базы данных.
Как правило, при выполнении проверки целостности в активной системе ошибки, которые не повторяются при втором проходе, считаются ложными срабатываниями, а ошибки, сохраняющиеся при втором проходе, представляют собой фактические проблемы с целостностью. Последние должны быть исследованы, и первые также могут заслуживать изучения, в зависимости от уровня активности, количества ошибок и степени, в которой ранее имели место ложные срабатывания. Характер вашего расследования будет зависеть от вашего уровня знаний и прошлого опыта ложных срабатываний. Шаги, которые вы можете предпринять, включают:
Выполнить проверку целостности еще раз, если это возможно в период низкой активности системы.
Выполнение проверки целостности восстановленной копии самой последней резервной копии.
Изучение диапазона рассматриваемых данных в поисках ключей к корневой проблеме.
Проблемы ложных срабатываний можно избежать, интегрировав проверки целостности в стандартные процедуры резервного копирования, такие как процедуры, описанные во внешнем резервном копировании в “Backup” главы Caché Data Integrity Guide , чтобы базы данных проверялись сразу же после создания моментального снимка тома логического диска, на котором они находятся.
Скопировать ссылку на этот раздел Результат проверки целостности
Помимо сообщений об обнаруженных ошибках, проверка целостности сообщает о количестве блоков в каждой глобальной системе и проценте используемых блоков с разбивкой этой информации по уровням блоков. Например, ниже приведен фрагмент результатов проверки целостности базы данных SAMPLES, содержащей 20 000 пользователей:
При запуске с портала управления отчет начинается со списка ошибок и предупреждений, созданных проверкой целостности, если таковые имеются. При запуске с помощью утилиты ^Integrity сводка ошибок предоставляется в конце вывода.
Скопировать ссылку на этот раздел Проверка целостности базы данных с помощью портала управления
Нажмите "Проверка целостности", чтобы отобразить список баз данных.
Установите соответствующие флажки для баз данных, которые вы хотите проверить.
Если вы хотите проверить глобальные переменные, хранящиеся в одной базе данных, выберите только ту базу данных, которая содержит глобальные переменные, которые вы хотите проверить, затем нажмите «Выбрать глобальные переменные», чтобы отобразить список глобальных переменных, хранящихся в выбранной базе данных. Выберите глобальные переменные, которые хотите проверить, затем нажмите «Сохранить»; если вы не выберете какие-либо глобальные переменные из списка, будут проверены все глобальные переменные в выбранной базе данных.
Укажите путь к файлу журнала, в котором будут сохраняться результаты проверки целостности (как описано в разделе Выходные данные проверки целостности). Вы можете принять значение по умолчанию ( install_dir /mgr/integ.txt ), нажать «Обзор», чтобы выбрать существующий файл, или ввести собственный путь к файлу.
Если вы хотите остановить проверку целостности баз данных при обнаружении ошибки, установите флажок Остановить после любой ошибки.
Нажмите OK, чтобы начать проверку целостности. Процесс проверки целостности выполняется в фоновом режиме.
Нажмите Журнал целостности, чтобы просмотреть результаты последней проверки целостности с использованием портала. Путь к этому файлу и его содержимое отображаются автоматически, но вы можете ввести новый путь или найти другой файл и нажать «Просмотреть файл», чтобы просмотреть этот файл.
Проверка целостности также является одной из запланированных системных фоновых задач по умолчанию в диспетчере задач. При желании вы можете запланировать дополнительные проверки целостности, например, для разных баз данных в разное время. См. Использование диспетчера задач в “Управление Caché” главу Руководства системного администратора Caché для получения дополнительной информации о планировании системных задач.
Скопировать ссылку на этот раздел Проверка целостности базы данных с помощью ^Integrity Utility
Вы можете запустить проверку целостности вручную с помощью утилиты ^Integrity, открыв окно терминала, переключившись на пространство имен %SYS и введя do ^Integrity .Это похоже на запуск проверки целостности со страницы Базы данных портала управления, за исключением того, что, как отмечено в разделе «Ложные срабатывания проверки целостности», утилита ^Integrity не может повторно проверить глобальные переменные, для которых она находит ошибки на первом проходе, прежде чем завершать и сообщать о своих результатах. , и поэтому важно перепроверить глобальные переменные, для которых сообщается об ошибках, чтобы исключить ложные срабатывания. (Проверка целостности портала управления также распределяет проверку целостности между несколькими заданиями, а не выполняет одно задание, как утилита ^Integrity.)
Эта процедура включает следующие дополнительные точки входа:
Do CheckPointer^Integrity запрашивает каталог и блок указателя, с которого нужно начать проверку.
Do Silent^Integrity(logfilename,dirlist) запускает фоновый процесс, который выполняет проверку целостности выбранных или всех баз данных и помещает выходные данные в файл, указанный в параметре logfilename. Необязательный параметр dirlist (формат $LIST) определяет выбранные базы данных для проверки; если список каталогов не указан, проверяются все базы данных.
Это эквивалентно выполнению проверки целостности на странице "Базы данных" ("Операция системы" > "Базы данных") портала управления.
Do Query^Integrity(logfilename,outdevice) не запускает проверку целостности, а помещает содержимое файла, указанного параметром logfilename, результаты, сохраненные от предыдущего запуска, на текущее устройство или устройство, указанное в необязательный параметр outdevice .
Если не указано, outdevice является текущим терминалом. Примерами outdevice являются принтер, другое устройство отображения или другое имя файла операционной системы. Последний делает копию logfilename .
Do SilentGlobalCheck^Integrity(logfilename,dir,gbllist) запускает фоновый процесс, который выполняет проверку целостности выбранных глобальных переменных в выбранной базе данных и помещает выходные данные в файл, указанный в параметре logfilename. Параметр dir идентифицирует базу данных, содержащую глобальные переменные, которые вы хотите проверить. Обязательный параметр gbllist (формат $LIST) определяет один или несколько глобальных переменных для проверки.
Это эквивалент выбора Select Globals при выполнении проверки целостности на странице Databases (System Operation > Databases) портала управления.
Do CheckList^Integrity(outputglobal,dirlist,stopafteranyerror,listofglolist,maxproc) сохраняет результаты проверки целостности, включая информацию и предупреждения, в глобальном массиве, заданном необязательным параметром outputglobal; если он не указан, результаты сохраняются в ^CacheTempIntegrityOutput($JOB) . Необязательный параметр dirlist задает $LIST всех каталогов, которые вы хотите проверить; если он не указан, проверяются все каталоги. Если указан параметр stopafteranyerror, проверка каталога останавливается при обнаружении ошибки. Необязательный параметр listofglolist задает $LIST из $LIST с глобальными именами, по одному для каждого каталога, указанного в параметре dirlist, что, например, позволяет вам проверить все глобальные переменные нечетного DEF во всех каталогах, указав $LB($LB("oddDEF"). ) ; если в параметре listofglolist меньше элементов, чем в списке каталогов, для остальных каталогов используется последний элемент. Необязательный параметр maxproc указывает верхнюю границу количества используемых фоновых заданий: если он
Do Display^Integrity(integritout,flags,dirsum) отображает результаты проверки целостности. Необязательный параметр integritout указывает имя глобалы, в которую были помещены результаты проверки целостности (через CheckList^Integrity); если он не указан, по умолчанию используется ^CacheTempIntegrityOutput($JOB) . Необязательный параметр flags может принимать значения: 0 (для отображения всех сообщений), 1 (для отображения только ошибок и предупреждений) или 2 (для отображения только ошибок); если он не указан, значение по умолчанию равно 0 . Если необязательный параметр dirsum указан и не равен 0 , на дисплее будет отображаться сводка блоков для каждого просканированного Каталога.
Do Exclude^Integrity запрашивает список баз данных, которые следует исключить из проверки; вход? отображает список смонтированных баз данных.
Хотя можно использовать параметр Подключить базу данных подпрограммы ^DATABASE, чтобы смонтировать любой файл CACHE.DAT, доступный экземпляру (см. ), если это делается с базой данных, которая была удалена из конфигурации базы данных портала управления или никогда не добавлялась в нее (см. Настройка баз данных в главе “Настройка Caché” данного руководства), база данных не добавляется в конфигурацию базы данных Management Portal. конфигурации портала и поэтому недоступен для операций с базой данных портала и для некоторых подпрограмм, включая утилиту ^Integrity, описанную в этом разделе.
Куда идет новый текущий хэш? Разве я не могу просто вставить ожидаемое куда-нибудь в файл?Или вернуться назад и вставить [текущий] в файл. Я вижу [ожидаемый] хэш?
Этапы воспроизведения
- Забудьте о том, что вы используете Let's Encrypt для SSL, который помещает неавторизованную папку «.well-known» в основной каталог.
- Забудьте о двух нестандартных файлах для ToS и Pri.Pol. HTML-страницы также в главном каталоге.
- Попробуйте обновиться до NC 14 обычным способом через веб-интерфейс.
- Угадайте, что вы сделали не так, пока программа установки зависла.
- Делайте то, что вам говорят, затем перезапустите процесс.
- Остановитесь на следующем сообщении об ошибке, попробуйте исправить это и запустить снова.
- В конце концов, установщик бесконечно зависает и обращается за помощью на Github или где-то еще.
- Редактируйте файлы вручную, чтобы программа установки думала, что она еще не запущена.
- Перезапустите обновление еще раз, чтобы оно прошло успешно.
- Жить с постоянным сообщением об ошибке "Произошли проблемы с проверкой целостности кода. Дополнительная информация".
- Приходите сюда, чтобы попросить новый совет.
Ожидаемое поведение
Установщик устанавливает, ничего не портя. Может быть, он перемещает оскорбительные файлы и папки, а затем возвращает обратно после завершения?
Реальное поведение
Описано в разделе "Действия для воспроизведения" выше.
Подробности конфигурации сервера
Веб-сервер: Apache/2.4.18 (cgi-fcgi)
База данных: mysql 10.0.36
Версия PHP:
7.0.32-0ubuntu0.16.04.1
Загруженные модули: Core, date, libxml, openssl, pcre, zlib, filter, hash, pcntl, Reflection, SPL, session, standard, cgi-fcgi, mysqlnd , PDO, xml, apcu, bz2, календарь, ctype, curl, dom, mbstring, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, imap, intl, json, ldap, exif, mcrypt, mysqli, pdo_mysql , pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, redis, shmop, SimpleXML, soap, сокеты, sqlite3, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xmlreader, xmlrpc, xmlwriter, xsl, zip, Zend OPcache< /p>
Версия Nextcloud: 14.0.3–14.0.3.0
Обновлено из предыдущей версии Nextcloud/ownCloud или новой установки: обновлено с 13 до 14
Откуда вы установили Nextcloud: Nextcloud
Массив
(
[core] => Массив
(
[INVALID_HASH] => Массив
(
[.htaccess] => Массив
(
[ожидается] => 70183f641f39fc5f43065aeb15b86ac99e86b82310d5467e1c4d935df30acc6155c0905f84f59616885275c19ffacea59e354a87a5c97c94f50d50d4eff0370e
[тока] => e05ca07248d85fbaa8d0b033257dec1e62a1308462eba2e21a57eb574e2c4e41af3872d372f5d835f659f943010c4bceb7f3c8113b11eb65ff730e8a30f76a93
) р>
Список активированных приложений
Используете ли вы внешнее хранилище, если да, то какое:
Используете ли вы шифрование: верно
Используете ли вы внешний пользовательский интерфейс, если да, то какой:
Конфигурация клиента
Браузер: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Исходное название: Ничего не работает. Исполняемые файлы не запускаются, а если и запускаются, то повреждены.
Я почти исчерпал себя. Сегодня утром мой IM-клиент автоматически обновился и дал сбой, поэтому я прочитал в Интернете, что единственный способ исправить это - выполнить чистую переустановку. Справедливо. Итак, я нашел его зеркало в Интернете и скачал его:
"Проверка целостности установщика не удалась. Распространенные причины включают неполную загрузку и повреждение носителя.
Свяжитесь с автором установщика, чтобы получить новую копию."
Итак, посмотрев, в чем заключалась вышеуказанная ошибка (раньше такого не случалось), я попробовал другое зеркало. То же самое. Предыдущая версия, то же самое. Я даже решил скачать совершенно другой IM-клиент! То же самое.
Короче говоря, я не могу загрузить что-либо с файлом .exe в IE, Firefox или Chrome (я даже пытался загрузить его на другой компьютер и переместить файл). Если файл запускается, он говорит, что он поврежден и резко закрывается. Это произошло, когда я установил Microsoft Security Essentials, и даже когда я возился со старыми установщиками, оставшимися на моем компьютере, которые, как я точно знаю, работают. Итак, я знаю, что это не может быть каким-то странным совпадением.
Я очистил свой кэш, запустил полную проверку на вирусы и очистил машину (к счастью, мой рабочий стол был оснащен антивирусным сканером). Все было на своем месте. Если это что-то значит, мой компьютер НИКОГДА не делал этого раньше, и мое интернет-соединение было стабильным.
У меня Windows 7 Home Premium, 64-разрядная версия.
Эта тема заблокирована. Вы можете подписаться на вопрос или проголосовать за него как полезный, но вы не можете отвечать в этой теме.
Сообщить о нарушении
Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение.Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.
· Используете ли вы сторонние менеджеры загрузки для загрузки файлов/программ из Интернета?
Попробуйте выполнить следующие действия и проверьте, помогает ли это.
Шаг 1:
Оптимизируйте Internet Explorer, а также временно отключите антивирусное программное обеспечение, работающее на компьютере, а затем попробуйте загрузить и установить исполняемые файлы и проверить, сохраняется ли проблема.
Предупреждение.
Антивирусное программное обеспечение может помочь защитить ваш компьютер от вирусов и других угроз безопасности. В большинстве случаев вам не следует отключать антивирусное программное обеспечение. Если вам нужно временно отключить его для установки другого программного обеспечения, вам следует снова включить его, как только вы закончите. Если вы подключены к Интернету или сети, а ваше антивирусное программное обеспечение отключено, ваш компьютер уязвим для атак.
Шаг 2:
Переведите компьютер в состояние чистой загрузки, устраните проблему и проверьте, помогает ли это. Вы можете запустить Windows Vista или Windows 7, используя минимальный набор драйверов и программ запуска. Этот тип запуска известен как «чистая загрузка». Чистая загрузка помогает устранить конфликты программного обеспечения.
Кроме того, ознакомьтесь с разделом о том, как вернуть компьютер в обычный режим запуска, выполнив действия, описанные в разделе «Восстановить обычный запуск компьютера» после устранения неполадок с чистой загрузкой.
Шаг 3:
Если оба вышеупомянутых шага не сработают, я бы посоветовал вам попробовать восстановить систему и проверить, помогает ли это.
Надеюсь, это поможет. Дайте нам знать, если вам понадобится дополнительная помощь.
С уважением и благодарностью,
Santosh Y – Служба поддержки Microsoft
Посетите наш форум обратной связи Microsoft Answers и дайте нам знать, что вы думаете.
[Если это сообщение было полезным, нажмите кнопку "Проголосовать за полезное" (зеленый треугольник). Если это поможет решить вашу проблему, нажмите кнопку «Предложить как ответ» или «Отметить как ответ». Предлагая/отмечая публикацию как отвеченную или полезную, вы помогаете другим быстрее найти ответ.
Сообщить о нарушении
Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.
В этой главе объясняются стратегии обеспечения целостности данных, используемые для выполнения потоковых и статических проверок. Эти стратегии реализованы в модулях проверки знаний.
Эта глава включает следующие разделы:
4.1 Процесс проверки целостности данных
Проверка процесса проверки целостности данных активируется в следующих случаях:
При запуске статического элемента управления (из Studio или с помощью пакета) для модели, подмодели или хранилища данных. Данные в хранилищах проверяются на соответствие ограничениям, определенным в модели Oracle Data Integrator.
Если сопоставление выполнено и в IKM активировано управление потоком. Потоковые данные, размещенные в таблице интеграции (I$), проверяются на соответствие ограничениям целевого хранилища данных, как определено в модели. Проверяются только ограничения, выбранные в сопоставлении.
В обоих этих случаях CKM отвечает за проверку качества данных в соответствии с заранее определенным набором ограничений. CKM можно использовать либо для проверки существующих данных при использовании в «статическом управлении», либо для проверки данных о расходе при использовании в «управлении потоком». Он также отвечает за удаление ошибочных записей из проверяемой таблицы, если это указано.
В случае статического управления используемый CKM определяется в модели. В случае управления потоком он указывается для сопоставления.
4.1.1 Проверить обзор модуля знаний
Стандартные CKM поддерживают 2 разных типа таблиц:
Единая сводная таблица с именем SNP_CHECK_TAB для каждого сервера данных, созданная в рабочей схеме физической схемы сервера данных по умолчанию. Эта таблица содержит сводку ошибок для каждой таблицы и ограничения.Его можно использовать, например, для анализа общего качества данных модели.
Таблица ошибок с именем E$_ для каждого проверенного хранилища данных. Таблица ошибок содержит фактические записи, отклоненные процессами контроля качества данных (статическими и потоковыми управлениями), запущенными для этой таблицы.
Стандартный CKM состоит из следующих шагов:
Перетащите и создайте сводную таблицу. Оператор DROP выполняется только в том случае, если он требуется разработчику для сброса сводной таблицы. Оператор CREATE всегда выполняется, но ошибка допустима, если таблица уже существует.
Удалить сводные записи предыдущего запуска из сводной таблицы
Отбросьте и создайте таблицу ошибок. Оператор DROP выполняется только в том случае, если он требуется разработчику для воссоздания таблицы ошибок. Оператор CREATE всегда выполняется, но допустима ошибка, если таблица уже существует.
Удалить отклоненные записи предыдущего запуска из таблицы ошибок
Отклонять записи, нарушающие ограничение первичного ключа.
Отклонять записи, нарушающие любое ограничение альтернативного ключа
Отклонять записи, нарушающие любое ограничение внешнего ключа
Отклонять записи, нарушающие любое условие проверки
Отклонять записи, которые нарушают какие-либо ограничения обязательных атрибутов
При необходимости удалите отклоненные записи из проверенной таблицы
Вставьте сводку обнаруженных ошибок в сводную таблицу.
Команды CKM должны быть помечены, чтобы указать, как следует генерировать код. Теги могут быть:
"Первичный ключ": команда определяет код, необходимый для проверки ограничения первичного ключа
"Альтернативный ключ": команда определяет код, необходимый для проверки ограничения альтернативного ключа. Во время генерации кода Oracle Data Integrator будет использовать эту команду для каждого альтернативного ключа
"Join": команда определяет код, необходимый для проверки ограничения внешнего ключа. Во время генерации кода Oracle Data Integrator будет использовать эту команду для каждого внешнего ключа
"Условие": команда определяет код, необходимый для проверки ограничения условия. Во время генерации кода Oracle Data Integrator будет использовать эту команду для каждого условия проверки
"Обязательный": команда определяет код, необходимый для проверки ограничения обязательного атрибута. Во время генерации кода Oracle Data Integrator будет использовать эту команду для обязательного атрибута
"Удалить ошибки": команда определяет код, необходимый для удаления отклоненных записей из проверенной таблицы.
4.1.2 Структуры таблиц ошибок
В этом разделе описывается типичная структура таблиц ошибок и сводных таблиц.
4.1.2.1 Структура таблицы ошибок
Таблица ошибок E$ имеет список столбцов, описанных в следующей таблице:
[Столбцы проверенной таблицы]
Таблица ошибок содержит все атрибуты проверенного хранилища данных.
'F', когда хранилище данных проверяется во время управления потоком
'S', когда хранилище данных проверяется с использованием статического контроля
Сообщение об ошибке, связанное с нарушенным ограничением
Дата и время проверки хранилища данных
Происхождение операции проверки. В этом столбце указывается либо имя хранилища данных, либо имя сопоставления и идентификатор, в зависимости от того, как была выполнена проверка.
Имя нарушенного ограничения.
Тип ограничения:
'AK': альтернативный ключ
'CK': проверить условие
'NN': обязательный атрибут
4.1.2.2 Структура сводной таблицы
В таблице SNP_CHECK есть список столбцов, описанных в следующей таблице:
Имя каталога проверяемой таблицы, если применимо
Имя схемы проверяемой таблицы, если применимо
Имя ресурса проверяемой таблицы
Полное имя проверяемой таблицы. Например ..
'F', когда хранилище данных проверяется во время управления потоком
'S', когда хранилище данных проверяется с использованием статического контроля
Дата и время проверки хранилища данных
Происхождение операции проверки. В этом столбце указывается либо имя хранилища данных, либо имя сопоставления и идентификатор, в зависимости от того, как была выполнена проверка.
Имя нарушенного ограничения.
Тип ограничения:
'AK': альтернативный ключ
'CK': проверить условие
'NN': обязательный атрибут (не нулевой)
Общее количество записей, отклоненных этим ограничением в процессе проверки
Номер сеанса ODI
Уникальный идентификатор для этой таблицы, если применимо
4.2 Практические примеры
В этом разделе приведены примеры стратегий проверки целостности данных.
4.2.1 Oracle CKM
Оракул CKM — типичный пример проверки целостности данных.
Приведенные ниже команды взяты из CKM for Oracle и приведены в качестве примеров. Вы можете просмотреть код этого модуля знаний, отредактировав его в Oracle Data Integrator Studio.
4.2.1.1 Таблица проверки удаления
Эта задача удаляет сводную таблицу ошибок.Эта команда выполняется только в том случае, если для DROP_CHECK_TABLE установлено значение «Да» и активирован флаг «Игнорировать ошибки». Он не остановит CKM, если сводная таблица не найдена.
Команда для цели (Oracle)
4.2.1.2 Создать проверочную таблицу
Эта задача создает сводную таблицу ошибок. Эта команда выполняется всегда, и для нее активирован флаг «Игнорировать ошибки». Он не остановит CKM, если сводная таблица уже существует.
Команда для цели (Oracle)
4.2.1.3 Создание таблицы ошибок
Эта задача создает таблицу ошибок (E$). Эта команда выполняется всегда, и для нее активирован флаг «Игнорировать ошибки». Он не остановит CKM, если таблица ошибок уже существует.
Обратите внимание на использование метода getCollist для добавления списка атрибутов из проверенного хранилища данных в эту структуру таблицы.
Команда для цели (Oracle)
4.2.1.4 Вставка ошибок PK
Эта задача вставляет в таблицу ошибок (E$) ошибки, обнаруженные при проверке первичного ключа. Эта команда выполняется всегда, для нее активен флажок «Первичный ключ» и для счетчика журнала установлено значение «Ошибка», чтобы считать эти записи ошибками.
При использовании CKM для управления потоком из сопоставления вы можете определить максимально допустимое количество ошибок. Это число сравнивается с общим количеством записей, возвращаемых каждой командой в CKM, для которой счетчик журнала установлен на Error .
Обратите внимание на использование метода getCollist для вставки в таблицу ошибок всей проверяемой записи и использование методов getPK и getInfo для получения контекстной информации.
Команда для цели (Oracle)
4.2.1.5 Удаление ошибок из контролируемой таблицы
Эта задача удалила из контролируемой таблицы (статическое управление) или таблицы интеграции (управление потоком) строки, определенные как ошибочные.
Эта задача выполняется всегда, и для нее выбран параметр «Удалить ошибки».
Команда для цели (Oracle)
4.2.2 Динамическое создание несуществующих ссылок
Следующий вариант использования описывает пример настройки, которую можно выполнить поверх существующего CKM.
4.2.2.1 Пример использования
При загрузке хранилища данных у вас могут быть записи, ссылающиеся на данные из других таблиц, но записи, на которые ссылаются, еще не существуют.
Предположим, например, что вы ежедневно получаете записи о транзакциях продаж, в которых указаны артикулы продуктов. Когда продукт не существует в таблице продуктов, стандартное поведение CKM по умолчанию заключается в отклонении записи транзакции продаж в таблицу ошибок вместо ее загрузки в хранилище данных. Однако, чтобы соответствовать требованиям вашего проекта, вы хотите загрузить эту запись о продажах в хранилище данных и создать пустой продукт на лету, чтобы обеспечить согласованность данных. Затем аналитики данных просто анализировали таблицы ошибок и дополняли недостающую информацию о продуктах, которые автоматически добавлялись в таблицу продуктов.
Следующая последовательность иллюстрирует этот пример:
Данные исходного потока размещаются IKM в таблице "I$_SALES" для загрузки таблицы SALES. IKM вызывает CKM для проверки качества данных.
CKM проверяет все ограничения, включая внешний ключ FK_SALES_PRODUCTS, определенный между целевой таблицей SALES и таблицей PRODUCTS. Он отклоняет запись с SALES_ID='4' в таблице ошибок, так как указанный продукт с PRODUCT_ID="P25" не существует в таблице продуктов.
CKM автоматически вставляет отсутствующую ссылку на продукт "P25" в таблицу продуктов и присваивает значение ' ' PRODUCT_NAME. Для всех остальных атрибутов установлено значение NULL или значения по умолчанию.
CKM не удаляет отклоненную запись из таблицы I$ исходного потока, так как она стала согласованной
IKM записывает данные потока в цель
В приведенной выше последовательности шаги 3 и 4 отличаются от стандартных CKM и требуют настройки.
4.2.2.2 Обсуждение
Чтобы внедрить такой CKM, вы заметите, что в метаданных по умолчанию Oracle Data Integrator отсутствует некоторая информация. Нам понадобится следующее:
Новое гибкое поле с именем REF_TAB_DEF_COL в объекте Reference, содержащее атрибут ссылочной таблицы, который должен быть заполнен значением '' (в нашем случае PRODUCT_NAME)
Новый столбец (ODI_AUTO_CREATE_REFS) в таблице ошибок, чтобы указать, требуется ли ошибка FK для автоматического создания отсутствующей ссылки или нет. Этот флаг будет заполнен при обнаружении ошибок FK.
Новые гибкие поля с именем AUTO_CREATE_REFS для объекта «Ссылка», которые будут указывать, должно ли ограничение автоматически вызывать создание отсутствующих ссылок. Дополнительную информацию о полях Flex Fields см. в Руководстве разработчика для Oracle Data Integrator.
Теперь, когда у нас есть все необходимые метаданные, мы можем приступить к усовершенствованию CKM по умолчанию, чтобы он соответствовал нашим требованиям. Таким образом, этапы CKM будут (изменения выделены жирным шрифтом):
Перетащите и создайте сводную таблицу.
Удалить сводные записи предыдущего запуска из сводной таблицы
Отбросьте и создайте таблицу ошибок. Добавьте дополнительный столбец ODI_AUTO_CREATE_REFS в таблицу ошибок.
Удалить отклоненные записи предыдущего запуска из таблицы ошибок
Отклонять записи, нарушающие ограничение первичного ключа.
Отклонять записи, которые нарушают ограничения каждого альтернативного ключа
Отклонять записи, нарушающие все ограничения внешнего ключа, и сохранять значение гибкого поля AUTO_CREATE_REFS в столбце ODI_AUTO_CREATE_REFS.
Для каждой обнаруженной ошибки внешнего ключа, если для параметра ODI_AUTO_CREATE_REFS задано значение "да", вставлять отсутствующие ссылки в таблицу, на которую ссылаются, .
Отклонять записи, которые нарушают каждое ограничение условия проверки
Отклонять записи, нарушающие все ограничения обязательных атрибутов
При необходимости удалите отклоненные записи из проверенной таблицы. Не удалять записи, для которых установлено поведение ограничения Да
Вставьте сводку обнаруженных ошибок в сводную таблицу.
4.2.2.3 Детали реализации
Следующие модификации команды выполняются для внесения необходимых изменений в CKM. Изменения выделены жирным шрифтом в коде.
4.2.2.3.1 Создание таблицы ошибок
Задача изменена для создания нового столбца ODI_AUTO_CREATE_REFS в таблице ошибок.
Команда для цели (Oracle)
4.2.2.3.2 Вставка ошибок FK
Задача изменена, чтобы учесть новый столбец ODI_AUTO_CREATE_REFS и загрузить в него содержимое flexfield, определенного в FK, чтобы указать, должно ли это ограничение автоматически создавать отсутствующие ссылки. Обратите внимание на использование метода getFK для получения значения гибкого поля AUTO_CREATE_REFS.
Команда для цели (Oracle)
4.2.2.3.3 Вставка отсутствующих ссылок
Новая задача добавляется после задачи вставки ошибок FK. Параметр "Присоединиться" отмечен.
Обратите внимание на следующее:
Метод getFK("AUTO_CREATE_FS") используется для извлечения значения гибкого поля AUTO_CREATE_FS, которое обусловливает создание инструкции SQL.
Метод getFK("REF_TAB_DEF_COL") используется для извлечения из flexfield имени атрибута, для которого необходимо установить значение '' .
Метод getFKColList используется для извлечения списка атрибутов, участвующих во внешнем ключе, и создания содержимого отсутствующих эталонных атрибутов первичного ключа.
Фильтр создан для извлечения только записей, соответствующих текущему проверенному ограничению внешнего ключа, с флагом AUTO_CREATE_REFS, установленным на Да.
Команда для цели (Oracle)
4.2.2.3.4 Удаление ошибок из контролируемой таблицы
Эта задача изменена, чтобы избежать удаления записей внешнего ключа, для которых была создана ссылка. Они могут оставаться в контролируемой таблице.
Paragon Planner автоматически обнаруживает множество ошибок разного уровня серьезности. Некоторые из этих предупреждений могут не представлять интереса или не вызывать беспокойства в вашей сети. По этой причине на этой вкладке представлен ряд параметров, позволяющих фильтровать только те проверки целостности (IC), которые вас интересуют.
Параметры сетиПараметры сети
Раздел окна «Сеть» используется для указания набора файлов конфигурации для выполнения проверки целостности. Если вы используете Paragon Planner для мониторинга действующей сети, вы можете выбрать «Использовать действующую сеть». Либо выберите «Использовать файл спецификации» и укажите папку с файлом конфигурации и соответствующий путь к файлу спецификации, созданный путем импорта файлов конфигурации.
Фильтровать по категории
IC организованы в разные категории, как указано в окне. Вы можете установить флажок «Включить все категории», если хотите видеть, что IC принадлежит ко всем категориям. В противном случае выделите только интересующие вас категории в списке «Выбрать из» слева и переместите их в список «Категории для включения» справа с помощью кнопки «Добавить->». Нажатие кнопки «Добавить все >>» эквивалентно установке флажка «Включить все категории».
Фильтровать по сообщению
Вы можете отфильтровать результаты проверки целостности в соответствии с конкретными сообщениями IC. Существует предопределенный набор сообщений IC, каждому из которых назначается собственный идентификатор сообщения (или идентификатор сообщения), который представляет собой номер, предшествующий сообщению. Они перечислены в списке слева в разделе «Фильтровать по сообщениям».
Чтобы настроить отображение интегральных схем, снимите флажок «Включить все сообщения», выделите только интересующие вас категории в списке «Выбрать из» слева и переместите их в список «Сообщения для включения» на справа с помощью кнопки «Добавить->».
Вы можете применить дополнительный фильтр к сообщениям, которые необходимо включить, введя текст в текстовое поле «И, при желании, отфильтровать сообщение по соответствующей подстроке». Будут рассмотрены только сообщения, содержащие вашу текстовую строку.
Фильтровать по маршрутизатору
В разделе «Фильтровать по маршрутизатору» вы можете выбрать отображение только тех IC, которые относятся к определенным маршрутизаторам.Для этого снимите флажок «Включить все маршрутизаторы», выделите интересующие вас маршрутизаторы (соответствующие маршрутизаторам в указанной сети) и переместите их в список «Маршрутизаторы для включения» справа. сторону с помощью кнопки «Добавить->».
Вы можете выполнить дополнительную фильтрацию нужных маршрутизаторов, введя текст в текстовое поле «И, при необходимости, отфильтровать маршрутизаторы по соответствующей подстроке». Будут рассмотрены только те имена маршрутизаторов, которые содержат вашу текстовую строку как часть имени.
IC также можно разделить на два типа:
IC маршрутизатора — IC, относящаяся к одному маршрутизатору
Сетевой IC — IC, относящийся к двум или более маршрутизаторам
Например, некоторые пользователи могут захотеть увидеть:
Все микросхемы маршрутизатора, но только те микросхемы сети, которые относятся к выбранным маршрутизаторам
Все сетевые ИС, но только те ИС маршрутизатора, которые относятся к выбранным маршрутизаторам
Ни одна из ИС маршрутизатора, а только те сетевые ИС, которые относятся к выбранному(ым) маршрутизатору(ам)
Это объясняет, почему предоставляется так много различных вариантов. Эти параметры описаны ниже:
Фильтр ИС маршрутизатора
Включить все независимо от выбранных маршрутизаторов (Показать все)
Показать все микросхемы маршрутизаторов, даже относящиеся к невыбранным маршрутизаторам.
Включить, если проблема возникла на выбранных маршрутизаторах (Показать только для выбранных маршрутизаторов)
Показать только те микросхемы маршрутизатора, которые относятся к выбранным маршрутизаторам.
Исключить, если проблема возникла на выбранных маршрутизаторах (не показывать)
Не показывать микросхемы маршрутизатора.
Сетевой фильтр IC
Включить все независимо от выбранных маршрутизаторов (Показать все)
Показать все сетевые IC, относящиеся ко всем маршрутизаторам в сети (то есть не только к выбранным)
Включить, если проблема возникла на выбранных маршрутизаторах (Показывать только для выбранных маршрутизаторов – строгое соответствие)
Показать только те сетевые IC, для которых ВСЕ вовлеченные маршрутизаторы принадлежат набору выбранных маршрутизаторов.
Включить, если проблема возникла на каком-либо из выбранных маршрутизаторов (Показать только для выбранных маршрутизаторов – неточное совпадение)
Показать только те сетевые IC, для которых хотя бы один из задействованных маршрутизаторов принадлежит к набору выбранных маршрутизаторов.
Исключить, если проблема возникла на выбранных маршрутизаторах (не показывать)
Не показывать сетевые микросхемы.
Фильтровать по группе
В разделе «Фильтровать по группе» вы можете выбрать отображение только тех IC, которые относятся к маршрутизаторам в определенных группах топологии. Для этого снимите флажок «Включить все группы», выделите интересующие вас группы (соответствующие маршрутизаторам в указанной сети) и переместите их в список «Группы для включения» справа. сторону с помощью кнопки «Добавить->».
Обратите внимание, что для выбора определенных групп топологии карта для выбранного файла спецификации сети должна содержать группы. Кроме того, эти группы должны быть сохранены в базовой сети. Если есть группы топологии, но они не отображаются в списке, сначала сохраните сеть, выбрав Файл > Сохранить сеть. перед созданием задачи для отчета о проверке целостности.
Фильтровать по серьезности
КК относится к одному из четырех уровней серьезности: Высокий, Средний, Низкий, Предупреждение. Вы можете выбрать серьезность отображаемых ошибок проверки целостности. Уровни серьезности, соответствующие отдельным IC, можно установить в таблице профилей IC (Tools > Options > Integrity Checks). Дополнительную информацию см. на вкладке «Параметры проверки целостности».
Дополнительные параметры отчета
Сохраните отчет, чтобы сделать его доступным в Интернете
Сделайте отчет IC доступным для просмотра через веб-интерфейс Paragon Planner.
Отчет с заголовком
Включает в отчет заголовок, в котором указаны типы фильтров, использованных для создания конкретного отчета. Например, в отчете может быть указано, что пользователь выполняет фильтрацию по категории (выбрано только «OSPF»), идентификатору сообщения/сообщения (выбрано только сообщение 93), серьезности (выбраны все уровни серьезности) и маршрутизатору/источнику ошибки ( был выбран только маршрутизатор «NWK»). Обратите внимание, что вы можете найти идентификатор сообщения или идентификатор сообщения в таблице профиля проверки целостности. Дополнительную информацию см. на вкладке «Параметры проверки целостности».
Тип отчета (полный/компактный)
Укажите уровень детализации отчета: полный или компактный. В обоих отчетах будут отображаться следующие поля: Категория, Сообщение, Детали, Серьезность, Источник ошибки.
Читайте также: