При создании базы данных oracle xe зависает

Обновлено: 21.11.2024

Вопрос. У меня зависла задача Oracle. Что заставляет Oracle зависать? Как определить причину зависания Oracle? Как исправить проблему с зависанием Oracle?

Ответ: Oracle зависает только тогда, когда он ожидает ресурс. Это может быть защелка (блокировка) или нехватка ресурсов сервера (ЦП, ОЗУ).

Более подробные сведения о диагностике зависшей базы данных см. в книге Advanced Oracle Utilities: The Definitive Reference.

Другие возможности зависания Oracle:

Зависание пути. Убедитесь, что переменные среды Oracle установлены правильно ($ORACLE_HOME).

Внешнее зависание. Неисправность сети, проблемы с безопасностью Kerberos, система единого входа или проблема с брандмауэром могут привести к зависанию соединения с Oracle. Один из способов проверить это — установить sqlnet.authentication_services=(none) в файле sqlnet.ora и повторить попытку подключения.

Прослушиватель отключен/завис. Начните с проверки прослушивателя (проверьте статистику lsnrctl). Также см. мои заметки по диагностике проблем с сетевым подключением Oracle.

Зависание из-за нехватки ОЗУ – перераспределение ресурсов сервера, обычно ОЗУ, из-за чего не хватает ОЗУ для создания другого подключения к Oracle.

Зависание данных. Нередко сеанс конечного пользователя «зависает», когда он пытается захватить общий ресурс данных, которым владеет другой конечный пользователь.

ЦП исчерпан. Когда значение столбца vmstat runqueue (r) превышает значение cpu_count, у вас ограничено использование ЦП.

Превышение параметра «процессы» — при превышении количества параметров инициализации «процессы» экземпляр зависнет и не будет принимать новые подключения. Введите команду SQL*Plus «показать процесс параметров».

Отказ базы данных — это не ответ, вам нужно знать, «почему» блокируется экземпляр!

Возможно, вы заблокированы из-за превышения системного лимита. Кроме того, обязательно проверьте журнал SQL*Net и журнал предупреждений для базы данных.

Кроме того, проверьте vmstat и убедитесь, что число столбцов очереди выполнения (r) превышает значение cpu_count.
Единственная метрика, определяющая узкое место ЦП, — это когда очередь выполнения (значение r) превышает количество ЦП на сервере. . См. high_cpu

Используйте выходные данные vmstat и посмотрите на столбцы частоты сканирования (sr) и количества страниц (pi). Чтобы помочь в измерении реальных страниц, утилита vmstat UNIX и Linux выводит столбец скорости сканирования (sr), который обозначает скорость сканирования страниц памяти. Если скорость сканирования неуклонно растет, будет определен первый порог демона кражи страниц, что указывает на то, что все области оперативной памяти этой конкретной программы выгружаются на диск подкачки. Затем это поведение можно сопоставить с метрикой vmstat page-in (pi). См. настройку оперативной памяти сервера

Теперь давайте посмотрим, как отладить зависшую базу данных.

Отладка зависшей базы данных

В Oracle 10g зависание базы данных было настоящей проблемой, особенно если администратор базы данных не мог подключиться через SQL*Plus, чтобы устранить источник зависания. В этих случаях у администратора баз данных было мало вариантов, кроме принудительного отключения экземпляра и его горячего запуска.

В Oracle 11g SQL*Plus появилась новая функция, которая называется "prelim". Этот параметр очень удобен для запуска oradebug и других утилит, не требующих реального подключения к базе данных.

корень> sqlplus –prelim

SQL> включить _prelim

SQL> подключиться / как sysdba

Теперь вы можете запускать команды oradebug для диагностики проблемы с зависшей базой данных с помощью новой утилиты hanganalyze:

  1. SQL> oradebug hanganalyze 3
  2. Подождите не менее 2 минут, чтобы определить изменения состояния процесса.
  3. SQL> oradebug hanganalyze 3
  4. Откройте отдельный сеанс SQL и немедленно создайте дамп состояния системы.
  5. SQL> изменить события набора сеансов 'немедленное имя трассировки SYSTEMSTATE level 10';

Вы также можете получить дамп трассировки для определения сведений о зависших сеансах в Oracle Real Application Clusters (RAC) следующим образом:

  1. SQL> oradebug setmypid
  2. SQL> oradebug устанавливает все
  3. SQL> oradebug -g def hanganalyze 3
  4. <ли>. Подождите не менее 2 минут, чтобы определить изменения состояния процесса.
  5. SQL> oradebug -g def hanganalyze 3

Есть несколько других способов найти причину зависания Oracle:

Автоматическая история сеансов — проверка ASH во время зависания (если вы приобрели лицензию):

