Trebuie să stabilesc dintr-un program ce versiune de Oracle este instalată în fiecare Oracle Homes de pe un server. Deoarece este posibil să nu existe încă baze de date create în Acasă, trebuie să pot face acest lucru în afara bazei de date (adică fără a mă conecta la baza de date). De asemenea, ar fi extrem de preferabil să puteți face acest lucru dintr-un program la distanță.

Acesta provine dintr-un program Windows care rulează .Net (C #, dacă asta contează).

I În prezent citesc chei de registry la distanță (folosind această tehnică: https://stackoverflow.com/questions/1566547/how-to-read-remote-registry-keys ), pentru a găsi toate casele Oracle conform această metodă . Acest lucru funcționează bine, totuși, m-am uitat în jurul acelor taste și nu văd nicio informație cu privire la versiunea / versiunea exactă.

Numele unei Oracle Home în sine este, desigur, 1) nu este un indicator fiabil și 2 ) nu are versiunea / versiunea exactă (de exemplu „10.2.0.4.0”). Practic caut o modalitate de a afla ce vă spune Oracle Universal Installer în butonul Produse instalate.


Ar trebui să clarific că toate serverele vor rula Windows 2003-2008.

Comentarii

  • Va fi dificil. Aruncați o privire asupra programului de instalare Oracle Universal, fiecare componentă are propria versiune. Nu puteți stabili versiunea pentru o întreagă instalare Oracle Client – cel puțin nu pentru toate numerele.
  • Cred că tnaping și Sqlplus oferă versiunea reală a instalării. În Windows puteți utiliza promptul de comandă pentru a spula ieșirea tnsping. C:\tnsping>>E:\tnspingoutput.txt. Apoi utilizați un limbaj la nivel înalt pentru a extrage versiunea din fișierul text
  • @WernfriedDomscheit Mai întâi, nu întreb despre versiunea Client , ci despre versiunile server . În al doilea rând, îl puteți determina , acesta este ultimul nivel un copil sub o casă (componentele individuale sunt copii de nivel inferior). O fac manual cu Universal Installer tot timpul. Doar nu ' nu vreau să petrec timpul pentru ao face manual tot timpul.
  • Ce se întâmplă când serverul este instalat pe Linux / Unix (care este Cred că majoritatea)? Apoi, un program C # sau citirea registrului nu ajută.
  • @WernfriedDomscheit În cazul meu, toate acestea sunt servere Windows. Voi clarifica acest lucru în întrebarea mea.

Răspuns

Dacă casele bazei de date au fost instalate corect, inventarul central are o listă despre ele. Inventarul central pe Windows se află la C:\Program Files\Oracle\Inventory. Pe platformele Linux / UNIX, locația inventarului central poate fi găsită în /etc/oraInst.loc. În inventar, în ContentsXML\inventory.xml, există o listă a caselor instalate în format XML, de exemplu:

<INVENTORY> <VERSION_INFO> <SAVED_WITH>12.1.0.2.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="OraGI12Home1" LOC="/opt/oracle/grid12102" TYPE="O" IDX="1"/> <HOME NAME="OraDB12Home1" LOC="/opt/oracle/base/product/db12102ee" TYPE="O" IDX="2"/> <HOME NAME="OraDb11g_home1" LOC="/opt/oracle/base/product/db11204ee" TYPE="O" IDX="3"/> </HOME_LIST> </INVENTORY> 

Puteți analiza această listă și puteți găsi informații detaliate cu opatch, de exemplu:

/opt/oracle/grid12102/OPatch/opatch lsinventory -oh /opt/oracle/grid12102 -details /opt/oracle/base/product/db12102ee/OPatch/opatch lsinventory -oh /opt/oracle/base/product/db12102ee -details /opt/oracle/base/product/db11204ee/OPatch/opatch lsinventory -oh /opt/oracle/base/product/db11204ee -details 

Un exemplu Windows ar fi:

C:\oracle\base\product\12.1.0\dbhome_1\OPatch\opatch lsinventory -oh C:\oracle\base\product\12.1.0\dbhome_1 -details 

Cele de mai sus trebuie să fie rulate pe server, desigur.

Acesta este cel mai bun scenariu, cu instalări adecvate. Cel mai rău scenariu este că locuințele folosesc inventare separate sau nu folosesc deloc inventar și trebuie să căutați toate sistemele de fișiere de pe server pentru eventuale instalări Oracle.

Răspuns

O altă metodă de afișare a versiunii Oracle este apelarea utilitarului dbv. Acest lucru funcționează numai pentru instalările serverului de baze de date. Versiunea acestui instrument trebuie să se potrivească întotdeauna cu versiunea bazei de date. Ar trebui să setați mai întâi mediul adecvat (PATH; ORACLE_HOME, LD_LIBRARY_PATH), apoi veți obține ceva de genul

 $ $ORACLE_HOME/bin/dbv DBVERIFY: Release 12.1.0.2.0 - Production on Sun Jan 01 12:00:00 2016 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. Keyword Description (Default) ---------------------------------------------------- FILE File to Verify (NONE) START Start Block (First Block of File) END End Block (Last Block of File) BLOCKSIZE Logical Block Size (8192) LOGFILE Output Log (NONE) FEEDBACK Display Progress (0) PARFILE Parameter File (NONE) USERID Username/Password (NONE) SEGMENT_ID Segment ID (tsn.relfile.block) (NONE) HIGH_SCN Highest Block SCN To Verify (NONE) (scn_wrap.scn_base OR scn) 

Prima linie conține versiunea

Comentarii

  • Acest lucru pare funcțional la nivel local, există vreun mod încorporat de a-l invoca de la distanță?
  • Nu, nu ' t crede asta. Pe un sistem Linux aș folosi ssh pentru a încerca să mă conectez la server.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *