Ausgewählte PL/SQL 
Packages (Teil 2) 
DBMS_QOPATCH 
DBMS_SPACE 
DBMS_SERVICE 
DBMS_FLASHBACK_ARCHIVE 
Ulrike Schwinn (Fol...
In Teil 1 ... 
1. DBMS_XDB_CONFIG – XDB Port Konfiguration 
2. DBMS_COMPRESSION – Compression Ratio, Komprimierte Zeilen 
...
Heutige Agenda 
1. DBMS_QOPATCH – Informationen zu Patches mit PL/SQL 
2. DBMS_SPACE – Platzverbrauch abschätzen 
3. DBMS_...
Etwas Grundsätzliches 
4 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Wie findet man obsolete Packages? 
 Upgrade Guide 12c Release 1 (12.1) in Kapitel 8 “Deprecated and 
Desupported Features ...
Wie findet man obsolete Packages? 
SELECT name FROM 
(SELECT synonym_name name FROM dba_synonyms@system11g 
WHERE table_na...
Wie findet man PL/SQL Objekte überhaupt? 
 Data Dictionary 
– ALL_OBJECTS mit 
object_type=PACKAGE|PACKAGE_BODY|FUNCTION|P...
Im SQL Developer 
8 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Im SQL Developer 
9 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Das Package DBMS_QOPATCH 
10 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Aufgaben und Funktionen 
 Patch Informationen über OPATCH abfragen 
opatch lsinventory -XML 
 In 12c nun auch in PL/SQL mi...
Gesamtes Inventory in XML Format 
SQL set long 2000000000 pagesize 0 linesize 32000 
SQL SELECT DBMS_QOPATCH.GET_OPATCH_LS...
Formatierte Ausgabe von Einzelpatches 
http://sql-plsql-de.blogspot.co.uk/2014/02/sql-anstatt-opatch-lsinventory-mit.html ...
Abfrage auf einzelne Patches 
SQL SELECT DBMS_QOPATCH.IS_PATCH_INSTALLED(17027533) FROM dual; 
DBMS_QOPATCH.IS_PATCH_INSTA...
Das Package DBMS_SPACE 
15 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Aufgaben und Funktionen 
Über DBA_SEGMENTS hinaus ... 
– Informiert detailliert über den Speicherplatz von Segmenten 
– Au...
Wichtige Komponenten im Einzelnen 
Genaue Speicheranalyse (im ASSM) SPACE_USAGE 
Freier Platz (im ASSM) UNUSED_SPACE 
Kost...
Automatic Segment Space Management (ASSM) 
 Freier und genutzter Platz liegt als Bitmap vor. 
 Ein Bitmap beschreibt wie v...
SPACE_USAGE für Tabellen 
set serveroutput on 
declare 
. 
v_unformatted_blocks number; 
v_unformatted_bytes number; 
v_fs...
Ergebnis 
Unformatted Blocks = 0 
Unformatted Bytes = 0 
FS1 Bytes (at least 0 to 25% free space) = 8192 
FS1 Blocks(at le...
DBMS_SPACE für SecureFiles 
DBMS_SPACE.SPACE_USAGE(segment_owner IN VARCHAR2, 
segment_name IN VARCHAR2, 
segment_type IN ...
Wie groß ist eine Tabelle? 
 Umfangreiches Beispiel, das alle möglichen Segmentarten 
berücksichtigt 
 http://sql-plsql-de...
Welche Segmente sind abhängig? 
 Angabe von Segmenttypen als Zahl (1=Tabelle, 2=Nested Table usw.) 
SQL SELECT * FROM tabl...
Im SQL Developer 
24 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Größenprognose für Tabellen und Indizes 
SQL exec DBMS_SPACE.CREATE_TABLE_COST( 
tablespace_name ='USERS', 
colinfos = cre...
Im EM 
26 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Segment Advisor 
 2 verschiedene Funktionsweisen: 
– Automatic Segment Advisor (in der Automated Maintenance Task) 
– Segm...
Segment Advisor nutzen 
 Automatic Segment Advisor in Automated Maintenance Task oder mit 
SQL execute DBMS_SPACE.AUTO_SPA...
Segment Advisor - Ergebnisse 
 EM Homepage und Drill Down oder 
SQL SELECT tablespace_name, segment_owner, segment_name, 
...
Segment Advisor im EM 
31 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Das Package DBMS_SERVICE 
32 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Datenbank Services 
 Services beschreiben Anwendungen/spezielle Funktionen 
 Jede Datenbank verfügt über einen oder mehrer...
Einsatz von Services 
 Unabdingbar in RAC und Data Guard Umgebungen 
 Wichtige Informationsquelle beim Monitoren und Tunen...
Erzeugen von Services 
 Graphisch mit Net Configuration Assistant/Net Manager 
– Einträge in tnsnames.ora, listener.ora, s...
Aufgaben im Einzelnen 
Erzeugen CREATE_SERVICE (*) 
Löschen DELETE_SERVICE (ab 12c (*)) 
Disconnect aller Sessions bzgl Se...
Services in DBA_SERVICES 
SQL SELECT name, network_name FROM dba_services; 
NAME NETWORK_NAME 
------------------------- -...
Einfaches Monitoring 
 Views: dba_services, v$services, v$service_stats und v$session 
SQL SELECT service_name, stat_name,...
Verwendung 
 Service anlegen (auch mit weiteren Parametern) 
SQL exec DBMS_SERVICE.CREATE_SERVICE( 
SERVICE_NAME = 'highpr...
Das Package DBMS_FLASHBACK_ARCHIVE 
40 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Aufgaben und Funktionen 
 Wozu überhaupt all diese Flashback Technologien? 
– Abfragen um Informationen aus der Vergangenh...
Flashback Data Archive Einrichten 
 Archive einrichten 
CREATE FLASHBACK ARCHIVE fla_10y TABLESPACE tbs1 
QUOTA 100G RETEN...
Monitoren 
SQL SELECT * FROM user_flashback_archive_tables; 
TABLE_NAME OWNER_NAME FLASHBACK_ARCHIVE_NA 
-----------------...
Hintergrund 
 Basis der Archive sind Undo-Informationen 
– Datenbank muß automatisches Undo-Management nutzen 
 Undo-Infor...
Wichtig zu wissen 
 Nicht alle Änderungen werden unterstützt – allerdings 
– ADD, DROP, RENAME, MODIFY Column 
– ADD, DROP...
12c: Ein Kommando für mehrere Tabellen 
 FDA auf logischer Applikationsebene 
execute DBMS_FLASHBACK_ARCHIVE.REGISTER_APPL...
12c: Sogar Locking möglich 
 Falls FDA eingeschaltet ist auch ein Locking möglich 
execute DBMS_FLASHBACK_ARCHIVE.LOCK_DOW...
12c: Temporal Validity und FDA 
 Die Gültigkeit einer Tabellenzeile wird über 
zusätzliche Spalten wie “Gültig Von und Gül...
12c: Valid Time Temporal 
 Hinzufügen von “hidden Spalten” durch CREATE/ALTER 
ALTER TABLE emp_neu ADD PERIOD FOR emp_vali...
Valid Time Temporal mit FDA 
 Mit DBMS_FLASHBACK_ARCHIVE für alle Queries in der Session 
execute DBMS_FLASHBACK_ARCHIVE.E...
Weitere Neuigkeiten in 12c 
 Import von weiteren zusätzlichen Historien Informationen mit einer 
temporären Hilfstabelle 
...
Zusammenfassung 
Package Einsatz 
DBMS_QOPATCH Patch Informationen mit PL/SQL 
DBMS_SPACE Segment Speicherplatz ausgeben 
...
Nützliche Informationen und Links 
 Alle Veranstaltungen und Links unter 
– tinyurl.com/oraclebudb 
 Homepage der deutschs...
Nächste SlideShare
Wird geladen in …5
×

Ausgewählte PL/SQL Packages (2)

1.079 Aufrufe

Veröffentlicht am

Einige ausgewählte Oracle PL/SQL Packages aus Version 11g und 12c werden kurz beschrieben und an Beispielen illlustriert. In Teil 2 handelt es sich dabei um:
DBMS_QOPATCH
DBMS_SPACE
DBMS_SERVICE
DBMS_FLASHBACK_ARCHIVE
Zusätzliche werden ein paar grundsätzliche Frage beantwortet wie zum Beispiel: wie finde ich einfach und schnell bestimmte PL/SQL Packages oder welche PL/SQL Packages sind obsolet.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.079
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
11
Aktionen
Geteilt
0
Downloads
16
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Ausgewählte PL/SQL Packages (2)

  1. 1. Ausgewählte PL/SQL Packages (Teil 2) DBMS_QOPATCH DBMS_SPACE DBMS_SERVICE DBMS_FLASHBACK_ARCHIVE Ulrike Schwinn (Follow @uschwinn) Business Unit Database ORACLE Deutschland B.V. & Co. KG.
  2. 2. In Teil 1 ... 1. DBMS_XDB_CONFIG – XDB Port Konfiguration 2. DBMS_COMPRESSION – Compression Ratio, Komprimierte Zeilen 3. DBMS_REDEFINITION – Online Neudefinition von Tabellen 4. DBMS_SQL_MONITOR – Real Time Monitoring 5. DBMS_PARALLEL_EXECUTE – Manuelle Parallellisierung Folien dazu unter http://apex.oracle.com/folien Schlüsselwort: webinar_packages1 2 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  3. 3. Heutige Agenda 1. DBMS_QOPATCH – Informationen zu Patches mit PL/SQL 2. DBMS_SPACE – Platzverbrauch abschätzen 3. DBMS_SERVICE – Services anlegen, löschen, ändern 4. DBMS_FLASHBACK_ARCHIVE – Flashback Data Archive Funktionen 3 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  4. 4. Etwas Grundsätzliches 4 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  5. 5. Wie findet man obsolete Packages? Upgrade Guide 12c Release 1 (12.1) in Kapitel 8 “Deprecated and Desupported Features for Oracle Database 12c” 5 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  6. 6. Wie findet man obsolete Packages? SELECT name FROM (SELECT synonym_name name FROM dba_synonyms@system11g WHERE table_name in (SELECT object_name name FROM dba_objects@system11g WHERE object_type = 'PACKAGE') MINUS SELECT synonym_name name FROM dba_synonyms WHERE table_name IN (SELECT object_name name FROM dba_objects WHERE object_type = 'PACKAGE')) DBMS_DBLINK DBMS_EXPFIL DBMS_RLMGR STATSPACK … 6 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  7. 7. Wie findet man PL/SQL Objekte überhaupt? Data Dictionary – ALL_OBJECTS mit object_type=PACKAGE|PACKAGE_BODY|FUNCTION|PROCEDURE – ALL_SOURCE mit type=PACKAGE|PACKAGE_BODY|FUNCTION|PROCEDURE Mit SQL Developer 4.0 – Funktion Find Database Objects 7 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  8. 8. Im SQL Developer 8 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  9. 9. Im SQL Developer 9 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  10. 10. Das Package DBMS_QOPATCH 10 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  11. 11. Aufgaben und Funktionen Patch Informationen über OPATCH abfragen opatch lsinventory -XML In 12c nun auch in PL/SQL mit DBMS_QOPATCH Einige wichtige Funktionen: – GET_OPATCH_BUGS: Bug Liste für bestimmmte Patch Nummer – GET_OPATCH_ LIST: Patch Liste installierter Patches – GET_OPATCH_LSINVENTORY: Gesamte opatch Inventory – IS_PATCH_INSTALLED: Abfrage auf einzelne Patches Ausgabe in XML 11 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  12. 12. Gesamtes Inventory in XML Format SQL set long 2000000000 pagesize 0 linesize 32000 SQL SELECT DBMS_QOPATCH.GET_OPATCH_LSINVENTORY FROM dual; GET_OPATCH_LSINVENTORY ------------------------------------------------------------ ?xml version=1.0 encoding=CP850 standalone='yes'? InventoryInstance oracleHome UIdOracleHome-75909c1d-7269-45d1-802e- 75deb9104053/UId targetTypeIdoracle_home/targetTypeId patchingModeloneoff/patchingModel path/opt/oracle/product/12.1.0/db/path targetTypeIdoracle_home/targetTypeId inventoryLocation/opt/oraInventory/inventoryLocation … 12 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  13. 13. Formatierte Ausgabe von Einzelpatches http://sql-plsql-de.blogspot.co.uk/2014/02/sql-anstatt-opatch-lsinventory-mit.html SQL set long 2000000000 pagesize 0 linesize 32000 SQL SELECT patch_id, apply_time, rollbackable FROM xmltable ('//patch' passing DBMS_QOPATCH.GET_OPATCH_LSINVENTORY COLUMNS patch_id number PATH 'patchID', apply_time timestamp with time zone PATH 'appliedDate', rollbackable varchar2(10) PATH 'rollbackable') PATCH_ID APPLY_TIME ROLLBACKAB ---------- ----------------------------------- ---------- 16527374 08.11.13 14:02:02,000000 +01:00 true 17027533 08.11.13 10:24:12,000000 +01:00 true 13 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  14. 14. Abfrage auf einzelne Patches SQL SELECT DBMS_QOPATCH.IS_PATCH_INSTALLED(17027533) FROM dual; DBMS_QOPATCH.IS_PATCH_INSTALLED(17027533) ----------------------------------------- patchInfopatchID xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance 17027533/patchIDappliedDate xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance2013-10- 22T14:00:51+02:00/appliedDatesqlPatch xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance true/sqlPatchsqlPatchDatabaseStartupMode xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance normal/sqlPatchDatabaseStartupMode/patchInfo 14 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  15. 15. Das Package DBMS_SPACE 15 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  16. 16. Aufgaben und Funktionen Über DBA_SEGMENTS hinaus ... – Informiert detailliert über den Speicherplatz von Segmenten – Auch für genaue Analyse von Securefiles geeignet – Schnittstelle für automatischen Segment Advisor – Trendberechnungen – Anzeige der abhängigen Objekte Anwendungsbeispiele – Compression Tests zur Analyse des genauen Platzverbrauchs – Unterstützung bei SQL Statement Analyse 16 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  17. 17. Wichtige Komponenten im Einzelnen Genaue Speicheranalyse (im ASSM) SPACE_USAGE Freier Platz (im ASSM) UNUSED_SPACE Kosten für Index/Tabellen Create CREATE_[INDEX/TABLE]_COST Abhängige Objekte OBJECT_DEPENDENT_SEGMENTS Objekt Wachstum OBJECT_GROWTH_TREND Segment Advisor automatisch Segment Advisor Empfehlungen 17 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. AUTO_SPACE_ADVISOR_JOB_PROC ASA_RECOMMENDATIONS
  18. 18. Automatic Segment Space Management (ASSM) Freier und genutzter Platz liegt als Bitmap vor. Ein Bitmap beschreibt wie voll ein Block ist wie z.B. (0-25, 25-50, 50-75, 75-100%) Die Funktion SPACE_USAGE bestimmt den genauen Platzverbrauch Geignet für – TABLE, TABLE PARTITION, BMB BMB BMB BMB BMB TABLE SUBPARTITION,INDEX, INDEX PARTITION/SUBPARTITION CLUSTER, LOBs 18 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. BMB BMB BLOCK
  19. 19. SPACE_USAGE für Tabellen set serveroutput on declare . v_unformatted_blocks number; v_unformatted_bytes number; v_fs1_blocks number; v_fs1_bytes number; v_fs2_blocks number; v_fs2_bytes number; v_fs3_blocks number; v_fs3_bytes number; v_fs4_blocks number; v_fs4_bytes number; v_full_blocks number; v_full_bytes number; begin dbms_space.space_usage('SCOTT','EMPLOYEE','table', v_unformatted_blocks,v_unformatted_bytes,v_fs1_blocks,v_fs1_bytes,v_fs2_blocks, v_fs2_bytes,v_fs3_blocks,v_fs3_bytes,v_fs4_blocks,v_fs4_bytes, v_full_blocks,v_full_bytes); dbms_output.put_line('Unformatted Blocks = ' || v_unformatted_blocks); dbms_output.put_line('Unformatted Bytes = ' || v_unformatted_bytes); dbms_output.put_line('FS1 Bytes (at least 0 to 25% free space) = ' || v_fs1_bytes); dbms_output.put_line('FS1 Blocks(at least 0 to 25% free space) = ' || v_fs1_blocks); dbms_output.put_line('FS2 Bytes (at least 25 to 50% free space)= ' || v_fs2_bytes); dbms_output.put_line('FS2 Blocks(at least 25 to 50% free space)= ' || v_fs2_blocks); dbms_output.put_line('FS3 Bytes (at least 50 to 75% free space) = ' || v_fs3_bytes); dbms_output.put_line('FS3 Blocks(at least 50 to 75% free space) = ' || v_fs3_blocks); dbms_output.put_line('FS4 Bytes (at least 75 to 100% free space) = ' || v_fs4_bytes); dbms_output.put_line('FS4 Blocks(at least 75 to 100% free space)= ' || v_fs4_blocks); dbms_output.put_line('Full Blocks in segment = ' || v_full_blocks); dbms_output.put_line('Full Bytes in segment = ' || v_full_bytes); end; 19 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  20. 20. Ergebnis Unformatted Blocks = 0 Unformatted Bytes = 0 FS1 Bytes (at least 0 to 25% free space) = 8192 FS1 Blocks(at least 0 to 25% free space) = 1 FS2 Bytes (at least 25 to 50% free space)= 0 FS2 Blocks(at least 25 to 50% free space)= 0 FS3 Bytes (at least 50 to 75% free space) = 0 FS3 Blocks(at least 50 to 75% free space) = 0 FS4 Bytes (at least 75 to 100% free space) = 425984 FS4 Blocks(at least 75 to 100% free space)= 52 . Full Blocks in segment = 11070 Full Bytes in segment = 90685440 PL/SQL procedure successfully completed. 20 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  21. 21. DBMS_SPACE für SecureFiles DBMS_SPACE.SPACE_USAGE(segment_owner IN VARCHAR2, segment_name IN VARCHAR2, segment_type IN VARCHAR2, segment_size_blocks OUT NUMBER, segment_size_bytes OUT NUMBER, used_blocks OUT NUMBER, used_bytes OUT NUMBER, expired_blocks OUT NUMBER, expired_bytes OUT NUMBER, Unbedingt separates LOB Segment mitberücksichtigen! SHRINK Kommando gibt es nicht mit SecureFiles! 21 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. unexpired_blocks OUT NUMBER, unexpired_bytes OUT NUMBER, partition_name IN VARCHAR2 DEFAULT NULL);
  22. 22. Wie groß ist eine Tabelle? Umfangreiches Beispiel, das alle möglichen Segmentarten berücksichtigt http://sql-plsql-de.blogspot.co.uk/2009/01/wie-gro-ist-eigentlich-eine-tabelle. html – Funktioniert in 11g – Man muß als Eigentümer angemeldet sein SQL SELECT * FROM table(get_space_info('SECURE_LOB')); SQL SELECT * FROM table (get_space_info('SALES')); 22 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  23. 23. Welche Segmente sind abhängig? Angabe von Segmenttypen als Zahl (1=Tabelle, 2=Nested Table usw.) SQL SELECT * FROM table(DBMS_SPACE.OBJECT_DEPENDENT_SEGMENTS (objowner = 'SH', objname = 'CUSTOMERS', partname = null, objtype = 1)); SEGMENT_OWNER SEGMENT_NAME SEGMENT_TYPE -------------------- ---------------------------- -------------------- TABLESPACE_NAME PARTITION_NAME LOB_COLUMN_NAME --------------- ------------------------- -------------------- SH CUSTOMERS TABLE USERS SH CUSTOMERS_PK INDEX EXAMPLE SH CUSTOMERS_GENDER_BIX INDEX 23 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  24. 24. Im SQL Developer 24 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  25. 25. Größenprognose für Tabellen und Indizes SQL exec DBMS_SPACE.CREATE_TABLE_COST( tablespace_name ='USERS', colinfos = create_table_cost_columns(create_table_cost_colinfo('NUMBER',4), create_table_cost_colinfo('VARCHAR2',30), create_table_cost_colinfo('NUMBER',6), create_table_cost_colinfo('NUMBER',4)), row_count = 221184, pct_free = 10, used_bytes = :used_bytes, alloc_bytes = :alloc_bytes); SQL SELECT :used_bytes, :alloc_bytes FROM dual; :USED_BYTES :ALLOC_BYTES ----------- ------------ 11771904 12582912 Größenprognose auch für Indizes möglich (über DDL Angabe) 25 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  26. 26. Im EM 26 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  27. 27. Segment Advisor 2 verschiedene Funktionsweisen: – Automatic Segment Advisor (in der Automated Maintenance Task) – Segment Advisor manuell (im EM oder DBMS_ADVISOR) Dabei werden berücksichtigt ... – Tablespaces, Tabellen, Partitionen, zug. Indizes und Large Objects Was ist anders bei Automatic Segment Advisor? – Segmente mit hoher Wachstumsrate und hoher Aktivität in einem Tablespace, der das Critical oder Warning Threshold überschreitet. – Zusätzlich: OLTP Compression Empfehlungen für ausreichend große Tabellen mit mindestens 3 Indizes 28 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  28. 28. Segment Advisor nutzen Automatic Segment Advisor in Automated Maintenance Task oder mit SQL execute DBMS_SPACE.AUTO_SPACE_ADVISOR_JOB_PROC; Segment Advisor (manuell) mit DBMS_ADVISOR declare … begin -- Erzeugen einer Task DBMS_ADVISOR.CREATE_TASK (…); -- Angabe von Advisortyp (Segment,Access etc) und Objekttyp DBMS_ADVISOR.CREATE_OBJECT (…); -- zusätzliche Parameter DBMS_ADVISOR.SET_TASK_PARAMETER(…); -- Ausführung DBMS_ADVISOR.EXECUTE_TASK(…); end; 29 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  29. 29. Segment Advisor - Ergebnisse EM Homepage und Drill Down oder SQL SELECT tablespace_name, segment_owner, segment_name, recommendations, C1 Kommando FROM TABLE (DBMS_SPACE.ASA_RECOMMENDATIONS(all_runs = 'TRUE', show_manual = 'TRUE', show_findings = 'FALSE')); TABLESPACE_NAME SEGMENT_OWNE SEGMENT_NAME ------------------------------ ------------ ---------------------- RECOMMENDATIONS ----------------------------------------------------------------- KOMMANDO ------------------------------------------------------------------ EXAMPLE SH CUST_BIG Enable row movement of the table SH.CUST_BIG and perform shrink, estimated savings is 247990931 bytes. alter table SH.CUST_BIG shrink space ... 30 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  30. 30. Segment Advisor im EM 31 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  31. 31. Das Package DBMS_SERVICE 32 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  32. 32. Datenbank Services Services beschreiben Anwendungen/spezielle Funktionen Jede Datenbank verfügt über einen oder mehrere Services, die im Datenbank Repository gespeichert sind. Wenn eine Instanz startet, registriert sie sich mit einem Listener, indem sie einen Service oder mehrere Services nutzt. Der Listener wird über die dynamische Registrierung des PMONs informiert und leitet dann die Verbindungen zwischen Client und Instanz weiter. 33 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  33. 33. Einsatz von Services Unabdingbar in RAC und Data Guard Umgebungen Wichtige Informationsquelle beim Monitoren und Tunen – V$ Views wie v$session, v$service_event etc. – AWR Report – SQL Monitoring etc. – Scheduler Jobs Wichtiger Bestandteil des Database Resource Managers Unabdingbar in 12c mit Multitenant Architektur! – Zugriff über Datenbank Service (nicht Instancename) – Name der PDB als Service 34 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  34. 34. Erzeugen von Services Graphisch mit Net Configuration Assistant/Net Manager – Einträge in tnsnames.ora, listener.ora, sqlnet.ora DBMS_SERVICE (meist im Single Instance Umfeld) – Keine graphische Implementierung srvctl (für Oracle Clusterware, Restart, Oracle Global Data Services) 35 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  35. 35. Aufgaben im Einzelnen Erzeugen CREATE_SERVICE (*) Löschen DELETE_SERVICE (ab 12c (*)) Disconnect aller Sessions bzgl Service DISCONNECT_SESSION Attribute Ändern MODIFY_SERVICE (*) Starten START_SERVICE (*) Stoppen STOP_SERVICE (*) (*) Obsolet im Oracle Clusterware, Oracle Restart und Oracle Global Data Services.Umfeld (12c) 36 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  36. 36. Services in DBA_SERVICES SQL SELECT name, network_name FROM dba_services; NAME NETWORK_NAME ------------------------- ------------------------------ SYS$BACKGROUND SYS$USERS orclXDB orclXDB orcl orcl highprio highprio.de.oracle.com orcl: Default Service Name = globale Datenbank Name SYS$BACKGROUND und SYS$USERS: interne Services orclXDB: Service zur Nutzung der XDB highprio: user definierter Service 37 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  37. 37. Einfaches Monitoring Views: dba_services, v$services, v$service_stats und v$session SQL SELECT service_name, stat_name, value FROM v$service_stats WHERE service_name IN ('orcl','TEST','XYZ'); SERVICE_NAME STAT_NAME VALUE -------------- ----------------- ---------- XYZ logons cumulative 1 orcl logons cumulative 201 TEST logons cumulative 1 XYZ user calls 17 orcl user calls 588456 TEST user calls 17 XYZ DB time 56341 orcl DB time 881701076 TEST DB time 60114 XYZ DB CPU 16000 ... 38 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  38. 38. Verwendung Service anlegen (auch mit weiteren Parametern) SQL exec DBMS_SERVICE.CREATE_SERVICE( SERVICE_NAME = 'highprio', -- intern NETWORK_NAME = 'highprio.de.oracle.com'); -- zur Verbindung Service starten (z.B. auch Trigger after startup on database) exec DBMS_SERVICE.START_SERVICE('highprio'); Connect (z.B mit Easy Connect) sqlplus benutzer/passwort@host:port/highprio.de.oracle.com Verbindungsabbau der Sessions exec DBMS_SERVICE.DISCONNECT_SESSION ( service_name = 'highprio', disconnect_option = DBMS_SERVICE.POST_TRANSACTION); 39 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  39. 39. Das Package DBMS_FLASHBACK_ARCHIVE 40 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  40. 40. Aufgaben und Funktionen Wozu überhaupt all diese Flashback Technologien? – Abfragen um Informationen aus der Vergangenheit zu selektieren – Rollback von Transaktionen – Wiederherstellen von gelöschten Tabellen – Zurücksetzen der gesamten Datenbank ohne Point-in-Time Recovery Zusätzlich seit Oracle 11g: Versionierung der Daten und Schutz vor Zugriff mit Flashback Data Archive Seit 11.2.0.4 steht die Verwendung von Flashback Data Archive ohne Optimierung in allen Editionen oder mit Optimierung mit Advanced Compression Option zur Verfügung! 41 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  41. 41. Flashback Data Archive Einrichten Archive einrichten CREATE FLASHBACK ARCHIVE fla_10y TABLESPACE tbs1 QUOTA 100G RETENTION 10 YEAR; ALTER FLASHBACK DATA ARCHIVE archiv1 SET DEFAULT; … Aktivierung über einzelne Tabellen CREATE TABLE test(ang_nr NUMBER,… ) FLASHBACK ARCHIVE fla_10y ALTER TABLE emp FLASHBACK ARCHIVE; Zugriff SELECT * FROM emp AS OF TIMESTAMP TO_TIMESTAMP('29.10.07 14:01', 'dd.mm.yy hh24:mi') WHERE ename = 'KING' 42 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  42. 42. Monitoren SQL SELECT * FROM user_flashback_archive_tables; TABLE_NAME OWNER_NAME FLASHBACK_ARCHIVE_NA ------------------------------ ---------- -------------------- ARCHIVE_TABLE_NAME STATUS ----------------------------------------------------- --------- CUSTOMERS SH FLA_10Y SYS_FBA_HIST_110158 ENABLED COUNTRIES SH FLA_10Y SYS_FBA_HIST_92375 ENABLED 43 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  43. 43. Hintergrund Basis der Archive sind Undo-Informationen – Datenbank muß automatisches Undo-Management nutzen Undo-Informationen werden nicht gelöscht, bis diese archiviert worden sind Daten werden asynchron von einem eigenen Hintergrundprozess (fbda) erfasst – Default Capture Intervall 5 Minuten – Capture Intervall wird in Abhängigkeit von der Systemauslastung automatisch geändert – Der Prozess versucht, die Undo-Informationen aus dem Buffer Cache zu lesen 44 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  44. 44. Wichtig zu wissen Nicht alle Änderungen werden unterstützt – allerdings – ADD, DROP, RENAME, MODIFY Column – ADD, DROP, RENAME Constraint – DROP, TRUNCATE Partition – RENAME, TRUNCATE Table Alle anderen Änderungen möglich mit – DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA – DBMS_FLASHBACK_ARCHIVE.REASSOCIATE_FBA Abfragen auch über DDL Änderungen hinweg 45 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  45. 45. 12c: Ein Kommando für mehrere Tabellen FDA auf logischer Applikationsebene execute DBMS_FLASHBACK_ARCHIVE.REGISTER_APPLICATION( application_name ='APP1', flashback_archive_name ='FLA_10Y') execute DBMS_FLASHBACK_ARCHIVE.ADD_TABLE_TO_APPLICATION (application_name='APP1', table_name='T1', schema_name='SH') execute DBMS_FLASHBACK_ARCHIVE.ADD_TABLE_TO_APPLICATION (application_name='APP1', table_name='T2', schema_name='SH') execute DBMS_FLASHBACK_ARCHIVE.ENABLE_APPLICATION( 46 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. application_name='APP1')
  46. 46. 12c: Sogar Locking möglich Falls FDA eingeschaltet ist auch ein Locking möglich execute DBMS_FLASHBACK_ARCHIVE.LOCK_DOWN_APPLICATION( application_name = 'APP1') SQL update t1 set country_id=100 …. * ERROR at line 1: ORA-55622: DML, ALTER and CREATE UNIQUE INDEX operations are not allowed on table SH.COPY_COUNTRIES 47 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  47. 47. 12c: Temporal Validity und FDA Die Gültigkeit einer Tabellenzeile wird über zusätzliche Spalten wie “Gültig Von und Gültig Bis“ definiert SQL Abfrage zu einem Zeitpunkt mit gültigen Rows möglich Nützlich für ILM oder Flashback Abfragen Bei Änderungen werden Spalten Gültig Von und Gültig Bis 48 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. geschrieben Abfragen erfassen nur gültige Zeilen
  48. 48. 12c: Valid Time Temporal Hinzufügen von “hidden Spalten” durch CREATE/ALTER ALTER TABLE emp_neu ADD PERIOD FOR emp_valid; Table created. SELECT column_name, hidden_column, data_type FROM user_tab_cols WHERE table_name='EMP_NEU'; COLUMN_NAME HID DATA_TYPE --------------------------- --- -------------------------- EMP_VALID YES NUMBER EMP_VALID_START YES TIMESTAMP(6) WITH TIME ZONE EMP_VALID_END YES TIMESTAMP(6) WITH TIME ZONE ... EMPNO NO NUMBER 49 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  49. 49. Valid Time Temporal mit FDA Mit DBMS_FLASHBACK_ARCHIVE für alle Queries in der Session execute DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME( LEVEL = 'ASOF', QUERY_TIME = TO_DATE('20-JAN-2007', 'DD-MON-YYYY')) execute DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME( LEVEL = 'ALL') Kein AS OF beim SELECT mehr erforderlich … SELECT * from emp_neu WHERE ename = 'Miller'; 50 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  50. 50. Weitere Neuigkeiten in 12c Import von weiteren zusätzlichen Historien Informationen mit einer temporären Hilfstabelle – CREATE_HISTORY_TEMP_TABLE – IMPORT_HISTORY User Kontext Informationen tracken über – SET_SYS_CONTEXT – GET_SYS_CONTEXT 51 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  51. 51. Zusammenfassung Package Einsatz DBMS_QOPATCH Patch Informationen mit PL/SQL DBMS_SPACE Segment Speicherplatz ausgeben DBMS_SERVICE DB Services anlegen und verwalten DBMS_FLASHBACK_ARCHIVE Flashback Data Archive nutzen 52 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  52. 52. Nützliche Informationen und Links Alle Veranstaltungen und Links unter – tinyurl.com/oraclebudb Homepage der deutschsprachigen DBA Tipps: blogs.oracle.com/dbacommunity_deutsch Dojos: tinyurl.com/dojoonline Alles auf einen Blick: tinyurl.com/oraclebudb Nächstes Webseminar zum Thema PL/SQL Packages am 05. Juni Download: apex.oracle.com/folien Schlüsselwort: webinar_packages2 53 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

×