Potřebuji z programu zjistit, jaká verze Oracle je nainstalována v každé z Oracle Homes na serveru. Jelikož v Domově ještě nemusí být vytvořeny žádné databáze, musím být schopen to udělat mimo databázi (tj. Bez připojení k databázi). Bylo by také velmi výhodné, kdybyste to mohli dělat ze vzdáleného programu.

Toto je z programu Windows se spuštěnou .Net (C #, pokud na tom záleží).

I právě čtu klíče vzdáleného registru (pomocí této techniky: https://stackoverflow.com/questions/1566547/how-to-read-remote-registry-keys ), abych našel všechny Oracle Homes podle tato metoda . To funguje dobře, ale rozhlédl jsem se kolem těchto klíčů a nevidím žádné informace o přesné verzi / vydání.

Samotný název Oracle Home je samozřejmě 1) není spolehlivým ukazatelem a 2 ) nemá přesnou verzi / vydání (například „10.2.0.4.0“). V zásadě hledám způsob, jak zjistit, co vám řekne instalační program Oracle Universal Installer pomocí tlačítka Installed Products.


Měl bych objasnit, že na všech serverech bude spuštěn Windows 2003-2008.

Komentáře

  • Bude to obtížné. Podívejte se na instalační program Oracle Universal, každá součást má svou vlastní verzi. Nelze určit verzi u celé instalace klienta Oracle – alespoň ne u všech čísel.
  • Myslím, že tnaping a Sqlplus poskytují skutečnou verzi instalace. Ve Windows můžete použít příkazový řádek k zařazování výstupu tnsping. C:\tnsping>>E:\tnspingoutput.txt. Pak použijte jazyk na vysoké úrovni k extrakci verze z textového souboru
  • @WernfriedDomscheit Nejprve se neptám na verzi Klient , ale na verze serveru . Za druhé, můžete to určit, jedná se o poslední úroveň jednoho dítěte v Domově (jednotlivé komponenty jsou nižší úrovně). Po celou dobu to dělám ručně pomocí Universal Installer. Jen nechci ' trávit čas tím, že to pořád budu dělat ručně.
  • Co se stane, když je server nainstalován v systému Linux / Unix (což je Myslím, že většina)? Pak nepomůže program C # ani čtení registru.
  • @WernfriedDomscheit V mém případě jsou to všechny servery Windows. Vysvětlím to ve své otázce.

Odpověď

Pokud byly databázové domy nainstalovány správně, centrální inventář má o nich seznam. Centrální inventář ve Windows se nachází na C:\Program Files\Oracle\Inventory. Na platformách Linux / UNIX lze umístění centrálního inventáře najít v /etc/oraInst.loc. V inventáři je v ContentsXML\inventory.xml seznam nainstalovaných domů ve formátu XML, např .:

<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> 

Tento seznam můžete analyzovat a najít podrobné informace například s opatch:

/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 

Příkladem systému Windows může být:

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

Výše uvedené je samozřejmě nutné spustit na serveru.

Toto je nejlepší scénář se správnou instalací. Nejhorší scénář je, že domácnosti používají samostatné inventáře nebo nepoužívají vůbec žádný inventář a vy musíte hledat možné instalace Oracle ve všech souborových systémech na serveru.

Odpovědět

Další metodou zobrazení verze Oracle je volání obslužného programu dbv. To funguje pouze u instalací databázového serveru. Verze tohoto nástroje by se měla vždy shodovat s verzí databáze. Nejprve byste měli nastavit vhodné prostředí (PATH; ORACLE_HOME, LD_LIBRARY_PATH), pak dostanete něco jako

 $ $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) 

První řádek obsahuje vydání

Komentáře

  • Vypadá to lokálně, existuje nějaký vestavěný způsob, jak jej vzdáleně vyvolat?
  • Ne, ne ' si to nemyslí. V systému Linux bych se pomocí ssh pokusil přihlásit na server.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *