Oracle linux посмотреть версию

Обновлено: 04.07.2024

Тема говорит все: Каков наилучший способ определить точную версию клиента oracle, с которой я работаю? Наши клиенты работают под управлением Windows.

Я нашел одно предложение запустить утилиту tnsping без параметров, которая отображает информацию о версии. Есть ли лучший способ?

Установил ли клиент установку этой информации в любой текстовый файл?

Вы также можете создать командный файл, состоящий из tnsping > version.txt , и распространить его на все ваши клиентские ПК. @skaffman - «лучший способ» будет чем-то официальным от оракула

Командная строка TNSPing покажет версию. Аналогично, sqlPlus.exe распечатает свою версию. Вы также можете перейти к файлам readme в каталоге "relnotes" вашей клиентской установки. Например, в версии 10.2 есть файл с именем README_jdbc.txt, который расскажет вам, какая версия была установлена.

Когда я запускаю sqlPlus.exe, он дает мне версию клиента 11.0.1.0, а когда я подключаюсь к БД, я получаю версию сервера 11.0.3.0 (64-битная). Могу ли я предположить, что мой клиент 32-битный, потому что он не указывает 64?

Вы можете использовать представление v$session_connect_info против текущего идентификатора сеанса ( SID из пространства имен USERENV в SYS_CONTEXT ).

В Unix

Если вы не знаете местоположение или версию установленного продукта Oracle, вы можете найти его из инвентаря, который обычно записывается в /etc/oraInst.loc

Здесь найдите файл inventory.xml

Как только вы узнаете место установки

Простой "sqlplus" предоставит вам версию установленного клиента.

В приведенном выше примере версия клиента Oracle 11.2.0.1

В Windows

Переменная местоположения реестра в окнах INST_LOC

Проверьте значение записи Inst_loc, которое будет установлено на месте установки программного обеспечения.

Вы можете использовать командную строку, или вы можете перемещаться/исследовать исходное местоположение oracle, а затем cd to bin to lauch sqlplus, который предоставит вам информацию о версии клиента.

Проблема №1: Установлены несколько клиентов Oracle.

Очень распространенная проблема, которую я вижу в своей среде, - это то, что я вижу как рабочие станции, так и (приложения) серверы с несколькими клиентами Oracle, иногда целых четыре и, возможно, с разными версиями и архитектурами. Если вы полагаетесь на PATH и запускаете утилиту вроде SQLPLUS или TNSPING , у вас будет один из двух недопустимых результатов:

  • либо ваш PATH успешно разрешает исполняемый файл, и вы получаете результат ОДНОЙ версии
  • или PATH не разрешил исполняемый файл, и вы не получили никаких результатов.

В любом случае, вы слепы к возможностям нескольких клиентских установок.

Проблема №2: Мгновенный клиент не имеет TNSPING и иногда не включает SQL * Plus.

Если на компьютере установлен Instant Instant Client (а не полный клиент), тогда TNSPING не включен, а SQLPLUS является дополнительным аддоном. Поэтому я не могу полагаться на те инструменты, которые там есть. Кроме того, Мгновенный Клиент иногда устанавливается как решение unzip-and-go, поэтому в HKLM нет Oracle Inventory и ничего.

Очевидный случай, не будет чтения ODBC или JDBC для очистки информации о версии.

Решение:

Одна вещь, которая имеет Мгновенный клиент и полный клиент, - это DLL файл с именем oraclient10.dll , oraclient11.dll , как правило: oraclient*.dll . Итак, перейдите на жесткий диск, чтобы найти их и извлечь информацию о своей версии. PowerShell поражает этим и может сделать это в одной строке, напоминает мне о домашнем сладком Unix. Таким образом, вы можете сделать это программно или даже удаленно.

Вот однострочный (извините за правый свиток, но за то, что характер однострочных, а?). Предположим, что вы уже находитесь в PowerShell:

И если вы не в PowerShell, т.е. вы просто в CMD-оболочке, тогда нет проблем, просто вызовите powershell " . " следующим образом:

Примеры результатов

Здесь некоторые выходы некоторых из моих систем. У этого плохого гражданина есть 3 клиента Oracle 11.2.0.3. Вы можете видеть, что некоторые из них 32-разрядные, а другие 64-бит:

