Описание:
Убьем процесс БД, перезагрузимся и увеличим размер shared_pool.
Шаг 1. Найдем и убьем процесс БД.
> ps -ef|grep pmon|grep usbs09
oracle 4465 1 0 May10 ? 00:06:30 ora_pmon_usbs09
> kill -9 4465
USBS09 в данном случае SID_NAME, указанный в listener.ora:
----
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(ORACLE_HOME=/u/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=usbs09)
)
----
Шаг 2. Подключаемся к БД и поднимаем инстанс.
sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Mon Mar 24 01:25:05 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Database mounted.
Database opened.
Шаг 3. Увеличиваем размер shared_pool_size
Команда:
alter system set shared_pool_size=524288000 scope=both sid='usbs09';
Выставит значение shared_pool_size = 512MB
Примечание.
Параметр shared_pool_size не может превышать значения sga_max_size.
Иначе получим сообщение об ошибке:
SQL> alter system set shared_pool_size=3145728000 scope=both sid='usbs09';
alter system set shared_pool_size=3145728000 scope=both sid='usbs09'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-04033: Insufficient memory to grow pool
Версия Oracle:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
Переведено и дополнено со статьи:
http://satishvchandran.blogspot.ru/2014/03/ora-01075-you-are-currently-logged-on.html
Рассмотрим случай когда на БД появилось сообщение вида:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","select t.ts#,t.file#,t.block...","sga heap(1,0)","kglsim object batch")
ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","select t.ts#,t.file#,t.block...","sga heap(1,0)","kglsim object batch")
Аналогично это сообщение будет отображено в alert.log.
После этого пытаемся подключиться к БД под SYS и получаем ошибку:
>sqlplus / as sysdba
ERROR:
ORA-01075: you are currently logged on
ERROR:
ORA-01075: you are currently logged on
Не получается и зайти обычным пользователем.
Для начала нужно решить проблему ORA-04031, т.к. ORA-01075 является её следствием.
Решение №1:
Подключиться под пользователем SYSTEM и выполнить команду alter system flush shared_pool;, если выполнение заканчивается ошибкой:
SQL> alter system flush shared_pool;
alter system flush shared_pool
*
ERROR at line 1:
ORA-02002: error while writing to audit trail
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 3896 bytes of shared memory ("shared
pool","select t.ts#,t.file#,t.block...","sga heap(1,0)","kglsim object batch")
Переходим к другому способу.
Решение №2:Переходим к другому способу.
Убьем процесс БД, перезагрузимся и увеличим размер shared_pool.
Шаг 1. Найдем и убьем процесс БД.
> ps -ef|grep pmon|grep usbs09
oracle 4465 1 0 May10 ? 00:06:30 ora_pmon_usbs09
> kill -9 4465
USBS09 в данном случае SID_NAME, указанный в listener.ora:
----
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(ORACLE_HOME=/u/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=usbs09)
)
----
Шаг 2. Подключаемся к БД и поднимаем инстанс.
sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Mon Mar 24 01:25:05 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Database mounted.
Database opened.
Шаг 3. Увеличиваем размер shared_pool_size
Команда:
alter system set shared_pool_size=524288000 scope=both sid='usbs09';
Выставит значение shared_pool_size = 512MB
Примечание.
Параметр shared_pool_size не может превышать значения sga_max_size.
Иначе получим сообщение об ошибке:
SQL> alter system set shared_pool_size=3145728000 scope=both sid='usbs09';
alter system set shared_pool_size=3145728000 scope=both sid='usbs09'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-04033: Insufficient memory to grow pool
Версия Oracle:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
Переведено и дополнено со статьи:
http://satishvchandran.blogspot.ru/2014/03/ora-01075-you-are-currently-logged-on.html
ОтветитьУдалитьПо указанной линке содержиться скрипт для генерации текущих переменных окружения (environment) для базы данных.
Так же в нем имеется хороший пример файла среды для базы данных.
http://dbpilot.net/2018/01/30/generating-an-enviroment-file-from-pl-sql/
...