Oracle 12 c ошибка запуска: ORA-00093: _shared_pool_reserved_min_allo c должно быть между 4000 и 0 - PullRequest
0 голосов
/ 26 мая 2020

В нашей компании есть несколько баз данных. Среди них oracle 12 c (12.2.0.1.0, если быть точным), но у нас нет (квалифицированных) oracle администраторов баз данных. Производительность резко ухудшилась за последние 6 месяцев или около того, и теперь у меня есть задача выяснить, почему. Мое исследование показало, что мне следует увеличить некоторые параметры памяти в файле initDBN.ora. Вот как выглядел оригинал:

DBN.__data_transfer_cache_size=0
DBN.__db_cache_size=50331648
DBN.__inmemory_ext_roarea=0
DBN.__inmemory_ext_rwarea=0
DBN.__java_pool_size=79691776
DBN.__large_pool_size=8388608
DBN.__oracle_base='/orabin/app/oracle'#ORACLE_BASE set from environment
DBN.__pga_aggregate_target=197132288
DBN.__sga_target=734003200
DBN.__shared_io_pool_size=12582912
DBN.__shared_pool_size=536870912
DBN.__streams_pool_size=4194304
*.audit_file_dest='/orabin/app/oracle/admin/tmf/adump'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='/orabin/app/oracle/oradata/tmf/control01.ctl','/orabin/app/oracle/fast_recovery_area/tmf/control02.ctl'
*.db_16k_cache_size=8388608
*.db_32k_cache_size=8388608
*.db_4k_cache_size=8388608
*.db_block_size=8192
*.db_domain='ubs-hainer.com'
*.db_name='tmf'
*.db_recovery_file_dest='/orabin/app/oracle/fast_recovery_area/tmf'
*.db_recovery_file_dest_size=4096m
*.diagnostic_dest='/orabin/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=TMFXDB)'
*.local_listener='LISTENER_TMF'
*.memory_max_target=0
*.nls_language='GERMAN'
*.nls_territory='GERMANY'
*.open_cursors=300
*.pga_aggregate_target=188m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=700m
*.shared_pool_size=536870912
*.streams_pool_size=4194304
*.undo_tablespace='UNDOTBS1'

Пожалуйста, не обвиняйте меня в этом, потому что я его не писал. Это, конечно, не похоже на образец init.ora, и я не совсем уверен, откуда взялся синтаксис. Я изменил следующие значения:

  1. DBN .__ sga_target = 1024 м
  2. *. Sga_target = 1024 м
  3. *. Memory_max_target = 1408 м
  4. DBN. __pga_aggregate_target = 384m и * .pga_aggregate_target = 384m

Это порядок, в котором я внес изменения. После каждого изменения я использовал sqlplus, чтобы сначала воссоздать spffile с:

create spfile='spfileDBN.ora' from pfile='initDBN.ora';

За этим последовала попытка запустить базу данных с startup nomount. В каждом случае я получал сообщение об ошибке, которое побуждало меня сделать следующее изменение.

Наконец-то я получил ошибку, которая указана в заголовке этого сообщения. Когда я попытался найти информацию по этому поводу, результаты были мрачными. В основном информация касалась других параметров и не объясняла, что на самом деле означает эта ошибка. Единственное, что давало реальную предысторию, - это ссылка на Burleson Consulting . Это не помогло мне решить проблему, поэтому я решил вернуть файл initDBN.ora и провести дополнительное исследование. Медленная база данных обычно лучше, чем ее отсутствие.

Но привет! Я по-прежнему получаю ту же ошибку, даже после повторного обращения к исходному файлу инициализации. Я уже в отчаянии. Понятия не имею, как это исправить. Из того, что я читал на сегодняшний день, установка «переменных подчеркивания» в вашем файле инициализации - это «НЕТ НЕТ».

Может ли кто-нибудь дать мне несколько полезных советов, как избавиться от этой ошибки?

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Я не уверен, что это действительно можно квалифицировать как «решение», но оно решает исходную проблему. Как упоминалось в моем ответе Коннору Макдональду, я установил для параметра _shared_pool_reserved_min_alloc значение 3000 в initDBN.ora file, которое я скопировал из примера Коннора (спасибо за это). После воссоздания spfile и попытки перезапустить базу данных я получил следующую ошибку:

ORA-00093: _shared_pool_reserved_min_alloc must be between 4000 and 11953766

Это заставило меня подумать, что значение 0 в исходной ошибке, вероятно, было стандартным значением, что на самом деле означает «максимально допустимый ". Фактически установив параметр, мне, по-видимому, удалось сгенерировать более значимую ошибку.

Значение _shared_pool_reserved_min_alloc теперь установлено на 4200, это значение, которое я читал в одном из менее полезных сообщения. (Нет, в этом сообщении не говорилось, что это значение следует , просто можно использовать .) На этот раз, после повторного использования Создав spfile, я смог запустить базу данных.

Прежде чем я снова возьмусь с параметрами, я проведу еще немного исследований ... или, может быть, намного больше.

0 голосов
/ 27 мая 2020

Мы не знаем, нужны ли приложениям, работающим в этой базе данных, c размеры блоков, но если приоритетом является открытие базы данных, вы можете сжать init.ora до наименьшего и простейшего набора параметров, который получает вы продвигаетесь вперед.

*.audit_file_dest='/orabin/app/oracle/admin/tmf/adump'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='/orabin/app/oracle/oradata/tmf/control01.ctl','/orabin/app/oracle/fast_recovery_area/tmf/control02.ctl'
*.db_block_size=8192
*.db_domain='ubs-hainer.com'
*.db_name='tmf'
*.db_recovery_file_dest='/orabin/app/oracle/fast_recovery_area/tmf'
*.db_recovery_file_dest_size=4096m
*.diagnostic_dest='/orabin/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=TMFXDB)'
*.local_listener='LISTENER_TMF'
*.nls_language='GERMAN'
*.nls_territory='GERMANY'
*.open_cursors=300
*.pga_aggregate_target=188m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1000m
*.undo_tablespace='UNDOTBS1'

должны дать вам открытую базу данных. Обратите внимание, я увеличил sga_target до 1000 м, что примерно соответствует минимуму, необходимому для запуска базы данных. Значения true для sga_target и pga_aggregate_target действительно должны быть установлены в зависимости от вашего ожидаемого использования и конфигурации сервера. Но приведенный выше init.ora должен запустить вашу базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...