Сообщения

Показаны сообщения с ярлыком "Oracle"

OEM. Не запускается

Изображение
Используется Oracle 11.20.4 После установки СУБД, при установке и запуске OEM (Oracle Enterprise Manager) возникает ошибка: Error starting Database Control.Execute the following command(s).  1) Set the environment variable ORACLE_UNQNAME to Database unique name   2) E:\ORACLE\oracle11\product\11.2.0\dbhome_1\bin\emctl.bat start dbconsole 25.04.2023 19:30:32 oracle.sysman.emcp.EMConfig perform CONFIG: Passing warning to the caller:  25.04.2023 19:30:32 oracle.sysman.emcp.EMConfig restoreOuiLoc CONFIG: Restoring oracle.installer.oui_loc to E:\ORACLE\oracle11\product\11.2.0\dbhome_1\oui Причина ошибки не ясна, поэтому пытаемся запустить вручную: # emctl start dbconsole Далее можно получить ответ: Служба уже запущена или Порт уже используется В этом случае виноват процесс, который был запущен службой, но при ошибке не завершил его. В моем случае это был порт 5520, поэтому выполняем поиск процесса, который использует данный порт с помощью команды: # netstat -aon Завершаем...

Открытие Файрвола под oracle вызывает ошибку PolKit.NotAuthorizedException.org.fedoraproject.config.firewall.auth

При открытии файрвола под пользователем Oracle возникает ошибка: org.fedoraproject.slip.dbus.service.PolKit.NotAuthorizedException.org.fedoraproject.config.firewall.auth: Решение: Выполняем команды: $ cd /etc/polkit-1/localauthority/50-local.d $  cat > 50-firewall-matthew-access.pkla << EOF Далее заполняем текстом файл: Allow matthew remote access to system-config-firewall] Identity=unix-user:oracle Action=org.fedoraproject.config.firewall.auth ResultAny=yes ResultInactive=yes ResultActive=yes EOF

Oracle. Импорт схем с исключением больших таблиц

Изображение
Восстановление дампа размером 98 Гб занимает примерно 233 минут (03:53). Довольно длительное время, а с учетом того что схемы ресторятся часто и при этом содержат практически одни и те же данные (дампы за разные даты), то получаем как минимум 2 проблемы: Большой объем схемы, который занимает табличное пространство и дисковое пространство Грустные сотрудники 😞, которые ожидают окончания рестора БД В связи с этим, было решено восстанавливать схемы исключая из них часть таблиц, особенно больших размеров. Логично, что данное решение имеет недостаток - в случае, если понадобятся данные из исключенной таблицы, то придется выполнять доимпорт схемы . Но это не страшно, дабы эти данные бывают нужны в 1 из 10 случаев. После исключения таблиц - время рестора уменьшилось до 100 минут (01:40). Довольно хороший результат 💪 С учетом, что рестор выполняется скриптом (sh), то в коде используется следующая команда: # Импорт таблиц за исключением некоторых, чтобы ускорить рестор (EXCLUDE) $CMD $SYSUSER...

SQL. Вывести информацию по данным в Oracle

Вывести информацию по табличным пространствам: SQL>  select b.tablespace_name, tbs_size SizeMb, a.free_space FreeMb     from (select tablespace_name, round(sum(bytes)/1024/1024 ,2) as free_space        from dba_free_space        group by tablespace_name) a,       (select tablespace_name, sum(bytes)/1024/1024 as tbs_size        from dba_data_files        group by tablespace_name) b      where a.tablespace_name(+)=b.tablespace_name; Вывести 10 самых больших таблиц: SQL>  SELECT * FROM (     SELECT owner, segment_name, bytes/1024/1024 meg     FROM dba_segments     WHERE segment_type = 'TABLE'     ORDER BY bytes/1024/1024 desc)     WHERE rownum <= 10;

Linux. Ошибка записи: На устройстве кончилось место