Отчет. Запустите пару моментальных снимков STATSPACK или AWR во время зависания и получите отчет о прошедшем времени.

См. следующие примечания по устранению проблем с зависанием Oracle:

SQL зависает из-за использования пространства TEMP

Исправление зависания SHUTDOWN: ожидание завершения активных вызовов

SQL*Plus зависает

Экспорт "зависания" при экспорте определений

Oracle зависает, и вы не можете подключиться

Бурлесон — американская команда

Примечание. Эта документация по Oracle была создана в качестве справочника по поддержке и обучению Oracle для использования нашими специалистами-консультантами по настройке производительности администраторов баз данных. Не стесняйтесь задавать вопросы на нашем форуме Oracle.

Проверьте опыт! Любой, кто рассматривает возможность использования услуг эксперта службы поддержки Oracle, должен самостоятельно проверить свои полномочия и опыт, а не полагаться на рекламу и самопровозглашенный опыт. Все законные эксперты Oracle публикуют свои квалификации Oracle.

Ошибки? Технология Oracle меняется, и мы стараемся обновлять нашу информацию о поддержке BC Oracle. Если вы обнаружите ошибку или у вас есть предложение по улучшению нашего контента, мы будем признательны за ваш отзыв. Просто электронная почта:

и укажите URL-адрес страницы.


Burleson Consulting

Оракул поддержки баз данных

Здравствуйте, у меня такая же проблема, как и у других людей. Установщик навсегда зависает, пытаясь создать первую БД. Это Windows 10 Pro версии 1903.
На данный момент нажатие кнопки «Отмена» не дает никакого эффекта: установка не прерывается.
Поскольку несколько сообщений на испанском языке, я переведу их вручную ( они могут не совпадать с сообщениями на родном английском языке). Вот что я нашел в нескольких лог-файлах:

1) cfgtoollogs\dbca: в этом каталоге журналы и файл lck имеют длину 0 байт.

2) cfgtoollogs\netca\netca_OraDB18Home1*.log:
Настройка прослушивателя завершена.
Настройка локальной номенклатуры по умолчанию завершена.
Сетевые службы Oracle настроены правильно. Код выхода: 0

Пока все хорошо, кажется, установка прошла успешно. Однако процесс установки по-прежнему зависает на «создании базы данных Oracle XE». Я нашел еще один журнал в другом каталоге:

4) dbhomeXE\log\\client\TNSLSNR_9612.log
gipcmodNetworkAsyncComplete: ошибка [сети] для endp 000002378D24AEB0, req 000002378D1EB760, тип sgipcnreqtypeConnect (1), данные 00000000000000000, sret sgipcret8 gipcmodNetworkAsyncComplete: slos op : sgipcwWait
gipcmodNetworkAsyncComplete: slos dep : удаленное оборудование отклонило сетевое подключение. (1225)
gipcmodNetworkAsyncComplete: slos loc : GetQueueComp
gipcmodNetworkAsyncComplete: slos info: failed for over 000002378BBA0AC0
gipcInternalConnectSync: ошибка запроса на синхронизацию, ret gipcretConnectionRefused (29)
gipcConnectSyncF [clscrsconGipcConnect: clscrConnect : clscrConnect : clscrConnect: clscrsconGipcConnect: clscrsconGipcConnect: .c : 681]: ИСКЛЮЧЕНИЕ [ ret gipcretConnectionRefused (29) ] не удалось синхронизировать соединение endp 000002378D24AEB0 [0000000000000028] < gipcEndpoint : localAddr 'clsc://(АДРЕС=(ПРОТОКОЛ=tcp)(HOST=0.0.0.0)(PORT=49886 )(GIPCID=00000000-00000000-0))', remoteAddr 'clsc://(АДРЕС=(ПРОТОКОЛ=tcp)(HOST=127.0.0.1)(PORT=61003)(GIPCID=00000000-00000000-0))' , numpend 0, numready 0, numdone 0, numdead 0, numtransfer 0, objflags 0x0, pidpeer 0, readyref 0000000000000000, готов 0, wobj 000002378d24b8e0, sendp 000002378d24d4f0 статус 13flags 0x2008071a, flags-2 0x0, USRFLAGS 0x0>, ADDR 000002378D24E750 [000000000000002B ] < gipcAddress : name 'clsc://(АДРЕС=(ПРОТОКОЛ=tcp)(HOST=127.0.0.1)(PORT=61003)(GIPCID=00000000-00000000-0))', objF lags 0x0, addrFlags 0x4 >, flags 0x0
ut_read_reg:2:ocr ключ реестра SOFTWARE\Oracle\olr не может быть открыт. ошибка 2

На какое удаленное оборудование ссылается журнал? Я не в сети компании, я использую свой личный компьютер дома.
Кроме того, процесс "Java(TM) Platform SE binary" постоянно растет. Я предполагаю, что вы не контролируете ошибки внутри кода, пытающегося создать базу данных, и поэтому программа теряет память?
В то время, когда я ее убил, она использовала 1,5 ГБ ОЗУ.

Да ладно, я установил на этот компьютер Firebird, MySql, SqlServer и PostgreSql. Угадай, что? Они устанавливаются быстро и без ошибок.
Почему вы так мучительно усложняете установку Oracle XE?
У меня в сетевом адаптере есть "клиент для сетей MS" и "общий доступ к принтерам и файлам", но я предполагаю, что Проблема в том, что у меня не работают некоторые службы. Как я уже сказал, это мой компьютер, напрямую подключенный к Интернету.
Я просто хотел освежить свои старые базовые знания о хранимых процессах, но вижу, что по прошествии многих лет для установки Oracle все еще требуется мастерство черной магии.

В своем предыдущем посте я продемонстрировал, как установить Oracle Database 18c XE в Linux. В этом посте вы узнаете, как установить Oracle Database 18c XE в Windows. Я выполняю установку в Windows 10, но она должна оставаться одинаковой для всех версий Windows.

Загрузив zip-файл, извлеките его куда угодно.

Перейдите в извлеченный каталог установщика Oracle 18c XE и дважды щелкните файл setup.exe . Важно: не дважды щелкайте файл Oracle Database 18c Express Edition.msi .

Нажмите «Да», когда Windows спросит, хотите ли вы разрешить этому приложению вносить изменения на вашем устройстве.

Установщик запустится, нажмите «Далее».

Прочитайте лицензионное соглашение и нажмите «Я принимаю условия лицензионного соглашения». Затем нажмите «Далее».

Выберите папку назначения, в которую следует установить Oracle 18c XE, или примите папку по умолчанию. Затем нажмите «Далее».

Укажите и подтвердите пароль базы данных. Это пароль, который будет установлен для учетных записей SYS, SYSTEM и PDBADMIN, которые вы впоследствии будете использовать для прямого подключения к базе данных. Затем нажмите «Далее».

На следующем экране вы увидите сводку и подтверждение папок назначения для Oracle Database 18c XE. Нажмите «Установить».

Сейчас идет установка 18c XE, это может занять несколько минут.

Если у вас активирован брандмауэр Защитника Windows, вам будет предложено разрешить сетевой доступ к двоичному файлу Java Platform SE. Установите флажки, чтобы разрешить доступ к выбранным вами сетям, и нажмите кнопку «Разрешить доступ». Примечание. Если вы не разрешаете доступ к сети для Java, некоторые функции Oracle Database 18c XE могут работать неправильно.

Установка продолжится. После завершения вам будет представлен сводной экран «Базы данных Oracle успешно установлены», в котором также перечислены контейнерная база данных, подключаемая база данных и сведения о соединении с Enterprise Manager Express. Нажмите «Готово».

Поздравляем, теперь на вашем компьютере с Windows установлена ​​база данных Oracle Database 18c XE.

Установка Oracle Database 18c XE с другим набором символов

Oracle 18c XE снова поставляется со всеми наборами символов, в отличие от 11g XE, который поставляется только с AL32UTF8 . Oracle сделал это, чтобы помочь пользователям перейти с набора символов, характерного для их страны или региона, на рекомендуемый набор символов UTF-8. Вы можете (снова) установить 18c XE с набором символов для вашей страны/региона, а также с UTF-8 и посмотреть, работают ли ваши приложения по-прежнему, или исправить их. В связи с этим я призываю всех как можно скорее перейти на набор символов UTF-8. UTF-8 — это надмножество всех региональных символов, и со стороны базы данных не должно быть причин, по которым вы не можете его принять. И если есть, пожалуйста, дайте мне знать, чтобы мы могли преодолеть это. Вы можете обнаружить, что в будущем будет все труднее и труднее использовать другие наборы символов, кроме UTF-8.

Набор символов по умолчанию для 18c XE, как и в 11g XE, AL32UTF8 . Итак, если ваше приложение уже успешно работает на 11g XE или 18c XE сегодня, все готово!Если вы хотите установить 18c XE с другим набором символов, мастер установки, к сожалению, не предоставит вам возможность выбрать его. Вместо этого вам придется вызвать setup.exe из командной строки и передать параметр CHAR_SET, как описано в главе Поддержка глобализации. Вы можете сделать это, открыв командную строку, перейдите в извлеченный каталог установщика Oracle Database 18c XE и вызовите setup.exe /v"CHAR_SET=[character_set]" . Допустим, вы хотите установить Oracle Database 18c XE с набором символов WE8ISO8859P1. Вам нужно будет вызвать setup.exe следующим образом: setup.exe /v"CHAR_SET=WE8ISO8859P1" .