Другая система, у которой есть клиент 10g на D:\

Предостережения/Проблемы

Для этого явно требуется PowerShell, который является стандартным для Windows 7+ и Server 2008 R2+. Если у вас есть XP (который вам больше не нужен), вы можете легко установить PowerShell.

Я не пробовал это на 8i/9i или 12c. Если вы используете 8i/9i, то есть хороший шанс, что вы тоже на старой ОС, и у вас нет PowerShell и Heaven. Он должен работать с 12c, так как я вижу, что есть такой файл oraclient12.dll , который устанавливается. У меня просто нет клиента Windows 12c, чтобы играть с ним.

Я нахожусь в терминале в Redhat 5.5, и мне нужно узнать, какая версия Oracle установлена. Я новичок в Linux, но я искал Google на некоторое время и я не могу найти то, что мне нужно. Я должен найти, какая версия установлена через терминал. Я нашел файлы Oracle, но я не могу найти версию.

как пользователь, запускающий базу данных Oracle, также можно попробовать $ORACLE_HOME/OPatch/opatch lsinventory который показывает точную версию и установленные исправления.

например, это быстрый oneliner, который должен возвращать только номер версии:

введите в sqlplus (вы увидите номер версии)

даст вам путь, где установлен Oracle, и путь будет включать номер версии.

подключитесь к Oracle DB и запустите

войдите как пользователь sys в sql * plus. Тогда сделайте такой запрос:

Как отметил А. Б. Када, вы можете запросить саму базу данных с помощью sqlplus для версии БД. Это самый простой способ выяснить, что такое версия БД, которая активно работает. Если их несколько, Вам нужно будет установить oracle_sid соответствующим образом и выполнить запрос для каждого экземпляра.

вы можете просмотреть файл /etc/oratab, чтобы узнать, какой экземпляр и какой DB home используется для каждого экземпляра. Его можно иметь несколько версий Oracle, установленных на сервере как несколько экземпляров. В файле/etc / oratab будут перечислены все экземпляры и БД home. С помощью oracle db home вы можете запустить "opatch lsinventory", чтобы узнать, какая версия БД установлена, а также любые исправления, примененные к этой установке БД.

Я решил за 1 минуту, просто прочитав сценарий запуска (в моем случае / etc / init.D / oracle-xe):

почти в начале файла я нашел:

пути ORACLE_HOME=[PATH_TO_INSTALLATION_INCLUDING_VERSION_NUMBER]

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

конечно, это зависит от того, что номер версии фактически соответствует фактической версии сервера, которую он должен для правильно установленного экземпляра.

вы также можете уточнить по

немного ручной поиск, но его альтернативный способ.
Найдите Oracle home или где на вашем сервере linux установлены установочные файлы для Oracle.

результат зависит от того, как вы установили Oracle, но мой отображает это

Я нахожусь в терминале в Redhat 5.5, и мне нужно выяснить, какая версия Oracle установлена. Я довольно новичок в Linux, но некоторое время искал в Google и не могу найти то, что мне нужно. Я должен определить, какая версия установлена ​​через терминал. Я нашел файлы Oracle, но не могу найти версию.

Как пользователь, использующий базу данных Oracle, можно также попробовать $Oracle_HOME/OPatch/opatch lsinventory , который показывает точную версию и установленные исправления.

Например, это быстрый oneliner, который должен возвращать только номер версии:

Войдите в sqlplus (вы увидите номер версии)

Укажет путь, где установлен Oracle, и путь будет включать номер версии.

Подключитесь к БД Oracle и запустите

Войдите как пользователь sys в sql * plus. Затем выполните этот запрос:

Как указал A.B.Cada, вы можете запросить саму базу данных с помощью sqlplus для версии db. Это самый простой способ узнать, какая версия БД активно работает. Если их несколько, вам нужно соответствующим образом установить Oracle_sid и выполнить запрос для каждого экземпляра.

Вы можете просмотреть файл/etc/oratab, чтобы увидеть, какой экземпляр и какая база данных используется для каждого экземпляра. Возможно установить несколько версий Oracle на сервер, а также несколько экземпляров. Файл/etc/oratab перечислит все экземпляры и базу данных home. В Oracle db home вы можете запустить opatch lsinventory, чтобы узнать, какая версия базы данных установлена, а также все исправления, примененные к этой установке db.

вы также можете проверить по

Я решил это примерно за 1 минуту, просто прочитав скрипт запуска (в моем случае /etc/init.d/Oracle-xe):

Почти в начале файла я нашел:

Oracle_HOME = [PATH_TO_INSTALLATION_INCLUDING_VERSION_NUMBER]

Это было самое быстрое решение для меня, потому что я знал, где находится сценарий, и что он используется для запуска/перезапуска сервера.

Конечно, это зависит от того, что номер версии фактически соответствует фактической версии сервера, что и должно быть для правильно установленного экземпляра.

Немного ручного поиска, но это альтернативный способ .
Найдите дом Oracle или где на вашем Linux-сервере установлены установочные файлы для Oracle.

Результат зависит от того, как вы установили Oracle, но мой показывает это

Репутация: нет
Всего: нет

Я столкнулся с такой проблемой
Мне надо узнать версию моего ORACLE. Я программирую на delphi.

Leprechaun Software Developer

Репутация: 18
Всего: 534

Репутация: 2
Всего: 8

Как вариант, если нужно просто версию базы циферками:

Репутация: 2
Всего: 151

Между прочим, я уже сталкивался с неоднозначностью данных, возвращаемых этим запросом. Одним компонентам он указывают одну версию, другим - другую.
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 3
Всего: 1

приведи пример плз
очень интересно насчет неоднозначности

Репутация: 2
Всего: 151

Цитата

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Leprechaun Software Developer

Репутация: 18
Всего: 534

batigoal тут вроде различается только подробность сведений о сервере, но версия совпадает полность.

Репутация: 2
Всего: 151

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8

Цитата

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production

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

Репутация: 2
Всего: 151

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8


В смысле - для чего требуется программно определять версию. Не просто же так, лишь бы пописать немного кода.

Репутация: 2
Всего: 151


А, понял. Мне не нужно программно определять версию - это был вопрос от Kamoliddin.
А я эту проблему засек, когда просто пытался понять, что же за Оракл у нас стоит. Дело в том, что из-за какого-то бага в XSD наш проект глючит на Oracle 9.2.0.6. А я смотрел на этот output, и не мог понять - у нас все-таки 9.2.0.5 или 9.2.0.6.
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Репутация: 2
Всего: 8

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

Цитата

А я эту проблему засек, когда просто пытался понять, что же за Оракл у нас стоит. Дело в том, что из-за какого-то бага в XSD наш проект глючит на Oracle 9.2.0.6. А я смотрел на этот output, и не мог понять - у нас все-таки 9.2.0.5 или 9.2.0.6.

А что это за баг с XSD?
Ладно бы я понял, что патч поставили потому, что с него Oracle начал понимать ANSI-шный синтаксис связок, или потому, что закрыли несколько возможностей испортить словарь данных DDL-выражениями, или там экспорт свеже переименованых таблиц приводящий к тому, что триггеры, на них висящие экспортировались указующими на таблицы со старыми именами, или там кого раздражало, что вставка данных через JDBC с использованием TO_NCLOB приводила к тому, что последующие обращения к вставленному значению выпадали в ORA-600, кто-то мог стремиться избежать 17ти видов дидлоков, которые ошибочно случались в 9.2.0.5 или.. Сотни причин по которым стоило бы перейти на 9.2.0.6 перечислены на металинке в документе "Bugs fixed in the 9.2.0.6 Patch Set", единственное чего там нет - это сочетания трех букв идущих друг за другом: X,S и D.

Репутация: нет
Всего: нет

Спасибо парни за ответы.
Я сам нашел другой способ.
В файле OracleCall оказываеться есть функции для определения версию Оракла.(CheckOCI, CheckStatus).

Репутация: 2
Всего: 151

Не в курсе. Базой занимаются наши английские друзья, которые крайне неохотно делятся информацией.

Но, как я понимаю, тут надо смотреть не патч 9.2.0.6, а 9.2.0.7, раз баг присутствует на шестерке.

"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

[ Время генерации скрипта: 0.1424 ] [ Использовано запросов: 21 ] [ GZIP включён ]

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