Изображение
Возникла ошибка при выполнении команд в terminal: Ошибка записи: На устройстве кончилось место Причиной ошибки стало то, что при подключении с помощью putty к серверу и дальнейшей попытке распаковки архива базы данных с помощью Midnight Commander ( mc) , файл распаковался неполностью и был помещен в директорию /tmp/mc-oracle (здесь oracle - это пользователь, под которым запускался mc Впрочем, не всегда это будет указанная директория. Поэтому найти необходимую папку, которая имеет достаточно большой объем можно командой: # du -h --max-depth=1 -x / Далее, смотрим у какой директории самый большой размер и выполняем команду: # du -h --max-depth=1 -x /temp Ну и так далее, пока не определяем файлы, которые забили систему.

ORA-01034 и ORA-27101

После запуска lsnrctl и попытке подключиться к БД возникает ошибка: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Данная ошибка связана с тем, что экземпляр БД, к которому осуществляется подключение, закрыт.  Необходимо выполнить его запуск: SQL> sqlplus "/ as sysdba" SQL> startup;      Oracle instance started      ------      Database mounted.      Database opened. SQL> quit;

INS-20802: Oracle Net Configuration Assistant failed error on Oracle Linux (6.10)

Изображение
При установке Oracle database 11g, на 11 шаге возникла ошибка: INS-20802: Oracle Net Configuration Assistant failed Cause - The plug-in failed in its perform method Action - Refer to the logs or contact Oracle Support Services. Log File Location /mnt/u01/app/oraInventory/logs/installActions2021-03-13_05-08-32PM.log Аналогичная ошибка и была при установке СУБД Oracle на Windows тут . Но судя по ошибке в логе, проблема здесь возникла не из-за переменной среды. Текст из лога: INFO: Started Plugin named: Oracle Net Configuration Assistant INFO: Found associated job INFO: Starting 'Oracle Net Configuration Assistant' INFO: Starting 'Oracle Net Configuration Assistant' INFO: Parsing command line arguments: INFO:     Parameter "orahome" = /mnt/u01/app/oracle/product/11.2.0/dbhome_1 INFO:     Parameter "orahnam" = OraDb11g_home1 INFO:     Parameter "instype" = typical INFO:     Parameter "inscomp" = client,oraclenet,javavm,server,an...

Ресурсы Oracle

Для инфо ниже ссылки на ресурсы Oracle: http://public-yum.oracle.com/index.html  - Репозиторий Oracle Linux. https://edelivery.oracle.com/osdc/faces/SoftwareDelivery - Дистрибутивы (требуется авторизация).* При нажатии submit, будет скачан загрузчик (exe), который будет пытаться загрузить выбранные файлы. * - лучше нажимать на iso файл и скачивать через браузер.

There was an error trying to initialize the HPI library.

При запуске установщика runInstaller СУБД Oracle 11g r2 возникла ошибка: There was an error trying to initialize the HPI library. Please check your installation, HotSpot does not work correctly when installed in the JDK 1.2 Linux Production Release, or with any JDK 1.1.x release. Could not create the Java virtual machine. Решение: [root@dbserver u01]# sudo dnf install libnsl Installed:   libnsl-2.28-127.0.3.el8_3.2.x86_64 Complete! [root@dbserver u01]#

Данные для считывания из сокета отсутствуют

Была установлена СУБД Oracle на сервер, с ошибками (как полагается). Подробнее в  Установка СУБД Oracle на Windows . Далее при подключении к БД возникла ошибка: An error was encountered performing the requested operation: Данные для считывания из сокета отсутствуют Vendor code 17410 Решение: 1. Проверить создана ли БД. Если нет создать в конфигураторе баз. В случае с SYS/SYSTEM была такая ситуация. 2. 99% вероятность ошибки в том, что неправильно сконфигурированы listener.ora и tnsnames.ora. Поэтому, лучше всего, проверить и, если ничего не помогает, пересоздать их с помощью конфигуратора (Net Configuration Assistant) и Net Manager.

Oracle. Вывести список схем

/* Запрос для получения списка схем по названию */ select username,     created    from dba_users   where account_status = 'OPEN'    --and default_tablespace = 'USERS' and    and created > to_date('01-01-2020', 'DD-MM-YYYY')     and (username like upper('%FIN%') or username like upper('%PL%') or username like upper('%GZ%')) ;

TNS-12555: TNS: permission denied. #Listener_живи

Используется: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production "CORE 11.2.0.4.0 Production" TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production Проблема: После перезапуска сервера, к схемам(БД) не возможно подключиться, в ошибке вижу что Listener не запущен. При попытке запустить Listener - получаю ошибку: TNS-12555: TNS: permission denied TNS-12560: TNS: protocol adapter error TNS-00525: Insufficient privilege for operation Linux Error: 1: Operation not permitted Решение:  Чтобы исправить ошибку и запустить Listener надо подправить файл listener.ora, закомментировав строку с IPC.  # listener.ora Network Configuration File: /mnt/hd2tb/oracle_ee/product/11.2.0.4/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST ...

Установка СУБД Oracle на Windows

Предварительно: Проверить не осталось ли файлов с прошлой версии (если это переустановка). Т.е. выполнены ли рекомендации из статьи   Удалить Oracle c Windows . Если все в порядке, приступаем к установке.  Описывать весь процесс не буду, так как в Интернете есть большое количество мануалов, как этот например - Установка и настройка Oracle Database 11g . Остановлюсь только на некоторых моментах. Поехали: Ввод e-mail пропускаем В параметрах установки выбираем - Create and configure a database Выбираем Server Class (используется для промышленного использования). Desktop Class - проще в установке, такая база используется для разработки. Выбираем Single instance database installation Выбираем  Typical Database Installation Указываем пути, а также пароль администратора БД (не забыть его) DATABASE NAME: ORACL11B PAS: ***44 Далее жмем "Готово", после чего запускается процесс установки. Log File: C:\Program Files\Oracle\Inventory\logs\installActions<date><time>....

СУБД Oracle. Работа с табличными пространствами (tablespace)

Вывести список табличных пространств (ТП): SQL> SELECT free.tablespace_name TABLESPACE,      ROUND(files.bytes / 1073741824, 2) gb_total,     ROUND((files.bytes - free.bytes)  / 1073741824, 2) gb_used,     ROUND(free.bytes  / files.bytes * 100) || '%' "%FREE"  FROM (SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) free,   (SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) files WHERE    free.tablespace_name = files.tablespace_name; SQL>  select  a.tablespace_name,        round(a.bytes_alloc / 1024 / 1024, 2) m_alloc,        round(nvl(b.bytes_free, 0) / 1024 / 1024, 2) m_free,        round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024, 2) m_used,        round(maxbytes/1048576,2) Max from  (select  f.tablespace_name,   ...

Узнать версию и разрядность Linux

Узнать версию Linux: [oracle @ dbserver38 playground]$  cat /etc/*-release Enterprise Linux Enterprise Linux Server release 5.11  ( Carthage ) Oracle Linux Server release 5.11 Red Hat Enterprise Linux Server release 5.11  ( Tikanga ) [oracle @ dbserver38 playground]$ Узнать версию ядра: [oracle @ dbserver38 playground]$  uname -a Linux dbserver38 2.6.39-400.297.3.el5uek #1 SMP Fri Jun 30 10:12:39 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux [oracle @ dbserver38 playground]$  arch x86_64 [oracle @ dbserver38 playground]$  uname -m x86_64    

Пересобрать статистику БД

Команды для сбора статистики по схеме Базы данных BEGIN dbms_stats . gather_schema_stats ( ownname => '<имя схемы>' , CASCADE => TRUE , method_opt => 'FOR ALL INDEXED COLUMNS SIZE 254' ); END ; BEGIN dbms_stats . gather_schema_stats ( ownname => '<имя схемы>' , CASCADE => DBMS_STATS . AUTO_CASCADE , estimate_percent => 25 /*DBMS_STATS.AUTO_SAMPLE_SIZE*/ , degree => NULL , no_invalidate => DBMS_STATS . AUTO_INVALIDATE , granularity => 'AUTO' , method_opt => 'FOR ALL COLUMNS SIZE AUTO' , OPTIONS => 'GATHER' ); END ;

