SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF
HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
Datenbank-Selbstverwaltung
Der Blick auf das Data Dictionary
Markus Flechtner
Trivadis – Unsere Mission.
DOAG-DB-Konferenz 2019: Das Data-Dictionary2 26.05.19
Trivadis makes IT easier:
Wir unterstützen unsere Kunden
massgeblich bei der intelligenten
Nutzung von Daten im digitalen
Zeitalter.
Wir reduzieren Komplexität für
unsere Kunden durch herausragende
Technologiekompetenz.
Wir übernehmen Kernaufgaben der
bestehenden und zukünftigen IT
unserer Kunden.
Trivadis – Was uns auszeichnet und unterscheidet.
DOAG-DB-Konferenz 2019: Das Data-Dictionary3 26.05.19
Wir verstehen die Business-Prozesse und wirtschaftlichen Herausforderungen
unserer Kunden und unterstützen sie durch IT-Beratung und bei der Entwicklung
ganzheitlicher IT-Lösungen.
Unsere selbstentwickelten, bewährten Produkte und Methoden basieren auf dem
tiefen Know-how in den Kerntechnologien von Microsoft, Oracle und Open Source.
Dies unterscheidet uns von unserem Mitbewerb.
OPEN SOURCE
Trivadis – Unsere wichtigsten Kennzahlen.
DOAG-DB-Konferenz 2019: Das Data-Dictionary4 26.05.19
Gründung: 1994.
15 Trivadis Niederlassungen mit
über 650 Mitarbeitenden.
Umsatz CHF 111 Mio. (EUR 96 Mio.).
Über 250 Service Level Agreements.
Mehr als 4'000 Trainingsteilnehmer.
Forschungs- und Entwicklungsbudget:
CHF 5.0 Mio.
Mehr als 1'900 Projekte pro Jahr bei
über 800 Kunden.
Finanziell unabhängig und
nachhaltig profitabel.
Über mich - Markus Flechtner
Principal Consultant, Trivadis, Düsseldorf, seit April 2008
Im Oracle-Umfeld tätig seit den 1990ern:
– Development (Forms, Reports, PL/SQL)
– Support
– Database Administration
Schwerpunkte
– Oracle Real Application Clusters
– Datenbank Upgrade- und Migrationsprojekte
Kursreferent
– O-RAC – Oracle Real Application Clusters
– O-NF-DBA – Oracle Database New Features for the DBA
– O-MT – Oracle Multitenant
– PG4ORA – PostgreSQL für Oracle DBAs
Blog: markusdba.de
@markusdba
26.05.19 DOAG-DB-Konferenz 2019: Das Data-Dictionary5
26.05.19 DOAG-DB-Konferenz 2019: Das Data-Dictionary6
Technik allein bringt Sie nicht weiter.
Man muss wissen, wie man sie richtig nutzt.
Agenda
DOAG-DB-Konferenz 2019: Das Data-Dictionary7 26.05.19
1. Warum gibt es das Data Dictionary?
2. Aufbau des Data Dictionaries
3. V$-Views - "Dynamische Performance Views"
4. "Wichtige" (häufig genutzte) Data Dictionary-Views
5. Beispielabfragen
DOAG-DB-Konferenz 2019: Das Data-Dictionary8 26.05.19
Warum gibt es das
Data Dictionary?
Codd's Rule #4 – Active Online Catalog
DOAG-DB-Konferenz 2019: Das Data-Dictionary9 26.05.19
"The structure description of the entire database must be stored in an
online catalog, known as data dictionary, which can be accessed by
authorized users. Users can use the same query language to access
the catalog which they use to access the database itself."
Das Data Dictionary ist ..
DOAG-DB-Konferenz 2019: Das Data-Dictionary10 26.05.19
.. eine Sammlung von Tabellen in der Datenbank
.. die Metadaten zu den Applikationstabellen, Datenbank-Benutzern etc. enthält
.. die mit SQL abgefragt werden kann wie jede andere Tabelle in der Datenbank
.. die vom RDBMS automatisch gepflegt wird
Wie funktioniert das? (schematisch, stark vereinfacht!)
DOAG-DB-Konferenz 2019: Das Data-Dictionary11 26.05.19
SQL> connect SCOTT/TIGER
SQL> create table EMP
( empno number,
ename varchar2(20)
..
);
INTERN> select * from user$
2 where name='SCOTT' and ..;
INTERN> select * from sysauth$
2 where grantee='SCOTT'
3 and privilege='CREATE TABLE';
INTERN> insert into tab$
2 (owner, tname, ..) VALUES
3 ('SCOTT','EMP', ..);
INTERN> insert into col$
2 (owner,tname,cname,ctype, ..)
3 VALUES ('SCOTT','EMP','EMPNO',
4 'NUMBER, ..);
DOAG-DB-Konferenz 2019: Das Data-Dictionary12 26.05.19
Aufbau des Data Dictionaries
Die Basis-Tabellen (1)
DOAG-DB-Konferenz 2019: Das Data-Dictionary13 26.05.19
Eigentümer des Data-Dictionaries ist der User SYS
Die Basis-Tabellen werden beim Anlegen der Datenbank ("CREATE DATABASE ..")
im Tablespace SYSTEM angelegt
– Skripte: $ORACLE_HOME/rdbms/admin/*.bsq
SQL> SELECT object_name FROM dba_objects WHERE object_name LIKE '%$%'
2 AND owner='SYS' AND object_type='TABLE' ORDER BY object_id;
OBJECT_NAME
--------------------
TAB$
CLU$
FET$
UET$
SEG$
[..]
Die Basis-Tabellen (2) – Beispiel tab$ (dcore.bsq)
DOAG-DB-Konferenz 2019: Das Data-Dictionary14 26.05.19
create table tab$ /* table table */
( obj# number not null, /* object number */
/* DO NOT CREATE INDEX ON DATAOBJ# AS IT WILL BE UPDATED IN A SPACE
* TRANSACTION DURING TRUNCATE */
dataobj# number, /* data layer object number */
ts# number not null, /* tablespace number */
file# number not null, /* segment header file number */
block# number not null, /* segment header block number */
bobj# number, /* base object number (cluster / iot) */
tab# number, /* table number in cluster, NULL if not clustered */
cols number not null, /* number of columns */
clucols number,/* number of clustered columns, NULL if not clustered */
pctfree$ number not null, /* minimum free space percentage in a block */
pctused$ number not null, /* minimum used space percentage in a block */
initrans number not null, /* initial number of transaction */
maxtrans number not null, /* maximum number of transaction */
flags number not null, /* 0x00 = unmodified since last backup
0x01 = modified since then
[..]
Die Basis-Tabellen (3) – Pflege der Basis-Tabellen
DOAG-DB-Konferenz 2019: Das Data-Dictionary15 26.05.19
Die Tabellen des Data Dictionaries werden von der Datenbank automatisch gepflegt
– Bei CREATE TABLE, ALTER USER, DROP VIEW … etc. – bei allen DDL-
Operationen
SELECT auf die Basis-Tabellen ist OK (aber sehr selten notwendig), DML ist nicht
erlaubt
Nur angucken, nicht anfassen!
Data-Dictionary-Views
DOAG-DB-Konferenz 2019: Das Data-Dictionary16 26.05.19
Im Alltag greift man nicht auf die Basis-Tabellen zu
Es gibt Views, die die Informationen aus den Basistabellen zusammenfassen
und/oder übersetzen
Die Views werden beim Anlegen der Datenbank durch das Skript
$ORACLE_HOME/rdbms/admin/catalog.sql angelegt
Beispiel: CREATE VIEW DBA_TABLES
DOAG-DB-Konferenz 2019: Das Data-Dictionary17 26.05.19
CREATE OR REPLACE FORCE VIEW "SYS"."DBA_TABLES"
("OWNER", "TABLE_NAME", "TABLESPACE_NAME", "CLUSTER_NAME", "IOT_NAME",
[..]
"READ_ONLY", "SEGMENT_CREATED", "RESULT_CACHE") AS
select u.name, o.name,
decode(bitand(t.property,2151678048), 0, ts.name,
decode(t.ts#, 0, null, ts.name)),
[..]
decode(bitand(t.property,16492674416640),2199023255552,'FORCE',
4398046511104,'MANUAL','DEFAULT')
from sys.user$ u, sys.ts$ ts, sys.seg$ s, sys.obj$ co, sys.tab$ t, sys.obj$ o,
sys.obj$ cx, sys.user$ cu, x$ksppcv ksppcv, x$ksppi ksppi,
sys.deferred_stg$ ds
where o.owner# = u.user#
and o.obj# = t.obj#
and bitand(t.property, 1) = 0
[..]
Ebenen in einer DB
DOAG-DB-Konferenz 2019: Das Data-Dictionary18 26.05.19
USER_*
– Sicht auf diejenigen Objekte, die ein User besitzt
– Beispiel: USER_TABLES
ALL_*
– Sicht auf Objekte, die ein User besitzt, resp. auf
die er Zugriff hat
– Beispiel: ALL_TABLES
DBA_*
– Sicht auf alle Datenbankobjekte aller User (inkl.
SYS)
– Beispiel: DBA_TABLES
DBA_*
ALL_*
USER_*
Es gibt viele "DBA-Views" ..
DOAG-DB-Konferenz 2019: Das Data-Dictionary19 26.05.19
SQL> SELECT DISTINCT OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_NAME
2 LIKE 'DBA%' ORDER BY OBJECT_NAME;
OBJECT_NAME
----------------------------------------
DBA_2PC_NEIGHBORS
DBA_2PC_PENDING
DBA_ACL_NAME_MAP
[...]
DBA_XTERNAL_TAB_SUBPARTITIONS
DBA_XT_HIVE_TABLES_VALIDATION
DBA_ZONEMAPS
DBA_ZONEMAP_MEASURES
1057 rows selected.
Multitenant-Datenbanken
DOAG-DB-Konferenz 2019: Das Data-Dictionary20 26.05.19
In Multitenant-Datenbanken gibt es die
zuätzliche Ebene "CDB_"
Zusätzliche Spalte (im Vergleich zu DBA_-
Views):
– CON_ID (Container ID)
Inhalt
– In CDB$ROOT: Informationen zu allen
Containern
– In einer PDB: Informationen zur eigenen
PDB (d.h. "DBA-View + Spalte CON_ID)
CDB$ROOT
[RW]
PDB$SEED
[RO]
CRM01
[RW]
HR01
[RW]
Notwendige Rechte
DOAG-DB-Konferenz 2019: Das Data-Dictionary21 26.05.19
Für USER_* und ALL_*-Views sind keine besonderen Rechte erforderlich
Die CDB- und DBA_-Views sind i.d.R: nur für DBAs zugänglich
Notwendige Rechte:
– DBA-Rolle
– SELECT_CATALOG_ROLE
– SELECT ANY DICTIONARY-Recht
– Individuelle Grants
– U.v.m.
DOAG-DB-Konferenz 2019: Das Data-Dictionary22 26.05.19
V$-Views –
"Dynamische Performance Views"
V$-Views - Datenquellen
DOAG-DB-Konferenz 2019: Das Data-Dictionary23 26.05.19
Data Dictionary Views zeigen Inhalte der Datenbank
– Inhalte liegen persistent in den Datenbank-Dateien (SYSTEM-Tablespace)
V$-Views basieren auf den Informationen in Memory-Strukturen, die in Tabellenform
dargestellt werden
– nicht persistent
Teilweise gibt es Überschneidungen (z.B. DBA_DATA_FILES und V$DATAFILE)
Teilweise basieren DBA-Views auf V$-Views
V$-Views - Inhalte
DOAG-DB-Konferenz 2019: Das Data-Dictionary24 26.05.19
Parameter der Instanz und der DB-Sitzung
Memory-Nutzung
Status der Datenbank-Dateien
Informationen zu Backups
Informationen zu laufenden Sitzungen und
Transaktionen
Informationen zur Ausführung von SQL-
Befehlen
Statistiken
Metriken
SQL> select count(*) from
2 dba_views
3 where
4 view_name like 'V_$%';
COUNT(*)
----------
869
V$-Views - Struktur
DOAG-DB-Konferenz 2019: Das Data-Dictionary25 26.05.19
Grundlage ist eine View V_$....., z.B. V$_DATAFILE
Dazu gibt es ein Synoym V$..., also V$DATAFILE
Abfragen sollten auf die V$-Objekte erfolgen (Synonyme)
Evtl. notwendige zusätzliche Grants müssen auf die unterliegenden V_$-Objekte
erfolgen
View-Definition in V$FIXED_VIEW_DEFINITION
Und was ist mit X$-?
DOAG-DB-Konferenz 2019: Das Data-Dictionary26 26.05.19
"X$-Tabellen" liegen noch eine Ebene tiefer als die V$-Views
Sicht auf interne Kernel-Strukturen
In vielen Fällen Basis für die
V$-Views
Nicht offiziell dokumentiert
Nur für SYS zugänglich
Strukturen können sich ändern
SQL> desc x$ksppi
Name Null? Type
--------------- ----- --------------
ADDR RAW(8)
INDX NUMBER
INST_ID NUMBER
CON_ID NUMBER
KSPPINM VARCHAR2(80)
KSPPITY NUMBER
KSPPDESC VARCHAR2(255)
KSPPIFLG NUMBER
KSPPILRMFLG NUMBER
KSPPIHASH NUMBER
DOAG-DB-Konferenz 2019: Das Data-Dictionary27 26.05.19
"Wichtige"
(häufig genutzte)
Data Dictionary-Views
Überblick über das Data Dictionary – Tabelle DICT
DOAG-DB-Konferenz 2019: Das Data-Dictionary28 26.05.19
SQL> desc DICT
Name Null? Type
------------------------- ----- ----------------------------
TABLE_NAME VARCHAR2(128)
COMMENTS VARCHAR2(4000)
SQL> select table_name,comments from DICT where table_name in
2 ('USER_TABLES','DBA_TABLES');
TABLE_NAME COMMENTS
------------------------- ------------------------------------------------------
DBA_TABLES Description of all relational tables in the database
USER_TABLES Description of the user's own relational tables
SQL> select count(*) from dict;
COUNT(*)
----------
4688
Spalten der DD-Views – DICT_COLUMNS
DOAG-DB-Konferenz 2019: Das Data-Dictionary29 26.05.19
SQL> desc DICT_COLUMNS
Name Null? Type
------------------------------------------ ----------------------------
TABLE_NAME VARCHAR2(30)
COLUMN_NAME VARCHAR2(30)
COMMENTS VARCHAR2(4000)
SQL> select COLUMN_NAME,COMMENTS from dict_columns where table_name='DBA_TABLES';
COLUMN_NAME COMMENTS
------------------------- --------------------------------------------------
OWNER Owner of the table
TABLE_NAME Name of the table
TABLESPACE_NAME Name of the tablespace containing the table
CLUSTER_NAME Name of the cluster, if any, to which the table be
longs
IOT_NAME Name of the index-only table, if any, to which the
overflow or mapping table entry belongs
[..]
Oracle Dokumentation
DOAG-DB-Konferenz 2019: Das Data-Dictionary30 26.05.19
Oracle Database Reference
– Beschreibung aller Data-Dictionary-Views und V$-
https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/index.html
Oracle Interactive Quick Reference
– Online:
https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUT
PUT_poster/poster.html
– Download:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTP
UT_poster/zip/poster.zip
Früher ..
DOAG-DB-Konferenz 2019: Das Data-Dictionary31 26.05.19
Heute: Oracle Interactive Quick Reference
DOAG-DB-Konferenz 2019: Das Data-Dictionary32 26.05.19
Heute: Oracle Interactive Quick Reference
DOAG-DB-Konferenz 2019: Das Data-Dictionary33 26.05.19
Demo
Allgemeine Informationen zur Datenbank & Instanz
DOAG-DB-Konferenz 2019: Das Data-Dictionary34 26.05.19
Data Dictionary View / V$-View Inhalt/Bedeutung
V$DATABASE Status der Datenbank
V$INSTANCE Status der Instanz
DATABASE_PROPERTIES DB-Eigenschaften, z.B. Zeichensatz
V$OPTION Installierte Optionen
DBA_REGISTRY Status der DB-Komponenten
DBA_FEATURES_USAGE_STATISTICS Verwendung der DB-Features (Achtung: False
Positives möglich)
V$PARAMETER / V$SPPARAMETER Parameter der laufenden Instanz bzw. des SPFILES
Dateien & Tablespaces
DOAG-DB-Konferenz 2019: Das Data-Dictionary35 26.05.19
Data Dictionary View / V$-View Inhalt/Bedeutung
DBA_DATA_FILES / V$DATAFILE Datendateien (permanent + UNDO-TS)
DBA_TEMP_FILES / V$TEMPFILE Temp-Dateien (temporäre Tablespace)
DBA_TABLESPACES Tablespaces
DBA_TABLESPACE_USAGE_METRICS Füllgrad der Tablespaces
V$LOG Information zu den Redolog-Gruppen
V$LOGFILE Information zu den Redolog-Dateien
V$ARCHIVED_LOG Information zu den Archivelog-Dateien
V$CONTROLFILE Liste der Controldateien
Benutzer & Rechte
DOAG-DB-Konferenz 2019: Das Data-Dictionary36 26.05.19
Data Dictionary View / V$-View Inhalt/Bedeutung
DBA_USERS alle User in der Datenbank
DBA_ROLES alle Rollen in der Datenbank
DBA_SYS_PRIVS Systemrechte der User und Rollen
DBA_ROLE_PRIVS den Usern und Rollen zugeordnete Rollen
DBA_TAB_PRIVS Rechte der User und Rollen auf Tabellen und Views
DBA_COL_PRIVS Rechte der User und Rollen auf einzelne Spalten
DBA_TS_QUOTAS Quotas der User auf den Tablespaces
DBA_PROFILES Profile in der Datenbank
Datenbankobjekte
DOAG-DB-Konferenz 2019: Das Data-Dictionary37 26.05.19
Data Dictionary View / V$-View Inhalt/Bedeutung
DBA_OBJECTS alle Objekte in der Datenbank
DBA_TABLES alle Tabellen in der Datenbank
DBA_VIEWS alle Views
DBA_TAB_COLUMNS Spalten aller Tabellen (und Views)
DBA_INDEXES alle Indizes
DBA_IND_COLUMNS indizierte Spalten
DBA_CONSTRAINTS alle Constraints
DBA_CONS_COLUMNS In den Constraints genutzte Spalten
Sessions, Transaktionen, Prozesse, SQL
DOAG-DB-Konferenz 2019: Das Data-Dictionary38 26.05.19
Data Dictionary View / V$-View Inhalt/Bedeutung
V$SESSION alle Datenbank-Sessions (inkl. Hintergrundprozesse
der Instanz)
V$SESSION_CONNECT_INFO Wie sind die Sessions angemeldet (z.B. Client-
Version, Verschlüsselung Ja/Nein)
V$PROCESS aktive Prozesse
V$TRANSACTION aktuelle Transaktionen in der Datenbank
V$SQL
SQL-Befehle im SQL-Shared Area inkl. StatistikenV$SQLTEXT
V$SQLAREA
Memory-Informationen
DOAG-DB-Konferenz 2019: Das Data-Dictionary39 26.05.19
Data Dictionary View / V$-View Inhalt/Bedeutung
V$SGA Überblick über die Größe der SGA-Komponenten
V$SGAINFO Größe der SGA-Komponenten (detaillierter)
V$SGASTAT Größen der "Unter-Komponenten" der SGA-
Komponenten
V$PGASTAT PGA-Statistiken
V$DB_CACHE_ADVICE Empfehlungen zur Größe des DB-Caches
V$SHARED_POOL_ADVICE Empfehlungen zur Größe des Shared Pools
Instanz-, System- und Sessionstatistiken
DOAG-DB-Konferenz 2019: Das Data-Dictionary40 26.05.19
Data Dictionary View / V$-View Inhalt/Bedeutung
V$SYSSTAT Systemstatistiken
V$SESSTAT Statistiken einzelner Sessions
V$WAITSTAT Informationen zu "Wartezuständen"
V$OSSTAT Betriebssystemstatistiken
V$MYSTAT Statistiken "meiner" Session
V$SQLSTATS Informationen zur Ausführung einzelner SQL-Befehle
V$STATNAME Namen der Statistiken
DOAG-DB-Konferenz 2019: Das Data-Dictionary41 26.05.19
Beispielabfragen
Beispiel 1: Tablespaces und Datafiles
DOAG-DB-Konferenz 2019: Das Data-Dictionary42 26.05.19
SQL> select t.tablespace_name,t.block_size,t.status,t.contents,
2 count(f.file_name) no_files,trunc(sum(f.bytes)/1024/1024) size_mb
3 from DBA_TABLESPACES t,DBA_DATA_FILES f
4 where f.tablespace_name=t.tablespace_name
5 group by t.tablespace_name,t.block_size,t.status,t.contents;
TABLESPACE_NAME BLOCK_SIZE STATUS CONTENTS NO_FILES SIZE_MB
-------------------- ---------- --------- ---------- ---------- ----------
SYSTEM 8192 ONLINE PERMANENT 1 960
UNDOTBS1 8192 ONLINE UNDO 1 1024
ILMTBS 8192 ONLINE PERMANENT 1 20
SYSAUX 8192 ONLINE PERMANENT 1 930
USERS 8192 ONLINE PERMANENT 1 171
USERS2 8192 ONLINE PERMANENT 1 10
EXAMPLE 8192 ONLINE PERMANENT 1 1280
Beispiel 2: Tabellen ohne PK oder Unique Constraint
DOAG-DB-Konferenz 2019: Das Data-Dictionary43 26.05.19
SELECT owner, table_name FROM dba_tables
MINUS
SELECT owner, table_name FROM dba_constraints
WHERE
constraint_type IN ('P','U');
Beispiel 3: Informationen zu den Redolog-Dateien
DOAG-DB-Konferenz 2019: Das Data-Dictionary44 26.05.19
SQL> SELECT lf.group#, lf.member, lg.bytes
2 FROM v$logfile lf, v$log lg
3 WHERE lf.group#=lg.group#
GROUP# MEMBER BYTES
------- -------------------------------------- --------
1 /u01/oradata/DB1/redog1m1DB1.dbf 16777216
1 /u02/oradata/DB1/redog1m2DB1.dbf 16777216
2 /u01/oradata/DB1/redog2m1DB1.dbf 16777216
2 /u02/oradata/DB1/redog2m2DB1.dbf 16777216
Beispiel 4: Session-Informationen
DOAG-DB-Konferenz 2019: Das Data-Dictionary45 26.05.19
SQL> SELECT P.SPID,S.SID,S.SERIAL#,S.USERNAME,S.STATUS,S.PROGRAM,S.MACHINE,S.OSUSER
2 FROM V$PROCESS P,V$SESSION S
3 WHERE S.PADDR = P.ADDR AND P.BACKGROUND IS NULL;
SPID SID SERIAL# USERNAME STATUS PROGRAM MACHINE OSUSER
----- ----- --------- ---------- -------- -------------------- ---------- ------
3576 462 5111 SYS ACTIVE sqlplus@training19c .. training19c oracle
10419 3 48528 HR INACTIVE SQL Developer MacBook markus
8771 500 65116 SYS INACTIVE SQL Developer MacBook markus
Bezeichnung Präsentation46 26.05.19
Weitere Informationen
• Skript-Sammlungen
• https://oracle-base.com/dba/scripts
• Trivadis-Skripte (Download via https://www.trivadis.com/en/articles-presentations)
• "Wichtige DBA-Views auf einer DIN A4-Seite":
https://www.markusdba.de/wp-content/uploads/2019/05/auswahl-dba-views-a4-v00.pdf
Fragen & Antworten
Markus Flechtner
Principal Consultant
Tel. +49 211 5866 64725
Markus.Flechtner@Trivadis.com
@markusdba http://markusdba.de
Vortrag zum Download verfügbar unter https://www.slideshare.net/markusflechtner
Bitte die Vortragsbewertung nicht vergessen – Danke!
26.05.19 DOAG-DB-Konferenz 2019: Das Data-Dictionary47
Heute, 17:15:
Stairway to Heaven - Die Zukunft des DBA
Was begegnet mir auf dem Weg in die Cloud?
Pinwand für Fragen und Anmerkungen im Foyer
=> Antworten gibt es in der Open-Mic-Session

Weitere ähnliche Inhalte

Ähnlich wie Datenbank-Selbstverwaltung - Das Oracle-Data-Dictionary

Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AGQualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Torsten Kleiber
 
Abap course chapter 4 database accesses
Abap course   chapter 4 database accessesAbap course   chapter 4 database accesses
Abap course chapter 4 database accesses
Milind Patil
 

Ähnlich wie Datenbank-Selbstverwaltung - Das Oracle-Data-Dictionary (20)

Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
Add-on für SAP: Das schlanke Ablage- und Archivsystem von inPuncto
Add-on für SAP: Das schlanke Ablage- und Archivsystem von inPunctoAdd-on für SAP: Das schlanke Ablage- und Archivsystem von inPuncto
Add-on für SAP: Das schlanke Ablage- und Archivsystem von inPuncto
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)
 
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
 
Sensitive Daten in der Oracle Datenbank
Sensitive Daten in der Oracle DatenbankSensitive Daten in der Oracle Datenbank
Sensitive Daten in der Oracle Datenbank
 
Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankHeterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle Datenbank
 
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
Oracle Data Warehouse Integration Builder - Ein Selbstversuch (DOAG 2013)
 
Big Data Appliances
Big Data AppliancesBig Data Appliances
Big Data Appliances
 
“AT Internet Data Explorer Demo” von meinestadt.de
“AT Internet Data Explorer Demo” von meinestadt.de“AT Internet Data Explorer Demo” von meinestadt.de
“AT Internet Data Explorer Demo” von meinestadt.de
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & Features
 
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen ExtraktionWebinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?
 
Webinar - ABAP CDS Views
Webinar - ABAP CDS ViewsWebinar - ABAP CDS Views
Webinar - ABAP CDS Views
 
DACHNUG50 LeapTippsAndTricks.pdf
DACHNUG50 LeapTippsAndTricks.pdfDACHNUG50 LeapTippsAndTricks.pdf
DACHNUG50 LeapTippsAndTricks.pdf
 
Market Research Meets Business Intelligence
Market Research Meets Business IntelligenceMarket Research Meets Business Intelligence
Market Research Meets Business Intelligence
 
Effective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADFEffective Blueprints for Forms 2 Oracle ADF
Effective Blueprints for Forms 2 Oracle ADF
 
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AGQualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
 
Abap course chapter 4 database accesses
Abap course   chapter 4 database accessesAbap course   chapter 4 database accesses
Abap course chapter 4 database accesses
 
OGD Cockpit Barcamp Bochum Krabina 2022.pdf
OGD Cockpit Barcamp Bochum Krabina 2022.pdfOGD Cockpit Barcamp Bochum Krabina 2022.pdf
OGD Cockpit Barcamp Bochum Krabina 2022.pdf
 

Mehr von Markus Flechtner

Mehr von Markus Flechtner (20)

My SYSAUX tablespace is full, please
My SYSAUX tablespace is full, pleaseMy SYSAUX tablespace is full, please
My SYSAUX tablespace is full, please
 
Rolle Rückwärts - Backported Features in Oracle Database 19c
Rolle Rückwärts - Backported Features in Oracle Database 19cRolle Rückwärts - Backported Features in Oracle Database 19c
Rolle Rückwärts - Backported Features in Oracle Database 19c
 
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenOracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
 
Container Only - Neue Features für Multitenant in Oracle 21c
Container Only - Neue Features für Multitenant in Oracle 21cContainer Only - Neue Features für Multitenant in Oracle 21c
Container Only - Neue Features für Multitenant in Oracle 21c
 
Oracle Datenbank-Architektur
Oracle Datenbank-ArchitekturOracle Datenbank-Architektur
Oracle Datenbank-Architektur
 
Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?
 
OraChk
OraChkOraChk
OraChk
 
TFA - Trace File Analyzer Collector
TFA - Trace File Analyzer CollectorTFA - Trace File Analyzer Collector
TFA - Trace File Analyzer Collector
 
High Availability for Oracle SE2
High Availability for Oracle SE2High Availability for Oracle SE2
High Availability for Oracle SE2
 
My SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please helpMy SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please help
 
Datenbank-Hausputz für Einsteiger
Datenbank-Hausputz für EinsteigerDatenbank-Hausputz für Einsteiger
Datenbank-Hausputz für Einsteiger
 
Should I stay or should I go?
Should I stay or should I go?Should I stay or should I go?
Should I stay or should I go?
 
Privilege Analysis with the Oracle Database
Privilege Analysis with the Oracle DatabasePrivilege Analysis with the Oracle Database
Privilege Analysis with the Oracle Database
 
New Features for Multitenant in Oracle Database 21c
New Features for Multitenant in Oracle Database 21cNew Features for Multitenant in Oracle Database 21c
New Features for Multitenant in Oracle Database 21c
 
Oracle - Checklist for performance issues
Oracle - Checklist for performance issuesOracle - Checklist for performance issues
Oracle - Checklist for performance issues
 
Einführung in den SQL-Developer
Einführung in den SQL-DeveloperEinführung in den SQL-Developer
Einführung in den SQL-Developer
 
Oracle Database: Checklist Connection Issues
Oracle Database: Checklist Connection IssuesOracle Database: Checklist Connection Issues
Oracle Database: Checklist Connection Issues
 
Checklist for Upgrades and Migrations
Checklist for Upgrades and MigrationsChecklist for Upgrades and Migrations
Checklist for Upgrades and Migrations
 
Taming the PDB: Resource Management and Lockdown Profiles
Taming the PDB: Resource Management and Lockdown ProfilesTaming the PDB: Resource Management and Lockdown Profiles
Taming the PDB: Resource Management and Lockdown Profiles
 
Oracle Backup & Recovery für Einsteiger
Oracle Backup & Recovery für EinsteigerOracle Backup & Recovery für Einsteiger
Oracle Backup & Recovery für Einsteiger
 

Datenbank-Selbstverwaltung - Das Oracle-Data-Dictionary

  • 1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH Datenbank-Selbstverwaltung Der Blick auf das Data Dictionary Markus Flechtner
  • 2. Trivadis – Unsere Mission. DOAG-DB-Konferenz 2019: Das Data-Dictionary2 26.05.19 Trivadis makes IT easier: Wir unterstützen unsere Kunden massgeblich bei der intelligenten Nutzung von Daten im digitalen Zeitalter. Wir reduzieren Komplexität für unsere Kunden durch herausragende Technologiekompetenz. Wir übernehmen Kernaufgaben der bestehenden und zukünftigen IT unserer Kunden.
  • 3. Trivadis – Was uns auszeichnet und unterscheidet. DOAG-DB-Konferenz 2019: Das Data-Dictionary3 26.05.19 Wir verstehen die Business-Prozesse und wirtschaftlichen Herausforderungen unserer Kunden und unterstützen sie durch IT-Beratung und bei der Entwicklung ganzheitlicher IT-Lösungen. Unsere selbstentwickelten, bewährten Produkte und Methoden basieren auf dem tiefen Know-how in den Kerntechnologien von Microsoft, Oracle und Open Source. Dies unterscheidet uns von unserem Mitbewerb. OPEN SOURCE
  • 4. Trivadis – Unsere wichtigsten Kennzahlen. DOAG-DB-Konferenz 2019: Das Data-Dictionary4 26.05.19 Gründung: 1994. 15 Trivadis Niederlassungen mit über 650 Mitarbeitenden. Umsatz CHF 111 Mio. (EUR 96 Mio.). Über 250 Service Level Agreements. Mehr als 4'000 Trainingsteilnehmer. Forschungs- und Entwicklungsbudget: CHF 5.0 Mio. Mehr als 1'900 Projekte pro Jahr bei über 800 Kunden. Finanziell unabhängig und nachhaltig profitabel.
  • 5. Über mich - Markus Flechtner Principal Consultant, Trivadis, Düsseldorf, seit April 2008 Im Oracle-Umfeld tätig seit den 1990ern: – Development (Forms, Reports, PL/SQL) – Support – Database Administration Schwerpunkte – Oracle Real Application Clusters – Datenbank Upgrade- und Migrationsprojekte Kursreferent – O-RAC – Oracle Real Application Clusters – O-NF-DBA – Oracle Database New Features for the DBA – O-MT – Oracle Multitenant – PG4ORA – PostgreSQL für Oracle DBAs Blog: markusdba.de @markusdba 26.05.19 DOAG-DB-Konferenz 2019: Das Data-Dictionary5
  • 6. 26.05.19 DOAG-DB-Konferenz 2019: Das Data-Dictionary6 Technik allein bringt Sie nicht weiter. Man muss wissen, wie man sie richtig nutzt.
  • 7. Agenda DOAG-DB-Konferenz 2019: Das Data-Dictionary7 26.05.19 1. Warum gibt es das Data Dictionary? 2. Aufbau des Data Dictionaries 3. V$-Views - "Dynamische Performance Views" 4. "Wichtige" (häufig genutzte) Data Dictionary-Views 5. Beispielabfragen
  • 8. DOAG-DB-Konferenz 2019: Das Data-Dictionary8 26.05.19 Warum gibt es das Data Dictionary?
  • 9. Codd's Rule #4 – Active Online Catalog DOAG-DB-Konferenz 2019: Das Data-Dictionary9 26.05.19 "The structure description of the entire database must be stored in an online catalog, known as data dictionary, which can be accessed by authorized users. Users can use the same query language to access the catalog which they use to access the database itself."
  • 10. Das Data Dictionary ist .. DOAG-DB-Konferenz 2019: Das Data-Dictionary10 26.05.19 .. eine Sammlung von Tabellen in der Datenbank .. die Metadaten zu den Applikationstabellen, Datenbank-Benutzern etc. enthält .. die mit SQL abgefragt werden kann wie jede andere Tabelle in der Datenbank .. die vom RDBMS automatisch gepflegt wird
  • 11. Wie funktioniert das? (schematisch, stark vereinfacht!) DOAG-DB-Konferenz 2019: Das Data-Dictionary11 26.05.19 SQL> connect SCOTT/TIGER SQL> create table EMP ( empno number, ename varchar2(20) .. ); INTERN> select * from user$ 2 where name='SCOTT' and ..; INTERN> select * from sysauth$ 2 where grantee='SCOTT' 3 and privilege='CREATE TABLE'; INTERN> insert into tab$ 2 (owner, tname, ..) VALUES 3 ('SCOTT','EMP', ..); INTERN> insert into col$ 2 (owner,tname,cname,ctype, ..) 3 VALUES ('SCOTT','EMP','EMPNO', 4 'NUMBER, ..);
  • 12. DOAG-DB-Konferenz 2019: Das Data-Dictionary12 26.05.19 Aufbau des Data Dictionaries
  • 13. Die Basis-Tabellen (1) DOAG-DB-Konferenz 2019: Das Data-Dictionary13 26.05.19 Eigentümer des Data-Dictionaries ist der User SYS Die Basis-Tabellen werden beim Anlegen der Datenbank ("CREATE DATABASE ..") im Tablespace SYSTEM angelegt – Skripte: $ORACLE_HOME/rdbms/admin/*.bsq SQL> SELECT object_name FROM dba_objects WHERE object_name LIKE '%$%' 2 AND owner='SYS' AND object_type='TABLE' ORDER BY object_id; OBJECT_NAME -------------------- TAB$ CLU$ FET$ UET$ SEG$ [..]
  • 14. Die Basis-Tabellen (2) – Beispiel tab$ (dcore.bsq) DOAG-DB-Konferenz 2019: Das Data-Dictionary14 26.05.19 create table tab$ /* table table */ ( obj# number not null, /* object number */ /* DO NOT CREATE INDEX ON DATAOBJ# AS IT WILL BE UPDATED IN A SPACE * TRANSACTION DURING TRUNCATE */ dataobj# number, /* data layer object number */ ts# number not null, /* tablespace number */ file# number not null, /* segment header file number */ block# number not null, /* segment header block number */ bobj# number, /* base object number (cluster / iot) */ tab# number, /* table number in cluster, NULL if not clustered */ cols number not null, /* number of columns */ clucols number,/* number of clustered columns, NULL if not clustered */ pctfree$ number not null, /* minimum free space percentage in a block */ pctused$ number not null, /* minimum used space percentage in a block */ initrans number not null, /* initial number of transaction */ maxtrans number not null, /* maximum number of transaction */ flags number not null, /* 0x00 = unmodified since last backup 0x01 = modified since then [..]
  • 15. Die Basis-Tabellen (3) – Pflege der Basis-Tabellen DOAG-DB-Konferenz 2019: Das Data-Dictionary15 26.05.19 Die Tabellen des Data Dictionaries werden von der Datenbank automatisch gepflegt – Bei CREATE TABLE, ALTER USER, DROP VIEW … etc. – bei allen DDL- Operationen SELECT auf die Basis-Tabellen ist OK (aber sehr selten notwendig), DML ist nicht erlaubt Nur angucken, nicht anfassen!
  • 16. Data-Dictionary-Views DOAG-DB-Konferenz 2019: Das Data-Dictionary16 26.05.19 Im Alltag greift man nicht auf die Basis-Tabellen zu Es gibt Views, die die Informationen aus den Basistabellen zusammenfassen und/oder übersetzen Die Views werden beim Anlegen der Datenbank durch das Skript $ORACLE_HOME/rdbms/admin/catalog.sql angelegt
  • 17. Beispiel: CREATE VIEW DBA_TABLES DOAG-DB-Konferenz 2019: Das Data-Dictionary17 26.05.19 CREATE OR REPLACE FORCE VIEW "SYS"."DBA_TABLES" ("OWNER", "TABLE_NAME", "TABLESPACE_NAME", "CLUSTER_NAME", "IOT_NAME", [..] "READ_ONLY", "SEGMENT_CREATED", "RESULT_CACHE") AS select u.name, o.name, decode(bitand(t.property,2151678048), 0, ts.name, decode(t.ts#, 0, null, ts.name)), [..] decode(bitand(t.property,16492674416640),2199023255552,'FORCE', 4398046511104,'MANUAL','DEFAULT') from sys.user$ u, sys.ts$ ts, sys.seg$ s, sys.obj$ co, sys.tab$ t, sys.obj$ o, sys.obj$ cx, sys.user$ cu, x$ksppcv ksppcv, x$ksppi ksppi, sys.deferred_stg$ ds where o.owner# = u.user# and o.obj# = t.obj# and bitand(t.property, 1) = 0 [..]
  • 18. Ebenen in einer DB DOAG-DB-Konferenz 2019: Das Data-Dictionary18 26.05.19 USER_* – Sicht auf diejenigen Objekte, die ein User besitzt – Beispiel: USER_TABLES ALL_* – Sicht auf Objekte, die ein User besitzt, resp. auf die er Zugriff hat – Beispiel: ALL_TABLES DBA_* – Sicht auf alle Datenbankobjekte aller User (inkl. SYS) – Beispiel: DBA_TABLES DBA_* ALL_* USER_*
  • 19. Es gibt viele "DBA-Views" .. DOAG-DB-Konferenz 2019: Das Data-Dictionary19 26.05.19 SQL> SELECT DISTINCT OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_NAME 2 LIKE 'DBA%' ORDER BY OBJECT_NAME; OBJECT_NAME ---------------------------------------- DBA_2PC_NEIGHBORS DBA_2PC_PENDING DBA_ACL_NAME_MAP [...] DBA_XTERNAL_TAB_SUBPARTITIONS DBA_XT_HIVE_TABLES_VALIDATION DBA_ZONEMAPS DBA_ZONEMAP_MEASURES 1057 rows selected.
  • 20. Multitenant-Datenbanken DOAG-DB-Konferenz 2019: Das Data-Dictionary20 26.05.19 In Multitenant-Datenbanken gibt es die zuätzliche Ebene "CDB_" Zusätzliche Spalte (im Vergleich zu DBA_- Views): – CON_ID (Container ID) Inhalt – In CDB$ROOT: Informationen zu allen Containern – In einer PDB: Informationen zur eigenen PDB (d.h. "DBA-View + Spalte CON_ID) CDB$ROOT [RW] PDB$SEED [RO] CRM01 [RW] HR01 [RW]
  • 21. Notwendige Rechte DOAG-DB-Konferenz 2019: Das Data-Dictionary21 26.05.19 Für USER_* und ALL_*-Views sind keine besonderen Rechte erforderlich Die CDB- und DBA_-Views sind i.d.R: nur für DBAs zugänglich Notwendige Rechte: – DBA-Rolle – SELECT_CATALOG_ROLE – SELECT ANY DICTIONARY-Recht – Individuelle Grants – U.v.m.
  • 22. DOAG-DB-Konferenz 2019: Das Data-Dictionary22 26.05.19 V$-Views – "Dynamische Performance Views"
  • 23. V$-Views - Datenquellen DOAG-DB-Konferenz 2019: Das Data-Dictionary23 26.05.19 Data Dictionary Views zeigen Inhalte der Datenbank – Inhalte liegen persistent in den Datenbank-Dateien (SYSTEM-Tablespace) V$-Views basieren auf den Informationen in Memory-Strukturen, die in Tabellenform dargestellt werden – nicht persistent Teilweise gibt es Überschneidungen (z.B. DBA_DATA_FILES und V$DATAFILE) Teilweise basieren DBA-Views auf V$-Views
  • 24. V$-Views - Inhalte DOAG-DB-Konferenz 2019: Das Data-Dictionary24 26.05.19 Parameter der Instanz und der DB-Sitzung Memory-Nutzung Status der Datenbank-Dateien Informationen zu Backups Informationen zu laufenden Sitzungen und Transaktionen Informationen zur Ausführung von SQL- Befehlen Statistiken Metriken SQL> select count(*) from 2 dba_views 3 where 4 view_name like 'V_$%'; COUNT(*) ---------- 869
  • 25. V$-Views - Struktur DOAG-DB-Konferenz 2019: Das Data-Dictionary25 26.05.19 Grundlage ist eine View V_$....., z.B. V$_DATAFILE Dazu gibt es ein Synoym V$..., also V$DATAFILE Abfragen sollten auf die V$-Objekte erfolgen (Synonyme) Evtl. notwendige zusätzliche Grants müssen auf die unterliegenden V_$-Objekte erfolgen View-Definition in V$FIXED_VIEW_DEFINITION
  • 26. Und was ist mit X$-? DOAG-DB-Konferenz 2019: Das Data-Dictionary26 26.05.19 "X$-Tabellen" liegen noch eine Ebene tiefer als die V$-Views Sicht auf interne Kernel-Strukturen In vielen Fällen Basis für die V$-Views Nicht offiziell dokumentiert Nur für SYS zugänglich Strukturen können sich ändern SQL> desc x$ksppi Name Null? Type --------------- ----- -------------- ADDR RAW(8) INDX NUMBER INST_ID NUMBER CON_ID NUMBER KSPPINM VARCHAR2(80) KSPPITY NUMBER KSPPDESC VARCHAR2(255) KSPPIFLG NUMBER KSPPILRMFLG NUMBER KSPPIHASH NUMBER
  • 27. DOAG-DB-Konferenz 2019: Das Data-Dictionary27 26.05.19 "Wichtige" (häufig genutzte) Data Dictionary-Views
  • 28. Überblick über das Data Dictionary – Tabelle DICT DOAG-DB-Konferenz 2019: Das Data-Dictionary28 26.05.19 SQL> desc DICT Name Null? Type ------------------------- ----- ---------------------------- TABLE_NAME VARCHAR2(128) COMMENTS VARCHAR2(4000) SQL> select table_name,comments from DICT where table_name in 2 ('USER_TABLES','DBA_TABLES'); TABLE_NAME COMMENTS ------------------------- ------------------------------------------------------ DBA_TABLES Description of all relational tables in the database USER_TABLES Description of the user's own relational tables SQL> select count(*) from dict; COUNT(*) ---------- 4688
  • 29. Spalten der DD-Views – DICT_COLUMNS DOAG-DB-Konferenz 2019: Das Data-Dictionary29 26.05.19 SQL> desc DICT_COLUMNS Name Null? Type ------------------------------------------ ---------------------------- TABLE_NAME VARCHAR2(30) COLUMN_NAME VARCHAR2(30) COMMENTS VARCHAR2(4000) SQL> select COLUMN_NAME,COMMENTS from dict_columns where table_name='DBA_TABLES'; COLUMN_NAME COMMENTS ------------------------- -------------------------------------------------- OWNER Owner of the table TABLE_NAME Name of the table TABLESPACE_NAME Name of the tablespace containing the table CLUSTER_NAME Name of the cluster, if any, to which the table be longs IOT_NAME Name of the index-only table, if any, to which the overflow or mapping table entry belongs [..]
  • 30. Oracle Dokumentation DOAG-DB-Konferenz 2019: Das Data-Dictionary30 26.05.19 Oracle Database Reference – Beschreibung aller Data-Dictionary-Views und V$- https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/index.html Oracle Interactive Quick Reference – Online: https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUT PUT_poster/poster.html – Download: http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTP UT_poster/zip/poster.zip
  • 31. Früher .. DOAG-DB-Konferenz 2019: Das Data-Dictionary31 26.05.19
  • 32. Heute: Oracle Interactive Quick Reference DOAG-DB-Konferenz 2019: Das Data-Dictionary32 26.05.19
  • 33. Heute: Oracle Interactive Quick Reference DOAG-DB-Konferenz 2019: Das Data-Dictionary33 26.05.19 Demo
  • 34. Allgemeine Informationen zur Datenbank & Instanz DOAG-DB-Konferenz 2019: Das Data-Dictionary34 26.05.19 Data Dictionary View / V$-View Inhalt/Bedeutung V$DATABASE Status der Datenbank V$INSTANCE Status der Instanz DATABASE_PROPERTIES DB-Eigenschaften, z.B. Zeichensatz V$OPTION Installierte Optionen DBA_REGISTRY Status der DB-Komponenten DBA_FEATURES_USAGE_STATISTICS Verwendung der DB-Features (Achtung: False Positives möglich) V$PARAMETER / V$SPPARAMETER Parameter der laufenden Instanz bzw. des SPFILES
  • 35. Dateien & Tablespaces DOAG-DB-Konferenz 2019: Das Data-Dictionary35 26.05.19 Data Dictionary View / V$-View Inhalt/Bedeutung DBA_DATA_FILES / V$DATAFILE Datendateien (permanent + UNDO-TS) DBA_TEMP_FILES / V$TEMPFILE Temp-Dateien (temporäre Tablespace) DBA_TABLESPACES Tablespaces DBA_TABLESPACE_USAGE_METRICS Füllgrad der Tablespaces V$LOG Information zu den Redolog-Gruppen V$LOGFILE Information zu den Redolog-Dateien V$ARCHIVED_LOG Information zu den Archivelog-Dateien V$CONTROLFILE Liste der Controldateien
  • 36. Benutzer & Rechte DOAG-DB-Konferenz 2019: Das Data-Dictionary36 26.05.19 Data Dictionary View / V$-View Inhalt/Bedeutung DBA_USERS alle User in der Datenbank DBA_ROLES alle Rollen in der Datenbank DBA_SYS_PRIVS Systemrechte der User und Rollen DBA_ROLE_PRIVS den Usern und Rollen zugeordnete Rollen DBA_TAB_PRIVS Rechte der User und Rollen auf Tabellen und Views DBA_COL_PRIVS Rechte der User und Rollen auf einzelne Spalten DBA_TS_QUOTAS Quotas der User auf den Tablespaces DBA_PROFILES Profile in der Datenbank
  • 37. Datenbankobjekte DOAG-DB-Konferenz 2019: Das Data-Dictionary37 26.05.19 Data Dictionary View / V$-View Inhalt/Bedeutung DBA_OBJECTS alle Objekte in der Datenbank DBA_TABLES alle Tabellen in der Datenbank DBA_VIEWS alle Views DBA_TAB_COLUMNS Spalten aller Tabellen (und Views) DBA_INDEXES alle Indizes DBA_IND_COLUMNS indizierte Spalten DBA_CONSTRAINTS alle Constraints DBA_CONS_COLUMNS In den Constraints genutzte Spalten
  • 38. Sessions, Transaktionen, Prozesse, SQL DOAG-DB-Konferenz 2019: Das Data-Dictionary38 26.05.19 Data Dictionary View / V$-View Inhalt/Bedeutung V$SESSION alle Datenbank-Sessions (inkl. Hintergrundprozesse der Instanz) V$SESSION_CONNECT_INFO Wie sind die Sessions angemeldet (z.B. Client- Version, Verschlüsselung Ja/Nein) V$PROCESS aktive Prozesse V$TRANSACTION aktuelle Transaktionen in der Datenbank V$SQL SQL-Befehle im SQL-Shared Area inkl. StatistikenV$SQLTEXT V$SQLAREA
  • 39. Memory-Informationen DOAG-DB-Konferenz 2019: Das Data-Dictionary39 26.05.19 Data Dictionary View / V$-View Inhalt/Bedeutung V$SGA Überblick über die Größe der SGA-Komponenten V$SGAINFO Größe der SGA-Komponenten (detaillierter) V$SGASTAT Größen der "Unter-Komponenten" der SGA- Komponenten V$PGASTAT PGA-Statistiken V$DB_CACHE_ADVICE Empfehlungen zur Größe des DB-Caches V$SHARED_POOL_ADVICE Empfehlungen zur Größe des Shared Pools
  • 40. Instanz-, System- und Sessionstatistiken DOAG-DB-Konferenz 2019: Das Data-Dictionary40 26.05.19 Data Dictionary View / V$-View Inhalt/Bedeutung V$SYSSTAT Systemstatistiken V$SESSTAT Statistiken einzelner Sessions V$WAITSTAT Informationen zu "Wartezuständen" V$OSSTAT Betriebssystemstatistiken V$MYSTAT Statistiken "meiner" Session V$SQLSTATS Informationen zur Ausführung einzelner SQL-Befehle V$STATNAME Namen der Statistiken
  • 41. DOAG-DB-Konferenz 2019: Das Data-Dictionary41 26.05.19 Beispielabfragen
  • 42. Beispiel 1: Tablespaces und Datafiles DOAG-DB-Konferenz 2019: Das Data-Dictionary42 26.05.19 SQL> select t.tablespace_name,t.block_size,t.status,t.contents, 2 count(f.file_name) no_files,trunc(sum(f.bytes)/1024/1024) size_mb 3 from DBA_TABLESPACES t,DBA_DATA_FILES f 4 where f.tablespace_name=t.tablespace_name 5 group by t.tablespace_name,t.block_size,t.status,t.contents; TABLESPACE_NAME BLOCK_SIZE STATUS CONTENTS NO_FILES SIZE_MB -------------------- ---------- --------- ---------- ---------- ---------- SYSTEM 8192 ONLINE PERMANENT 1 960 UNDOTBS1 8192 ONLINE UNDO 1 1024 ILMTBS 8192 ONLINE PERMANENT 1 20 SYSAUX 8192 ONLINE PERMANENT 1 930 USERS 8192 ONLINE PERMANENT 1 171 USERS2 8192 ONLINE PERMANENT 1 10 EXAMPLE 8192 ONLINE PERMANENT 1 1280
  • 43. Beispiel 2: Tabellen ohne PK oder Unique Constraint DOAG-DB-Konferenz 2019: Das Data-Dictionary43 26.05.19 SELECT owner, table_name FROM dba_tables MINUS SELECT owner, table_name FROM dba_constraints WHERE constraint_type IN ('P','U');
  • 44. Beispiel 3: Informationen zu den Redolog-Dateien DOAG-DB-Konferenz 2019: Das Data-Dictionary44 26.05.19 SQL> SELECT lf.group#, lf.member, lg.bytes 2 FROM v$logfile lf, v$log lg 3 WHERE lf.group#=lg.group# GROUP# MEMBER BYTES ------- -------------------------------------- -------- 1 /u01/oradata/DB1/redog1m1DB1.dbf 16777216 1 /u02/oradata/DB1/redog1m2DB1.dbf 16777216 2 /u01/oradata/DB1/redog2m1DB1.dbf 16777216 2 /u02/oradata/DB1/redog2m2DB1.dbf 16777216
  • 45. Beispiel 4: Session-Informationen DOAG-DB-Konferenz 2019: Das Data-Dictionary45 26.05.19 SQL> SELECT P.SPID,S.SID,S.SERIAL#,S.USERNAME,S.STATUS,S.PROGRAM,S.MACHINE,S.OSUSER 2 FROM V$PROCESS P,V$SESSION S 3 WHERE S.PADDR = P.ADDR AND P.BACKGROUND IS NULL; SPID SID SERIAL# USERNAME STATUS PROGRAM MACHINE OSUSER ----- ----- --------- ---------- -------- -------------------- ---------- ------ 3576 462 5111 SYS ACTIVE sqlplus@training19c .. training19c oracle 10419 3 48528 HR INACTIVE SQL Developer MacBook markus 8771 500 65116 SYS INACTIVE SQL Developer MacBook markus
  • 46. Bezeichnung Präsentation46 26.05.19 Weitere Informationen • Skript-Sammlungen • https://oracle-base.com/dba/scripts • Trivadis-Skripte (Download via https://www.trivadis.com/en/articles-presentations) • "Wichtige DBA-Views auf einer DIN A4-Seite": https://www.markusdba.de/wp-content/uploads/2019/05/auswahl-dba-views-a4-v00.pdf
  • 47. Fragen & Antworten Markus Flechtner Principal Consultant Tel. +49 211 5866 64725 Markus.Flechtner@Trivadis.com @markusdba http://markusdba.de Vortrag zum Download verfügbar unter https://www.slideshare.net/markusflechtner Bitte die Vortragsbewertung nicht vergessen – Danke! 26.05.19 DOAG-DB-Konferenz 2019: Das Data-Dictionary47 Heute, 17:15: Stairway to Heaven - Die Zukunft des DBA Was begegnet mir auf dem Weg in die Cloud? Pinwand für Fragen und Anmerkungen im Foyer => Antworten gibt es in der Open-Mic-Session