sql für (Oracle) dba-zwecke

By , 19/08/2015 16:55

Kleiner Exkurs ins technische …

bis Oracle 11g konnte mein Oracle Status-Script den Parameter SERVICE_NAME  mit  folgendem Befehl holen:

SQL> show parameter service

Dies zeigt Default Service Names sowie selber gesetzte Service Names gleichermassen an. mit dem Wert wird dann eine Liste mit Instanzname, Service, Name, open mode, ORACLE_HOME auf der bash dargestellt.

Einige Limitierungen wurden hierbei in Kauf genommen, weil schnell und praktisch 🙂

Ab Oracle 12c zeigt der Befehl show parameter service nur noch den Default Service an, nicht jedoch selbst gesetzte Benutzer-Service!
Da wir die Service_Namen über alle Installationen immer mit einem Startup-Trigger DG_SERVICE setzen, ist es jedoch sehr hilfreich wenn man auf einen Blick erkennen kann, was auf einem Server so läuft.

Pech gehabt …

Folgendes SQL hilft meinem Script wider auf die Beine:

1. Schritt, Service Namen aus Trigger-Source lesen
SYS@SID1 SQL> select text from dba_source where name = ‘DG_SERVICE’ and text like ‘%dbms_service%’;

TEXT
——————————————————————————–
dbms_service.start_service(‘APP1Test.domain.ch’);
dbms_service.start_service (‘APP2Test.domain.ch’);
dbms_service.start_service (‘APP1Int.domain.ch’);

2. Schritt, Substring der Service_namen
SYS@SID1 SQL> select regexp_substr(regexp_substr(text,'[^(]*$’),'[^)]+’) from dba_source where name = ‘DG_SERVICE’ and text like ‘%dbms_service%’;

REGEXP_SUBSTR(REGEXP_SUBSTR(TEXT,'[^(]*$’),'[^)]+’)
——————————————————————————–
‘APP1Test.domain.ch’
‘APP2Test.domain.ch’
‘APP1Int.domain.ch’

3. Schritt, Service Namen als Liste auf eine Zeile
SYS@SID1 SQL> select listagg(regexp_substr(regexp_substr(text,'[^(]*$’),'[^)]+’), ‘, ‘) WITHIN GROUP (order by 1) from dba_source where name = ‘DG_SERVICE’ and text like ‘%dbms_service%’;

LISTAGG(REGEXP_SUBSTR(REGEXP_SUBSTR(TEXT,'[^(]*$’),'[^)]+’),’,’)WITHINGROUP(ORDE
——————————————————————————–
‘APP1Int.domain.ch’, ‘APP1Test.domain.ch’, ‘APP2Test.domain.ch’

Im Script wird diese Zeile dann in eine variable abgefüllt und weiterverwendet.

das ganze sieht dann so aus:

ostat

viel spass

Panorama Theme by Themocracy