mirall: (job)
Проблема была в следующем.
При подключении к RAC под пользователем sys, рандомно выпадала ошибки ORA-01017: invalid username/password; logon denied. Т.е. десять коннектов подряд могли семь раз соединиться нормально и три раза упасть.

Коллеги почему-то начали рыть в области case sensitivity имён пользователей в Oracle. "А может такое быть, что sys и SYS - это разные пользователи". По мне, такого быть не может.

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

Пароль-то вернули на место. Но у меня до сих пор в голове не укладыватся, как такое возможно. Похоже, я в RAC понимаю ещё меньше, чем думала.
mirall: (job)
Не знаю, зачем её гасили, но завести снова не смогли.
Симптомы

$ srvctl start database -d ractest1
PRCR-1079 : Failed to start resource ora.ractest1.db
ORA-00119: invalid specification for system parameter %s
CRS-2674: Start of 'ora.ractest1.db' on 'racnode01' failed
CRS-2632: There are no more servers to try to place resource 'ora.ractest1.db' on that would satisfy its placement policy
ORA-00119: invalid specification for system parameter %s
CRS-2674: Start of 'ora.ractest1.db' on 'racnode02' failed

Мутно и невнятно. Лог сообщал, что USER (ospid: 4216): terminating the instance due to error 119 (за pid не поручусь, но смысл именно такой).

Путём несложных преобразований (старт экземпляра локально из sqlplus, свежеобретённый полный, а не ссылочный pfile) выяснилось, что всё плохо в области remote_listener, каковой, вообще-то, был, по идее, в порядке, т.е. содержал нужное значение hostname:port.

Дальше я пошла кружным путём: ковыряла spfile. Сбросила remote_listener, после чего база завелась, но к ней всё ещё невозможно было подконнектиться. Попутно обнаружилось, что spfile проехал почему-то не из ASM, а из файловой системы. Пофиксилось пересозданием.

Потом попыталась вернуть remote_listener к исходному значению, не удалось, hostname базе всё ещё не нравился. Зато именно в этот момент начали падать осмысленные ошибки, которые уже нормально гуглились.

В результате обнаружилось, что в sqlnet.ora на обоих узлах должно быть прописано NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT), а у нас было NAMES.DIRECTORY_PATH=(TNSNAMES). Смешно и неудобно. Несколько часов возни, а в результате - изменить одну строчку.
mirall: (Default)
    Это баг.
    В общем, постоянно вылетала ошибка "ORA-04068: existing state of packages has been discarded", причём пакеты ошибок не содержат, компилируются успешно и вообще всё в шоколаде.
    Металинк утверждает, что это баг за номером 6485664 (нода 1058873.1). "Please note that the particularity of this bug is that it will cause a discrepancy in memory (library cache) only while information in the data dictionary (dependency$) remains consistent. This should differentiate it from other bugs where the same errors are produced but the dictionary itself becomes inconsistent due to timestamp mismatches between dependency$ and obj$."
    Впервые в жизни патчила RAC на RedHat.
Page generated Sep. 25th, 2017 06:06 am
Powered by Dreamwidth Studios