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
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.
C:\tnsping>>E:\tnspingoutput.txt
. Apoi utilizați un limbaj la nivel înalt pentru a extrage versiunea din fișierul text