четверг, 8 апреля 2010 г.

Осторожнее с рекомендациями

При изучении отчетов EarlyWatch многие игнорируют раздел Database Settings. "Но он ведь там не зря.." = подумал я. И решил привести параметры базы данных к рекомендованным.
Сначала изучил ноту SAP 830576. Наиболее сложным оказался параметр PROCESSES. Он вычисляется по формуле:
#ABAP work processes * 2 + #J2EE server processes * + PARALLEL_MAX_SERVERS + 40
Количество рабочий процессов ABAP (#ABAP work processes) можно посмотреть через транзакции SM50/SM51
Процессов сервера J2EE (#J2EE server processes) всего 2 (сервер сообщений и собственно сама Java-инстанция)
Значение параметра определяется следующим образом:
1. Запускаете Visual Administrator
2. Раскрываете узел server -> services -> JDBC provider
3. Открываете закладку "Properties"
4. Проверяете значение поля max no. of connections (по умолчанию 100)
Если имеется более одной Java инстанции необходимо к этому значению прибавить значения параметра для каждой инстации.
(http://forums.sdn.sap.com/thread.jspa?threadID=1502920&tstart=75)
Параметр PARALLEL_MAX_SERVERS вычисляется по формуле #DB-CPU-Cores * 10, где #DB-CPU-Cores - количество процессоров на сервере базы данных. В случае, если база данных и система расположены на одном и том же сервере, то полученное значение делится пополам или #DB-CPU-Cores * 0,5 * 10.
Параметр LOG_BUFFER вычисляется Oracle самостоятельно. Также можно отключить проверку этого параметра в DB17.
Еще один параметр, который заслуживает внимания это LOG_ARCHIVE_DEST_1. В ноте указано, что он должен иметь значение: "LOCATION=/oraarch/arch". Здесть таится опасность, если у Вас установлены параметры LOG_ARCHIVE_DEST или LOG_ARCHIVE_DUPLEX_DEST, то использовать LOG_ARCHIVE_DEST_1 нельзя. Это приведет к невозможности запуска базы данных. Что собственно произошло со мной. Но по порядку.
после корректировки параметров базы данных был осуществлен перезапуск системы. И тут выяснилось что не стартует база данных. В журнале /home/savadm/startdb.log была обнаружена ошибка:
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
Порядок исправления был такой:
1. Регистрируемся как ora
2. Запускем sqlplus /nolog
3. Выполняем команду CREATE PFILE [='pfile_name'] FROM SPFILE [='SPfile_name'];
4. Удаляем неправильный параметр из pfile
5. Выполняем команду CREATE SPFILE FROM PFILE [='pfile_name'];
6. Перезапускаем систему.

Я еще выполнял команду STARTUP NOMOUNT между шагами 2 и 3, но не уверен что это необходимо.

3 комментария:

  1. STARTUP NOMOUNT обязательно, иначе база не будет знать параметров из SPfile для создания соответствующего Pfile.
    После п.5 необходимо лишь shutdown immediate; startup;

    ОтветитьУдалить
  2. Кроме того по поводу LOG_ARCHIVE_*_DEST: у оракла используется либо LOG_ARCHIVE_DEST/LOG_ARCHIVE_DUPLEX_DEST, либо LOG_ARCHIVE_DEST_N, так уж повелось, что либо много мест для логов, либо одно и параметры отличаются.

    ОтветитьУдалить