Примечание. Очень важно передавать кавычки /v и " без пробела между ними, как указано выше! В противном случае вы получите следующее окно с ошибкой:

После того как вы нажмете Enter, Windows снова спросит вас, хотите ли вы разрешить этому приложению вносить изменения на вашем компьютере. Нажмите «Да», чтобы продолжить.

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

После завершения установки вы можете убедиться в этом, выполнив следующий запрос: SELECT * FROM NLS_DATABASE_PARAMETERS WHERE параметр = 'NLS_CHARACTERSET';

Подключение через SQL Developer

Для подключения к Oracle Database 18c XE я настоятельно рекомендую загрузить и установить SQL Developer (см. инструкции по установке SQL Developer).

Откройте новое окно подключения, нажав зеленый знак + в левом верхнем углу под «Подключения».

Затем введите данные подключения для XE.

Не забудьте изменить роль на SYSDBA, если вы пытаетесь подключиться как SYS. Установите флажок «Сохранить пароль», если вы хотите, чтобы SQL Developer запомнил ваш пароль. Затем нажмите «Подключиться».

Должен появиться новый рабочий лист SQL, и вы подключитесь к Oracle Database 18c XE.

Подключение через командную строку

Чтобы подключиться к Oracle Database 18c XE через командную строку, запустите командную строку и введите sqlplus / as sysdba , что соединит вас как SYS с контейнерной базой данных XE .

Вы можете переключиться на подключаемую базу данных XEPDB1, введя команду alter session set container=XEPDB1; Вы можете подтвердить переключение контейнера, набрав show con_name, которое должно вернуть XEPDB1. Если вы не видите XEPDB1, а вместо этого видите CDB$ROOT, вы не переключили контейнер. Проверьте наличие возможных ошибок в вашей команде alter session.

Вы также можете выполнить установку Oracle 18c XE в автоматическом режиме, т.е.без необходимости запуска мастера установки. Преимущество этого метода в том, что вы можете написать сценарий и автоматизировать установку. Предварительные условия остаются прежними, сначала вам нужно будет загрузить и распаковать zip-файл установщика. После извлечения вы найдете файл с именем XEInstall.rsp внутри каталога, который является файлом ответа (или параметра), который вы должны передать setup.exe . Вы можете установить значения для всех параметров, которые в противном случае будут запрошены во время установки:

Допустим, вы хотите установить Oracle 18c XE в папку C:\oracle\product\18c с набором символов WE8MSWIN1252 и паролем Hello18cXE. Для этого откройте файл XEInstall.rsp в приложении «Блокнот». Щелкните правой кнопкой мыши файл XEInstall.rsp, выберите «Открыть с помощью» и выберите «Блокнот».

Теперь измените три параметра INSTALLDIR , PASSWORD , CHAR_SET, а затем сохраните и закройте файл.

Чтобы запустить автоматическую установку, откройте командную строку, перейдите в каталог установщика 18c XE (где вы также отредактировали файл XEInstall.rsp) и выполните следующую команду:

setup.exe /s /v"RSP_FILE=[Ваш каталог установщика Oracle XE]\XEInstall.rsp" /v"/L*v [Ваш каталог установщика Oracle XE]\setup.log" /v"/qn"

Лучше всего скопировать/вставить приведенную выше команду, так как командная строка не прощает опечаток. Измените [Ваш каталог установщика Oracle XE] на путь к извлеченному каталогу файлов установщика Oracle XE.

Примечание. Вам придется использовать абсолютные пути как для расположения файла ответов, так и для расположения файла журнала!

Windows снова спросит, хотите ли вы разрешить приложению вносить изменения на вашем устройстве. Нажмите «Да», и установка продолжится. Вы можете обойти всплывающее окно, запустив командную строку от имени администратора. Мастер установки больше не появляется, так как установка происходит тихо. Так как же проверить ход установки? Вы могли заметить, что приведенная выше команда указала файл журнала setup.log, который представляет собой подробный (и довольно большой) журнал процесса установки. После успешного завершения установки в нижней части файла журнала вы увидите следующее:

Продукт: Oracle Database 18c Express Edition -- операция установки успешно завершена.

Примечание. Если брандмауэр Защитника Windows активирован, вы все равно можете получить всплывающее окно, позволяющее разрешить или запретить доступ Java Platform SE к вашим сетям. Обойти это при автоматической установке невозможно. Если вам нужна действительно автоматическая установка, вы можете захотеть, чтобы брандмауэр Защитника Windows был уже правильно настроен, чтобы избежать всплывающих окон.

Поздравляем, вы успешно выполнили автоматическую установку Oracle Database 18c XE на свой компьютер с Windows.

Дополнительные сведения об автоматической установке см. в разделе документации «Выполнение автоматической установки».

Читайте также: