AIX6 + aio + oracle


Главная Форумы POWER Systems AIX/Hardware AIX6 + aio + oracle

В этой теме 16 ответов, 4 участника, последнее обновление  yota 5 года/лет, 10 мес. назад.

  • Автор
    Сообщения
  • #14672

    Alex
    Участник

    Темна вода во облацех.

    После того, как IBM поменял работу с aio в шестёрке, наступил на странные грабли. Расследование уткнулось в следующий вопрос:

    Правомерно ли использовать aio (конкретно функции listio и aio_nwait), не открыв предварительно файл с O_CIO? Потому что именно так делает в проблемной ситуации Oracle 11g и, похоже, именно это приводит к ошибке.

  • #14673

    andrewk
    Участник

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

  • #14676

    andrewk
    Участник
  • #14677

    Alex
    Участник

    Ну, если смонтировать ФС с cio — он и будет их всегда с O_CIO открывать, независимо ни от чего, но хочется понять, чего не хватает в такой конфигурации:

    oracle: setall
    aix6 — ФС смонтированы без cio, aio, aio_fastpath, etc — всё включено.

    При этом oracle открывает redo-лог без O_CIO (и вообще без каких-либо доп. флагов типа O_DIRECTIO) и одновременно использует асинхронное чтение через listio/aio_nwait. Результат со стороны логов оракла — «не могу прочитать redo-лог».

    Усложняется всё тем, что происходит эта ситуация «вдруг», после нескольких часов нормальной работы.

  • #14678

    andrewk
    Участник

    если я правильно понимаю, то либо а) включить в Оракл CIO — FILESYSTEM_OPTIONS=SETALL (или как-то так — не ораклист я), б) попробовать отключить fsfastpath, как рекомендуется в документе. Ситуация, описанная там, в принципе похожа — используется AIO без CIO, что иногда приводит к зависанию приложения.

    если setall уже включен, но оракл не использует CIO, то это имхо уже баг оракла, а не AIX.

  • #14679

    Alex
    Участник

    Ох, линк то я и пропустил. Но там не про то, все локальные ФС, насколько я понимаю, CIO-capable, речь в статье об NFS и тому подобных.

    Я тоже ни разу не ораклист 😉 SETALL подразумевает CIO + асинхронный ввод-вывод, при этом с setall отпала нужда в принудительном монтировании ФС с cio — по идее оракл сам должен открывать файлы с O_CIO. И setall включён, конечно.

    Меня смутило, что в интернете на это натыкались (безответно) всего два человека, есть повод подумать, что это всё-таки иначе лечится, чем mount -o cio.

    А так то я уже поправил, времени экспериментировать с этой системой, к сожалению, нет 🙁

  • #14680

    andrewk
    Участник

    если не секрет, для статистики — какая версия AIX (TL/SP) и какая версия Oracle?

  • #14681

    Alex
    Участник

    Не-не, не секрет:
    6100-06-05-1115 и
    11.2.0.2.0 (в составе SAP)

    Я ещё потрассирую, теперь уже на файловых системах, смонтированных с cio, может выцеплю что интересное.

  • #14682

    Alex
    Участник

    просто до кучи: если монтировать ФС с cio, то дело обстоит так: oracle сначала пытается открывать файл обыкновенным образом: open(O_LARGEFILE|O_RDONLY), отваливается с EINVAL и уже после этого открывает через open64x с O_CIO.

  • #14683

    roman
    Участник

    не связано ли это с бакапом redolog?

  • #14684

    Alex
    Участник

    если под бекапом редолога имеется в виду архивирование — то да, проблема возникала именно в этот момент.

  • #14686

    roman
    Участник

    а можно увидеть логи с ошибками?

  • #14687

    Alex
    Участник

    Исходя из итогов собственного расследования, они скорее дезориентируют, ничего не говоря о реальной проблеме 😉

    С точки зрения логов оракла это выглядит так:

    alert.log:

    ARC0: STARTING ARCH PROCESSES COMPLETE
    ARC1: All Archive destinations made inactive due to error 333
    ARC1: Closing local archive destination LOG_ARCHIVE_DEST_1: ‘/oracle/DB1/oraarch/DB1arch/1_100667_754760576.dbf’ (error 333) (DB1)
    Committing creation of archivelog ‘/oracle/DB1/oraarch/DB1arch/1_100667_754760576.dbf’ (error 333)
    ARCH: Archival stopped, error occurred. Will continue retrying
    ORACLE Instance DB1 — Archival Error
    ORA-16038: log 11 sequence# 100667 cannot be archived
    ORA-00333: redo log read error block count
    ORA-00312: online log 11 thread 1: ‘/oracle/DB1/origlogA/log_g21m1.dbf’
    ORA-00312: online log 11 thread 1: ‘/oracle/DB1/mirrlogA/log_g21m2.dbf’

    trace-файлы:


    DDE: Problem Key ‘ORA 313’ was flood controlled (0x1) (no incident)
    ORA-00313: open failed for members of log group 5 of thread 1
    ORA-00312: online log 5 thread 1: ‘/oracle/DB1/mirrlogA/log_g15m2.dbf’
    ORA-27047: unable to read the header block of file
    IBM AIX RISC System/6000 Error: 25: Not a typewriter
    Additional information: 1
    ORA-00313: open failed for members of log group 5 of thread 1
    ORA-00312: online log 5 thread 1: ‘/oracle/DB1/mirrlogA/log_g15m2.dbf’
    ORA-27047: unable to read the header block of file
    IBM AIX RISC System/6000 Error: 25: Not a typewriter
    Additional information: 1

  • #14689

    roman
    Участник

    а какие вообще симптомы проблемы?

  • #14698

    yota
    Участник

    Не-не, не секрет:
    6100-06-05-1115 и
    11.2.0.2.0 (в составе SAP)

    PSU январский уже стоит?

  • #14699

    Alex
    Участник

    Скажем так, стоит всё, что заставляет ставить SAP AG, это же единое решение. О деталях саповских потрохов я не особенно в курсе. А что, там в числе «fixed» подобное упоминается?

  • #14706

    yota
    Участник

    Не знаю. У нас сапа нет, да и оракл на JFS мы не держим, поэтому проблем с DIO/CIO никогда не было. Просто первое чтобы сделал, вдруг пофиксили. Ну а если нет в чем проблема SR открыть. Вроде как эти индусы чот там отвечают иногда :laugh:

Для ответа в этой теме необходимо авторизоваться.