Запуск OEM

Для запуска OEM используется команда: [oracle@dbserver38 playground] $ emctl start dbconsole Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0  Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved. https://localhost.localdomain:1158/em/console/aboutApplication Starting Oracle Enterprise Manager 11g Database Control .......

СУБД Oracle. Максимальный размер файла данных (dbf-файл) табличного пространства (tablespace)

Изображение
При увеличении табличного пространства USERS в Oracle возник вопрос: до какого размера может разрастись tablespace и от какого параметра он зависит. На сколько я понял, размер dbf-файла по умолчанию, т.е. когда вы не задаете его размер в строке запроса на создание: ALTER TABLESPACE USERS ADD DATAFILE '/mnt/hd2tb/oracle_ee/oradata/users25.dbf' SIZE 1000 M AUTOEXTEND ON ; будет увеличиваться до 32 ГБ. А максимальное значение его размера зависит от параметра  db_block_size следующим образом: db_block_size   Maximum size in bytes 2048  8,589,932,544  4096  17,179,865,088  8196  34,359,730,176  16,384  68,719,460,352  32,768  137,438,920,704 

"Кракозябры" в терминале (windows 2012)

Изображение
После установки Oracle и открытии sqlplus в CMD отображаются "кракозябры", которые вообще не читаемы и не понятны. Хотя по ошибке ORA можно что-то понять. (наверное) Необходимо сменить кодировку непосредственно перед вызовом sqlplus > set NLS_LANG=russian_cis.ru8pc866

Удалить СУБД Oracle на Windows

Изображение
1. Необходимо завершить все процессы(Диспетчер задач) 2. Удалить все службы Oracle (предварительно остановив их) sc delete OracleVssWriterORCL11 sc delete OracleServiceORCL11 sc delete OracleOraDb11g_home2TNSListener sc delete OracleOraDb11g_home2ClrAgent sc delete OracleJobSchedulerORCL11 sc delete OracleDBConsoleorcl11 sc delete OracleMTSRecoveryService Также можно найти их в ветке реестра: HKCU/Software/Oracle, HKLM/Software/Oracle HKLM/System/ControlSet001/Services/Oracle....... HKLM/System/ControlSet002/Services/Oracle........ HKLM/System/CurrentControlSet/Services/Oracle...... 3. Удаляем все файлы из папки: C:\Program Files\Oracle Куда устанавливался Oracle Если не удаляется, и пишет что данные файлы используются процессом, нужно посмотреть каким процессом он используется. Для этого нужно открыть Монитор ресурсов (Win+R --> resnom) и завершить процесс оттуда. 3.1. Если удалить не получилось, то перезапускаем компьютер (сервер) после чего данные файлы можно будет уд...