17 ноября 2014 г.

Процедура 'Check database' в DB13

Как вы знаете, для администрирования базы данных Oracle в SAP системе есть "Календарь планирования DBA". Доступ к нему осуществляется через транзакцию DB13 или транзакцию DBACOCKPIT (путь: Задания -> Календарь планирования АдминБД (DBA)) (рис. 1).

Рис. 1. Календарь планирования DBA.

В календаре можно запланировать набор стандартных фоновых заданий, которые используют те или иные утилиты из набора BR*Tools.

Среди данного набора есть задание "Check Database" (brconnect -u / -c -f check), которое выполняет проверку базы данных Oracle. Рекомендуется запускать данное задание минимум один раз в неделю и проверять отчет о выполнении не реже. :)

Стандартный набор проверок состоит из следующих частей:
  • DBA - проверки структуры базы данных (наличие всех файлов, критичные пороги размеров файлов и файловых систем и т.п.),
  • DBO - проверки выполнения резервных копий база данных и журнальных файлов Oracle,
  • ORA - наличие ошибок Oracle в журнале базе данных,
  • PROF - проверка значений параметров Oracle.

Набор проверок поставляется компанией SAP и хранится в таблице DBCHECKORA. Стандартный набор проверок можно загрузить посредством SQL-скрипта который хранится в SAP note # 403704 - BRCONNECT - Enhanced function for Oracle DBA.

Иногда бывает необходимо скорректировать проверки базы данных. Например, есть система, у которой нет необходимости использовать ARCHIVELOG MODE для базы данных. При выполнении задания "Check Database" в данной системе проверка на ARCHIVELOG MODE не проходит - выдает сообщение об ошибке (рис. 2).

Рис. 2. Предупреждение в отчете Check Database.

Доступ к проверкам, используемым этим отчетом, можно получить через транзакцию DB17 или DBACOCKPIT (путь Предупреждения -> Check Conditions). Запускаем транзакцию, находим условие для ARCHIVELOG MODE (рис. 3).

Рис. 3. Условия проверки базы данных.

Переходим в редактирование условия и отключаем проверку (рис. 4).

Рис. 4. Отключение проверки ARCHIVELOG MODE.

Сохраняем условие и выходим (рис. 5).

Рис. 5. Условия проверки базы данных с неактивной проверкой на ARCHIVELOG MODE.

После этого данная проверка в задании "Check Database" производится не будет (рис. 6).

Рис. 6. Отчет задания Check Database без проверки ARCHIVELOG MODE базы данных.

Условия можно удалять полностью, создавать новые по шаблону из стандартных, менять условия выполнения и тип сообщения. 

Напомню, что вернуть всё к стандартному набору можно через SQL-скрипт из SAP note # 403704 - BRCONNECT - Enhanced function for Oracle DBA.  

10 ноября 2014 г.

Default Temporary Tablespace PSAPTEMP

Начиная с версии SAP_BASIS 6.40 и базы данных Oracle 9i, рекомендуется в качестве табличного пространства по-умолчанию (Default Temporary Tablespace) использовать специальное табличное пространство PSAPTEMP. В предыдущих версиях SAP/Oracle использовалось табличное пространство SYSTEM.

В свое время данное решение было продиктовано соображениями безопасности. Иначе, на уровне базы данных мог быть создан пользователь, у которого временным табличным пространством было бы установлено SYSTEM, и которое при использовании в данном качестве, увеличивалось бы в размерах, оставаясь таким и после окончания использования. 

Утилита BRTools, начиная с версии 6.40, проверяет какое табличное пространство установлено в качестве Default Temporary Tablespace. Если это SYSTEM, то выдается сообщение об ошибке. Например, в отчете CheckDB в транзакции DB13 (рис. 1).

Рис. 1. Ошибка в отчете CheckDB.

На уровне SQLPlus проверить значение Default Temporary Tablespace можно следующим SQL-запросом (рис. 2 и 3).

Рис. 2.  Табличное пространство PSAPTEMP в качестве Default Temporary Tablespace.

Рис. 3. Табличное пространство SYSTEM в качестве Default Temporary Tablespace.

Если система выдает ошибку (рис. 1) и проверка на уровне SQLPlus показывает, что это так и есть (рис. 3), то необходимо переназначить значение Default Temporary Tablespace согласно рекомендациям SAP следующей SQL-командой (рис. 4).

Рис. 4. Изменение значения Default Temporary Tablespace на PSAPTEMP.

После этого можно проверить, что данное табличное пространство установлено для всех пользователей базы данных (рис. 5).

Рис. 5. Проверка, что для всех пользователей базы данных установлена PSAPTEMP.

Подробности в SAP note # 683075 - Oracle9i: Default Temporary Tablespace. Там же описано, как создать временное табличное пространство PSAPTEMP, если его нет.