Datenbankadministration � Oracle by d6p9V2

VIEWS: 6 PAGES: 22

									                                           Oracle

1. Wofür ist ein Rollback-Segment da ? (2 Gründe) .............................................................. 3
2. Bestimmter Speicherparameter für Rollback-Segmente, der best. Größe festlegt:
Bedeutung ? ................................................................................................................................ 3
3. Wie wird eine Tabelle angelegt? ( SQL-Statement ) ......................................................... 3
4. High- Watermark: Wozu ist sie da ? .................................................................................. 3
5. a) Welche verschiedenen Index-Typen gibt es ? ................................................................ 4
6. Kann man ein Index löschen ? Mit welchem Kommando ? .............................................. 5
7. Testfrage ............................................................................................................................. 5
8. Welche Constraints gibt es? ............................................................................................... 5
9. Welche Zustände kann Constraint haben ? ........................................................................ 6
10.     Was ist der Sinn von deferred (aufgeschobene) Constraints. ......................................... 6
11.     Shared Pool, Buffer Cache ? .......................................................................................... 6
12.     Instanz - - was ist eine Instanz, wie ist sie aufgebaut ? .................................................. 7
13.     Wie sind die Verschachtelungen in einer Instanz ? Die jeweiligen Speicherbereich-
Untergruppen. ............................................................................................................................. 7
14.     Aus welchen zwei Komponenten besteht Shared Pool ? ............................................... 8
15.     PGA (Program Global Area)? Was ist da drin ? ............................................................ 9
16.     Bestandteile von SGA (System Global Area) ? ............................................................. 9
17.     Für was ist ein Buffer Cache, Shared Pool da? Welche Daten werden gecacht ? .......... 9
18.     Was steht im Shared Pol drin, kann ich die Grösse ändern ? ....................................... 10
19.     Kann ich die Größe des Buffer Caches ändern? <-Frage laut meinen Unterlagen ...... 10
20.     Was sind Redo-Log Dateien? Wofür sind sie da? Wann nimmt man sie ? Was können
sie ? Wie können sie archiviert werden? (2 Verfahren) ........................................................... 10
21.     Was ist Log Switch ? .................................................................................................... 11
22.     Bestimmte Fehlerzustände. Was passiert ...? ............................................................... 11
23.     Was passiert, wenn ich nicht archivieren kann ?.......................................................... 12
24.     Anlegen und Umbenennen von Redo-Log-Gruppen. Muss dafür schon eine bestimmte
Datei da sein ? .......................................................................................................................... 12
25.     Privileg, um Privilegien weiter zu geben. .................................................................... 13
26.     Wie vergebe ich Privilegien, wie entziehe ich Privilegien? (SQL-Statements) ........... 13
27.     Superuser auf DB? (sys as sysdba). Rollen des Superusers - welche bestimmte
Privilegien hat er ?.................................................................................................................... 14
28.     Können Rollen dynamisch aktiviert werden ? ............................................................. 14
29.     Wenn ich einen User lösche, welche Dinge muss ich beachten ? ................................ 14
30.     Wie kann ich das Passwort eines Users ändern ? ......................................................... 14
31.     Welche Dateien sind auf Clientseite / Serverseite notwendig, um eine Net 8-
Verbindung zu realisieren ? ...................................................................................................... 14
32.     Listener - - Bedingungen z.B Name, Standardname, usw.? ......................................... 15
33.     Verbindungsaufbau über Listener zwischen Client und Server. (5 Schritte, Richtige
Reihenfolge). ............................................................................................................................ 15
34.     Wie kann ich den Listener administrieren?  Tool ?.................................................. 15
35.     Hostnameadapter - - über Rechnername auf DB: bestimmte Bedingungen dafür! ...... 15
36.     Wie lege ich ein Kommunikations-Protokoll fest ? ..................................................... 16
37.     Prozesse, die dabei (Komm.-Protokol) beteiligt sind ? (Server Prozess, Listener
Prozesse, User Prozesse) .......................................................................................................... 16
38.     Prozesse auf der Instanz. Für was sind diese zuständig? Wovon sind die Aktionen der
Prozesse abhängig? ( z.b. PMON, SMON ) ............................................................................. 16

                                                                    -1-
39.    Was passiert bei Commit ? ........................................................................................... 16
40.    Startphasen der DB. Was passiert ? Wie kann ich hin und her wechseln? Wie kann ich
die DB herunterfahren ? ........................................................................................................... 16
41.    Was ist ein Checkpoint ? .............................................................................................. 16
42.    Wie kann ich mir Infos zu dem DB-Status / Archiv-Modus anzeigen lassen? (SQL-
Statement)................................................................................................................................. 16
43.    Standardkonfiguration von DB ? .................................................................................. 16
44.    ?? .................................................................................................................................. 16
45.    Einzelbestandteile einer Instanz ? ................................................................................ 16
46.    Wie erfolgt die Authentifizierung für privilegierte Nutzer, wenn die DB unten /
herunter-gefahren ist? ............................................................................................................... 16
47.    Datenfiles? Z.b. wie unbenennen ................................................................................. 16
48.    Was sind Datenbank-Dateien? (2 Typen) .................................................................... 17
49.    Wie kann man Datenfiles umbenennen? Welchen Aktionen verwendet man ?........... 17
50.    Aus was besteht ein Datenfile ? ................................................................................... 17
51.    Sind Änderungen an System Tablespaces online oder offline möglich ? .................... 18
52.    ’ALTER TABLESPACE’ - - es gibt bestimmte Dateien, die damit nicht geändert
werden können (brauchen Infos von bestimmten ??).............................................................. 18
53.    Wie kann man Dateien umbenennen ? ......................................................................... 19
54.    Kann ich Datenfiles vergrößern/verkleinern oder verändern ? JA ............................... 19
55.    Kontrolldateien ? Einsatz, Sicherung (SQL-Statements), Inhalt, Einlesen ? Was steht
in Kontrolldateien ? Wie werden Kontrolldateien gespiegelt ? (5.Punkteplan ) ...................... 20
56.    Archive Logmodus der / DB: bestimmte Dinge, die man da durchführen kann ? ....... 21
57.    Vor- und Nachteile von Recovery im Noarchive-Modus ?.......................................... 21
58.    Open/Close Database Backup: Aktionen für Online/Offline Backup ? (2 Kochrezepte)
       22
59.    Voraussetzungen für Open Database Backup ? ........................................................... 22
60.    DB im Archive Log Modus: welche Vorraussetzungen für Recovery? (Stichwort: DB
wieder vollständig herstellen) .................................................................................................. 22
61.    Recovern offene / geschlossene DB (5 Punkteplan) .................................................... 22




                                                                    -2-
   1. Wofür ist ein Rollback-Segment da ? (2 Gründe)
A: Vor Änderungen sichert der Server-Prozess den alten Wert in einem Rollback-Segment
   (bei 9i auch Undo-Tablespace möglich). Dieses Zustandsabbild wird verwendet um:
      Änderungen rückgängig zu machen (Rollback der Transaktion)
      Lesekonsistenz sicherstellen; d.h. andere Transaktionen sehen keine Änderungen,
          welche noch nicht festgeschrieben sind
      Im Fehlerfall kann wieder ein konsistenter Zustand hergestellt werden

2. Bestimmter Speicherparameter für Rollback-Segmente, der best. Größe festlegt:
   Bedeutung ?
A: Der Parameter OPTIMAL gibt die Größe in Byte an, auf die ein Rollback-Segment, falls
   möglich, schrumpfen muss. Wird der OPTIMAL angegeben, kann ein Rollback-Segment
   nach dem Abschluss von Transaktionen, welche das Wachstum verursacht haben,
   Speicherplatz wieder freigeben.
   Die Freigabe wird erst nach Abschluss der Transaktion durchgeführt. Die Freigabe wird
   nur durchgeführt, wenn der Kopf von einem Extent in das nächste wechselt.
   Zur Freigabe müssen zwei Bedingungen erfüllt sein:
      Die aktuelle Größe des Rollback-Segment muss OPTIMAL überschreiten.
      Es muss zusammenhängende inaktive Extents geben
   Der Oracle Server gibt immer zuerst die ältesten inaktiven Extents frei, da diese
   wahrscheinlich am wenigsten für die Lesekonsistenz benötigt werden.


3. Wie wird eine Tabelle angelegt? ( SQL-Statement )
A: Syntax :
   CREATE TABLE [ schema. ] table_name
             ( column datatype [ , column datatype ] . . . )
             [ TABLESPACE tablespace ]
             [ PCTFREE integer ]
             [ PCTUSED integer ]
             [ INITRANS integer ]
             [ MAXTRANS integer ]
             [ STORAGE storage_clause ]
             [ LOGGING | NOLOGGING ]
             [ CACHE | NOCACHE ]

   Beispiel:
   CREATE TABLE employee (
      id         NUMBER(7),
      last_name  VARCHAR(25),
      dept_id    NUMBER(7),
      PCTFREE 20 PCTUSED 50
      STORAGE ( INITIAL                     100K
                 NEXT                       100K
                 PCTINCREASE                0
                 MAXEXTENTS                 100)
      TABLESPACE tbs_name;

4. High- Watermark: Wozu ist sie da ?
A: Die High-Watermark dient dazu, festzustellen bis zu welcher Grenze das letzte Extent
   eines Segments tatsächlich verwendet wird. Das letzte Extent eines Segment muss somit
   nicht komplett nach irgendwelchen Datensätzen durchsucht werden, sondern nur bis zur
   High-Watermark. Für die High-Watermark gilt folgendes:
     Die High-Watermark gibt den letzten Block einer Tabelle an, der jemals
     verwendet wurde.
     Werden Daten eingefügt wird die High-Watermark auf den letzten,
                                             -3-
       verwendeten Block hochgesetzt.
       Werden Zeilen aus der Tabelle gelöscht (mit DELETE), wird die High-
       Watermark nicht zurückgesetzt.
       Ein Full Table Scan wird immer bis zur High - Watermark durchgeführt.

   Wie kann High - Watermark verschoben werden ?
    Speicher manuell freigeben
   Wenn einer Tabelle große Extents zugewiesen wurden, diese aber nicht ganz ausgenutzt
   werden, ist es möglich diesen Speicherplatz freizugeben und somit für andere Segmente
   im Tablespace verfügbar zu machen. Es kann nur Speicher freigegeben werden, der
   über der High - Watermark liegt ( d.h. High - Watermark kann verschoben werden)

   Mit folgendem Befehl wird der Speicher freigegeben:
   Syntax:
   ALTER TABLE [ schema. ] table
   DEALLOCATE UNUSED [ KEEP integer [ K | M ] ]

   KEEP gibt die Anzahl Bytes über der High - Watermark an, die für die Tabelle
   zurückbehalten werden sollen. Es kann nur Platz in Extents höher MINEXTENTS
   freigegeben werden.

5. a) Welche verschiedenen Index-Typen gibt es ?
      B*-Baum-Index,
      Reverse Key Index,
      Bitmap-Index

5. b) Wie ist ein B* - Baum - Index aufgebaut ?
   A:  Struktur eines B* - Baum - Index
      An der Spitze liegt die Wurzel mit Einträgen, die auf die nächste Ebene des Index
      zeigen. Auf der nächsten Ebene gibt es Verzweigungsblöcke, die wiederum auf Blöcke
      der nächsten Ebene im Index zeigen. Auf der untersten Ebene sind die Leaf Knoten,
      die Index-Einträge enthalten, die auf die Zeilen in der Tabelle zeigen. Die Leaf Blöcke
      sind doppelt verkettet, um das Durchsuchen des Index in auf- und absteigender
      Reihenfolge der Schlüsselwerte zu erleichtern.

      Format der Index-Leaf-Einträge
     Ein Index-Eintrag besteht aus:
      Eintrag-Header, der die Anzahl der Spalten- und Sperr-Informationen speichert
      Paare aus Länge und Wert von Schlüsselspalten, die die Größe einer Spalte im
        Schlüssel angeben, gefolgt vom Spaltenwert.
      Die Anzahl dieser Paare entspricht dem Maximum der Spalten im Index.
      ROWID der Zeile, die die Schlüsselwerte enthält.

     Schlüsselwerte werden wiederholt, wenn es mehrere Zeilen mit dem gleichen
     Schlüsselwert gibt.

5. c) Wie ist ein Reverse Key Index aufgebaut ?
   A:  Struktur eines Reverse Key Index
      Im Gegensatz zu einem regulären B*- Baum -Index kehrt ein Reverse Key Index die
      Bytes jeder Spalte (außer ROWID) des Index um, hält aber die Reihenfolge der
      Spalten ein. Wenn Datensätze für einen aufsteigenden Schlüssel, wie eine vom
      System generierte Angestelltennummer, eingefügt werden, können I/O Engpässe
      auftreten, da alle Änderungen an der selben Stelle im Index-Baum auftreten. Durch
      eine Umkehrung dieser Nummer werden die Änderungen gleichmäßiger über den
      gesamten Index-Baum verteilt.


                                             -4-
     Beim Wachsen des Index-Baumes wird zudem ein gleichmäßigeres Wachstum erreicht
     und eine Schiefverteilung innerhalb des Baumes vermieden, da nicht nur an der
     rechten Seite des Index-Baumes neue Werte eingefügt werden.
     Reverse Key Indizes sind nur für Abfragen mit dem “=“-Operator vorteilhaft. Da
     lexikalisch nebeneinander liegende Schlüssel in einem Reverse Key Index nicht
     nebeneinander gespeichert werden, können Abfragen über Bereiche mit einem
     solchen Index nicht durchgeführt werden.

5. d) Wie ist ein Bitmap-Index aufgebaut ?
   A:  Struktur eines Bitmap-Index Index
      Ein Bitmap-Index ist auch als B*- Baum- Index organisiert. Die Leaf Knoten speichern
      aber ein Bitmap für einen Schlüsselwert, anstelle einer Liste von ROWID‘s. Wenn ein
      Bit gesetzt ist, bedeutet dies, dass die Zeile mit der korrespondierenden ROWID den
      Schlüsselwert enthält.

     Für Bitmap-Indizes gilt:
      Bitmap-Indizes sind sinnvoll wenn es sich um Schlüsselspalten mit niederer
         Kardinalität handelt.
      Änderungen von Schlüsselspalten sind sehr aufwändig
      In Abfragen mit OR-Prädikaten sehr effizient
      Für Data Warehousing geeignet

6. Kann man ein Index löschen ? Mit welchem Kommando ?
A: Es kann nötig sein, einen Index zu löschen wenn:
        Er fehlerhaft ist,
        Nicht mehr benötigt wird,
        Vor dem Laden von Massendaten (danach wieder neu erzeugen)

   Syntax:
   DROP INDEX [ schema. ] index_name

   Beispiel:
   DROP INDEX hr.employee_name_idx; DROP INDEX hr.employee_name_idx;


7. Testfrage




8. Welche Constraints gibt es?

   Es gibt 5 Arten von Constraints !

       -   NOT NULL gibt an, dass eine Spalte keine NULL- Werte enthalten kann
       -   UNIQUE gibt eine Spalte oder eine Kombination von Spalten an, die eindeutig
           sind
       -   PRIMARY KEY gibt eine Spalte oder eine Kombination von Spalten an, die
           Primärschüssel der Tabelle sind
       -   FOREIGN KEY gibt eine Spalte oder eine Kombination von Spalten an, die
           Fremdschlüssel in einem referentiellen Integritäts - Constraint sind
       -   CHECK gibt eine Bedingung an, die jede Zeile der Tabelle erfüllen muss



                                            -5-
9. Welche Zustände kann Constraint haben ?

   Es gibt 4 Zustände von Constraints !

   Deaktiviert mit NOVALIDATE :
   Daten die eingefügt werden sowie Daten in der Tabelle genügen evtl. nicht den durch
   das Constraint festgelegten Regeln.
  Deaktiviert mit VALIDATE :
  Ein Constraint in diesem Zustand erlaubt keine Änderung der Spalten des Constraint. Der
Index für das Constraint wird gelöscht, das Constraint ist ausgeschaltet.


   Aktiviert mit NOVALIDATE :
   Es können keine neuen Daten eingetragen werden welche das
   Constraint verletzen, die Daten in der Tabelle können jedoch das Constraint verletzen.
   Aktiviert mit VALIDATE :
   Alle Daten in der Tabelle erfüllen garantiert das Constraint. Außerdem wird verhindert,
dass ungültige Daten eingetragen werden.

ALTER TABLE [ schema. ] table_name
ENABLE NOVALIDATE | VALIDATE {CONSTRAINT
constraint_name
| PRIMARY KEY
| UNIQUE [ column_name [ ,
column_name ] . . . ) }
[ USING INDEX index_clause ]
[ EXCEPTIONS INTO [ schema. ] table ]


10. Was ist der Sinn von deferred (aufgeschobene) Constraints.

Aufgeschobene Constraints :

Mit aufgeschobenen Constraints kann die Stelle in einer Transaktion definiert werden, in der
ein Constraint geprüft wird. Hierzu kann das Constraint entsprechend definiert werden.
Aufgeschobene Constraints werden nur geprüft wenn eine Transaktion ein Commit
durchführt. Werden Constraint-Verletzungen festgestellt, wird die gesamte Transaktion
zurückgerollt. Diese Art von Constraints ist in einer Foreign-Key-Beziehung sinnvoll wo
Eltern- und Kindzeilen gleichzeitig eingetragen werden.

Sofortige Constraints (nondeferred bzw. immediate) :
Sofortige Constraints werden am Ende jeder DML- Anweisung geprüft. Bei einer Constraint-
Verletzung wird die Anweisung zurückgerollt.

Änderung auf Session - Ebene :
ALTER SESSION
SET CONSTRAINT [ S ] =
(IMMEDIATE | DEFERRED | DEFAULT)

Änderung des Constraint :
SET CONSTRAINT [ S ]
{ constraint_name [ , constraint_name ] . . .
| ALL }
(IMMEDIATE | DEFERRED }

11. Shared Pool, Buffer Cache ?

                                                -6-
System Global Area (SGA)
Die SGA enthält Daten und Kontrollinformationen für den Oracle Server. Die SGA liegt im
Speicher des Rechners auf dem der Oracle Server installiert ist.
Sie besteht aus :
•Shared Pool : Speichert die zuletzt ausgeführten SQL -Anweisungen und die zuletzt
verwendeten Daten des Data Dictionary
•Datenbank Buffer Cache : Speichert die zuletzt verwendeten Daten.
•Redo Log Buffer : Registriert Änderungen der Datenbank
•Java Pool : Speichert Java Code
•Large Pool : Speichert große Speicherstrukturen, die nicht direkt mit der Verarbeitung von
SQL - Statements zu tun haben

Datenbank Buffer Cache :
Beim Bearbeiten einer Anfrage werden die benötigten Blöcke zuerst im Buffer Cache
gesucht. Ist der Block nicht vorhanden so wird er vom Server-Prozess aus der Datendatei
gelesen. Eine Kopie wird in den Buffer Cache geschrieben. Benötigen nachfolgende
Anweisung auch diesen Block, so ist kein physikalisches Lesen von der Platte notwendig.
Der Buffer Cache wird nach eine LRU Algorithmus verwaltet um ggf. Platz für neue Blöcke
zu schaffen. Die Größe eines Buffer im Buffer Cache entspricht der Größe eines Oracle
Blocksund wird mit dem Initialisierungsparameter DB_BLOCK_SIZE bestimmt. Die Größe
des Buffer Cache wird dann über die Anzahl der Buffer mit dem Initialisierungsparameter
DB_BLOCK_BUFFERS festgelegt.

Redo Log Buffer :
Der Server Prozess speichert die Änderungen an Datendatei-Blöcken im Redo LogBuffer.
Eigenschaften :
•Protokollierung des geänderten Blocks :
                                •Ort der Änderung
                                •Neuer Wert
                                •Es wird nur protokolliert welche Bytes geändert wurden
•Wird sequentiell genutzt
•Zyklischer Buffer
•Größe wird über Initialisierungsparameter LOG_BUFFER festgelegt.

12. Instanz - - was ist eine Instanz, wie ist sie aufgebaut ?

   Eine Instanz ist eine Kombination aus Hintergrundprozessen und Speicherstrukturen
   Eine Instanz muss gestartet sein um Zugriff auf die Daten der Datenbank zu haben

   Aufbau einer Instanz :
   • SGA (System Global Area) ist ein Speicherbereich in dem Datenbankinformationen
   gespeichert werden, die sich Datenbankprozesse teilen (zentraler Speicher)
   • Hintergrundprozesse führen Funktionen für einen aufrufenden Prozess durch. Sie
   führen I/O durch und überwachen andere Oracle Prozesse um Parallelität, Performance
   und Zuverlässigkeit zu erhöhen
   1 Instanz kann zur einer Datenbank gehören
   1 Datenbank kann zu mehreren Instanzen gehören

13. Wie sind die Verschachtelungen in einer Instanz ? Die jeweiligen Speicherbereich-
   Untergruppen.




                                                -7-
14. Aus welchen zwei Komponenten besteht Shared Pool ?

Die Größe des Shared Pool wird durch den InitialisierungsparameterSHARED_POOL_SIZE
angegeben.Der Shared Pool besteht aus zwei Hauptkomponenten :



Library Cache :
Wird eine SQL- Anweisung erneut ausgeführt und der shared SQL- Bereich (Library Cache)
enthält noch den Ausführungsplan für die Anweisung, dann muss der Server - Prozess die
Anweisung nicht erneut parsen. Der Library Cache belegt immer 4/5 des Shared Pool (fest
vorgegeben). Der Library Cache wird nach einem LRU (least recently used) Algorithmus
verwaltet.
Der shared SQL - Bereich enthält :
•Text der SQL Anweisung
•Parse Baum
•Ausführungsplan (Explain plan)

Data Dictionary Cache :
Auch Dictionary- oder Row-Cache genannt, speichert die zuletzt verwendeten Definitionen
der Datenbank :
•Dateiinformationen
•Tabelleninformationen
•Informationen über Indizes
•Informationen über Spalten
•Benutzerprivilegien
•Andere Datenbankobjekte


                                           -8-
Während des Parsens werden mit diesen Informationen die Objektnamen in denSQL-
Anweisungen aufgelöst und Zugangsprivilegien überprüft. Gegebenenfallswerden die
Informationen aus den Datendateien nachgeladen (Server-Prozess)

15. PGA (Program Global Area)? Was ist da drin ?

Die Program Global Area ist ein Speicherbereich, der Daten und Kontrollinformationen für einen
einzelnen Server- oder Hintergrundprozess enthält. Sie wird jeweils nur von einem Prozess verwendet
und ist somit für jeden Prozess separat vorhanden.
Sie enthält folgende Komponenten:
• Sortierbereich
• Session Informationen
• Cursor Status
• Stack Space
Die PGA wird zugewiesen wenn der Prozess erzeugt wird, und freigegeben, wennder Prozess
beendet ist.

16. Bestandteile von SGA (System Global Area) ?

SGA (System Global Area) ist ein Speicherbereich in dem Datenbankinformationen gespeichert
werden.




Die SGA enthält Daten und Kontrollinformationen für den Oracle Server. Die SGA liegt im
Speicher des Rechners auf dem der Oracle Server installiert ist.
Sie besteht aus:
• Shared Pool:
    Speichert die zuletzt ausgeführten SQL-Anweisungen und die zuletzt verwendeten Daten des Data
    Dictionary
•   Datenbank Buffer Cache:
    Speichert die zuletzt verwendeten Daten.
•   Redo Log Buffer:
    Registriert Änderungen der Datenbank
    Optionale Speicherstrukturen:
•   Java Pool:
    Speichert Java Code
•   Large Pool:
    Speichert große Speicherstrukturen, die nicht direkt mit der Verarbeitung von
    SQL-Statements zu tun haben


17. Für was ist ein Buffer Cache, Shared Pool da? Welche Daten werden gecacht ?

•   Sared Pool: speichert die zuletzt ausgeführten SQL-Anweisungen und die zuletzt verwendeten
    Daten des Data Dictionary
•   Datenbank Buffer Cache: Speichert die zuletzt verwendeten Daten.

Datenbank Buffer Cache
Beim Bearbeiten einer Anfrage werden die benötigten Blöcke zuerst im Buffer Cache gesucht. Ist der
Block nicht vorhanden so wird er vom Server-Prozess aus der Datendatei gelesen. Eine Kopie wird
in den Buffer Cache geschrieben.



                                               -9-
Benötigen nachfolgende Anweisung auch diesen Block, so ist kein physikalisches Lesen von
der Platte notwendig.
Der Buffer Cache wird nach eine LRU Algorithmus verwaltet um ggf. Platz für neue Blöcke zu
schaffen.
Die Größe eines Buffer im Buffer Cache entspricht der Größe eines Oracle Blocks und wird mit dem
Initialisierungsparameter DB_BLOCK_SIZE bestimmt.
Die Größe des Buffer Cache wird dann über die Anzahl der Buffer mit dem
Initialisierungsparameter DB_BLOCK_BUFFERS festgelegt.

18. Was steht im Shared Pol drin, kann ich die Grösse ändern ?

Shared Pool:
Die Größe des Shared Pool wird durch den Initialisierungsparameter SHARED_POOL_SIZE
angegeben.
Der Shared Pool besteht aus zwei Hauptkomponenten:
Library Cache und Data Dictonairy

•   Library Cache
    Wird eine SQL-Anweisung erneut ausgeführt und der shared SQL-Bereich (Library
    Cache) enthält noch den Ausführungsplan für die Anweisung, dann muss der der
    Server-Prozess die Anweisung nicht erneut parsen. Der Library Cache belegt immer 4/5 des
    Shared Pool (fest vorgegeben). Der Library Cache wird nach einem LRU (least recently used)
    Algorithmus verwaltet.
    Der shared SQL-Bereich enthält:
    •Text der SQL Anweisung
    •Parse Baum
    •Ausführungsplan (Explain plan)

•   Data Dictionary Cache:
    Auch Dictionary- oder Row-Cache genannt, speichert die zuletzt verwendeten Definitionen
    der Datenbank:
    •Dateiinformationen
    •Tabelleninformationen
    •Informationen über Indizes
    •Informationen über Spalten
    •Benutzerprivilegien
    •Andere Datenbankobjekte
    Während des Parsens werden mit diesen Informationen die Objektnamen in den SQL-
    Anweisungen aufgelöst und Zugangsprivilegien überprüft. Gegebenenfalls werden die
    Informationen aus den Datendateien nachgeladen (Server-Prozess)


19. Kann ich die Größe des Buffer Caches ändern? <-Frage laut meinen Unterlagen

Beim Bearbeiten einer Anfrage werden die benötigten Blöcke zuerst im Buffer Cache gesucht. Ist der
Block nicht vorhanden so wird er vom Server-Prozess aus der Datendatei gelesen. Eine Kopie wird in
den Buffer Cache geschrieben.
Benötigen nachfolgende Anweisung auch diesen Block, so ist kein physikalisches Lesen von der
Platte notwendig.
Der Buffer Cache wird nach eine LRU Algorithmus verwaltet um ggf. Platz für neue Blöcke zu
schaffen.
Die Größe eines Buffer im Buffer Cache entspricht der Größe eines Oracle Blocks und wird mit
dem Initialisierungsparameter DB_BLOCK_SIZE bestimmt.
Die Größe des Buffer Cache wird dann über die Anzahl der Buffer mit dem
Initialisierungsparameter DB_BLOCK_BUFFERS festgelegt.
=> ja man kann die Größe verändern

20. Was sind Redo-Log Dateien? Wofür sind sie da? Wann nimmt man sie ? Was können sie
    ? Wie können sie archiviert werden? (2 Verfahren)


                                               - 10 -
• Redo Log Dateien enthalten die an der Datenbank vorgenommen Änderungen. Mit Ihnen
  kann eine Datenbank wiederhergestellt werden. Es werden mindestens zwei benötigt

•   Archivierte Redo Log Dateien sind offline Kopien der Redo Log Dateien, welche evtl. zur
    Wiederherstellung einer Oracle Datenbank benötigt werden


Hintergrundprozesse:
• Log Writer (LGWR): speichert Änderungen aus dem Redo Log Buffer in die Redo Log Dateien.
Optional:
• Archiver (ARC0): sichert die Online Redo Log Dateien als archivierte Log Dateien
   an eine andere Lokation. .


zusätzliche Informationen:
Redo Log Buffer:
Der Server Prozess speichert die Änderungen an Datendatei-Blöcken im Redo Log Buffer.
Eigenschaften:
        •Protokollierung des geänderten Blocks
        •Ort der Änderung
        •Neuer Wert
        •Es wird nur protokolliert welche Bytes geändert wurden
        •Wird sequentiell genutzt
        •Zyklischer Buffer
        •Größe wird über Initialisierungsparameter LOG_BUFFER festgelegt.


21. Was ist Log Switch ?

    Redo Log Switch: hierbei wird der aktuellen Redo Log-Gruppe eine Log Sequence-Nummer
    zugewiesen. sie wird zur Synchronisation verwendet. Log Switch tritt auf, wenn
         LGWR das Schreiben in einer Gruppe beendet und in einer anderen zu schreiben beginnt
         LGWR eine log-Datei Gruppe gefüllt hat
         manuell ausgelöst mit ALTER SYSTEM SWITCH LOGFILE
bei einem Log Switch wird automatisch ein Checkpoint erzeugt


22. Bestimmte Fehlerzustände. Was passiert ...?

    Fehler-Kategorien (Fehler-Typen) in einer Oracle DB-Umgebung:

        Anweisungsfehler
            Logischer Fehler in einer Anwendung  Anwendung berichtigen
            Constraints verletzt  Statement korrigieren
            Operationen ohne ausreichende Privilegien  nötige Privilegien vergeben
            Quota erreicht  könnte mit "ALTER USER ..." geändert werden
            Nicht genügend freier Speicherplatz  Speicherplatz zur Verfügung stellen

        Benutzer-Prozess-Fehler
            Session wird durch User nicht normal beendet
            Anwendungsfehler im Benutzerprogramm, welcher zum Abbruch der Session führt
            Benutzer-Prozess-Fehler wird von DBS selbst behoben. PMON-Prozess entdeckt nicht
           normal beendete Sessions, führt Rollback der Transaktion durch und gibt Sperren und
           Ressourcen frei

        Benutzer-Fehler
            Benutzer löscht oder leert versehentlich eine Tabelle
            Benutzer löscht Zeilen in einer Tabelle welche noch benötigt werden
            Benutzer schreibt Daten fest und stellt dann einen Fehler fest

        Instanz-Fehler

                                                 - 11 -
               Ursachen:
                Server wegen Stromausfall nicht verfügbar
                Hardwareproblem am Server
                BS-Absturz
                Einer der Oracle Hintergrundprozesse läuft auf einen Fehler
                Instanz führt automatisch beim Hochfahren nach einem dieser Fehler ein Instance
               Recovery durch. DBA braucht nicht eingreifen. Ursachenforschung jedoch unumgänglich
               um ein weiteres Auftreten des Fehlers im Vorfeld zu verhindern.

         Media-Fehler
             Headcrash der Platte
             Physikalische Probleme beim Lesen und Schreiben von und in DB-Dateien
             Dateien wurden versehentlich gelöscht


23. Was passiert, wenn ich nicht archivieren kann ?

       ??




24. Anlegen und Umbenennen von Redo-Log-Gruppen. Muss dafür schon eine bestimmte
   Datei da sein ?
Redo Log-Gruppen anlegen
   ALTER DATABASE database ADD LOGFILE [GROUP integer] filespec [, [GROUP integer]
   filespec ] ... ]

Redo Log-Member hinzufügen
   ALTER DATABASE database ADD LOGFILE MEMBER [ ‘filename‘ [REUSE] [,‘filename‘
   [REUSE] ] ... TO { GROUP integer | ( ‚filename‘ [, ‚filename‘ ] ... ) } ] .......

   Beim Anlegen eines Members ist der absolute Dateiname anzugeben, da die Dateien ansonsten im Default-Verzeichnis
   des Datenbank Servers angelegt werden. Existiert die Datei bereits, muss sie die selbe Größe haben und die Option
   REAUSE ist mit anzugeben. Die Zielgruppe kann entweder durch die Nummer der Gruppe oder durch Angabe eines oder
   mehrerer Member bestimmt werden.

   Member und Gruppen müssen nicht auf Betriebssystemebene kopiert werden, das macht Oracle
   automatisch! (im Gegensatz zu Kontrolldateien)

      Online Redo Log-Dateien Verschieben und Umbenennen:
      ALTER DATABASE database RENAME FILE ‘filename‘ [,‘filename‘ ] ... TO
      ‘filename‘ [,‘filename‘ ] ...

   Da der Oracle Server nur Dateizeiger verwaltet, müssen die Dateien mit Betriebssystemmitteln
   kopiert oder umbenannt werden.
   Beim Umbenennen muss die Datei auf Betriebssystemebene schon da sein!!


   Bsp. in Vorlesung:

   SQL> select group#, member from v$logfile;

      GROUP# MEMBER
   --------------------------------------------------------------------------------
          3                     /u01/oradata/dba13li/redo03a.log
          3                     /u03/oradata/dba13li/redo03c.log
          2                     /u01/oradata/dba13li/redo02a.log
          2                     /u03/oradata/dba13li/redo02c.log
          1                     /u01/oradata/dba13li/redo01a.log
          1                     /u03/oradata/dba13li/redo01c.log
   6 rows selected.

                                                                     - 12 -
   Anlegen:

   SQL> alter database add logfile member
    2 '/u02/oradata/dba13li/redo01b.log' to group 1,                                                Redo Log-Member
    3 '/u02/oradata/dba13li/redo02b.log' to group 2,                                                hinzufügen
    4 '/u02/oradata/dba13li/redo03b.log' to group 3
    5 ;

   Database altered.

   SQL> select group#, member from v$logfile;

      GROUP# MEMBER
   --------------------------------------------------------------------------------
          3                     /u01/oradata/dba13li/redo03a.log
          3                     /u03/oradata/dba13li/redo03c.log
          2                     /u01/oradata/dba13li/redo02a.log
          2                     /u03/oradata/dba13li/redo02c.log
          1                     /u01/oradata/dba13li/redo01a.log
          1                     /u03/oradata/dba13li/redo01c.log
          1                     /u02/oradata/dba13li/redo01b.log
          2                     /u02/oradata/dba13li/redo02b.log
          3                     /u02/oradata/dba13li/redo03b.log
   9 rows selected.

                                                                                      Umbenennen der Redo Log-Datei
   Umbenennen:                                                                        auf Betriebssystem-Ebene
   [dba13@i-ora-01 dba13]$ mv /u02/oradata/dba13li/redo03b.log /u02/oradata/dba13li /redo03be.log

   SQL> alter database rename file                                                    Umbenennen der Redo Log-Datei auf
    2 '/u02/oradata/dba13li/redo03b.log'                                              Datenbank-Ebene
    3 to '/u02/oradata/dba13li/redo03be.log';

   Database altered.




25. Privileg, um Privilegien weiter zu geben.

   GRANT CREATE SESSION, CREATE TABLE TO huber WITH ADMIN OPTION;
    User huber kann diese Rechte nun auch weiter geben

      Ein Berechtigungsempfänger mit ADMIN OPTION kann ein System-Privileg oder eine
      Rolle mit ADMIN OPTION weitergeben.
   Ein Benutzer mit dem System-Privileg GRANT ANY ROLE darf jede Rolle in der Datenbank
   vergeben.


26. Wie vergebe ich Privilegien, wie entziehe ich Privilegien? (SQL-Statements)

   Privilegien vergeben:

   GRANT {system_privileg | role } [ , {system_privileg | role } ] ...
      TO { user_name | role | PUBLIC} [ , { user_name | role | PUBLIC} ] …
      [ WITH ADMIN OPTION]

   Privilegien entziehen:

   REVOKE { system_priv | role } [ , { system_priv | role } ] ...
      FROM { user | role | PUBLIC } [, { user | role | PUBLIC } ] ...




                                                                     - 13 -
   Mit REVOKE können nur Privilegien entzogen werden, die direkt mit dem Befehl GRANT
   vergeben wurden
   Wenn jemand in der Privilegien-Kette gelöscht wird, so behalten die Anderen ihre Privilegien wie
   vorher -> Der Entzug eines System-Privilegs hat keine kaskadierende Wirkung, auch nicht, wenn
   das Priv. mit WITH ADMIN OPTION vergeben wurde


27. Superuser auf DB? (sys as sysdba). Rollen des Superusers - welche bestimmte Privilegien
   hat er ?
   Die User SYS und SYSTEM erhalten die DBA-Rolle und alle Systemprivilegien der Datenbank.
   SYS: Eigentümer des Data Dictionary
   SYSTEM: Eigentümer von zus. Internen Tabellen und Views (für Tools)

   Die Privilegien SYSDBA und SYSOPER (Superuser) können bei einer Authentifizierung über eine
   Passwortdatei verwendet werden.
   Anmelden als SYSDBA  jede beliebige Operation auf der Datenbank und deren Objekten ist
   erlaubt.


28. Können Rollen dynamisch aktiviert werden ?

   Ja, dynamische Privilegienverwaltung ist möglich.
Werden die einer Rolle zugehörigen Privilegien geändert, erhalten Benutzer, denen diese
Rolle zugewiesen wurde automatisch und sofort die geänderten Privilegien.

29. Wenn ich einen User lösche, welche Dinge muss ich beachten ?

   Befehl um Benutzer zu löschen: DROP USER user_name [CASCADE]

             Die Option CASCADE löscht alle Objekte im Schema, wenn das Schema Objekte enthält
             Ein Benutzer der momentan angemeldet ist kann nicht gelöscht werden

30. Wie kann ich das Passwort eines Users ändern ?

   ALTER USER user_name
   IDENTIFIED BY new_password
   PASSWORD EXPIRE;

31. Welche Dateien sind auf Clientseite / Serverseite notwendig, um eine Net 8-Verbindung
   zu realisieren ?

   (Oracle Net8 dient zur Kommunikation zwischen Client und Datenbankserver)

   man braucht Konfigurationsdateien, diese sind für
       Serverseite:
               -   listener.ora (=> wird zur Konfiguration des Listeners benötigt, ist nur auf der
                 Maschine vorhanden auf der der Listener läuft)
                   => im Skript (Kap. 2, Folie 16+17) stehen noch jede Menge Details von denen ich nicht
                   denke dass wir sie kennen müssen, ich denke die oben gestellte Frage ist damit genug
                   beantwortet...)
             Clientseite:
                   -    tnsnames.ora: für jede Netzwerkverbindung müssen , in Abhängigkeit vom
                     verwendeten Netzwerkprotokoll, verschiedene Angaben (werden Connectstring
                     genannt) getroffen werden:
                            Art des Protokolls (z.B. TCP)
                            Hostname (TCP)

                                                    - 14 -
                       Port (TCP)
                Über die Datei tnsnames.ora kann ein TNS-Alias-name (Connectdescriptor) in einen
                Connectstring aufgelöst werden.

                -      sqlnet.ora: in dieser Datei werden die clientseitigen Einstellungen des Net8
                    Client vorgenommen:
                           Methode zur Auflösung von Connectdescriptoren
                           Logging und Tracing
                           Authentifizierungseinstellungen
                           Standarddomäne

                => er fragt nur nach Dateien, ob er näheres dazu wissen will weiß ich nicht, ich habs halt mal
                dazu geschrieben...

32. Listener - - Bedingungen z.B Name, Standardname, usw.?

            Listener: ein zentraler Bestandteil der Kommunikation zwischen Oracle Client und Oracle
            Server ist der Listener Prozess:
            -   Ein Listener kann für mehrere Datenbanken arbeiten
            -   Mehrere Listener können für eine Datenbank arbeiten
            -   Ein Listener kann mit mehreren Protokollen arbeiten
            -   Der Standardname lautet LISTENER
            -   Der Name eines Listeners muss auf dem Rechner eindeutig sein

33. Verbindungsaufbau über Listener zwischen Client und Server. (5 Schritte, Richtige
   Reihenfolge).

       1.   Verbindungsanfrage des Client an den Listener
       2.   Prüfen der Verbindungsanfrage durch den Listener
       3.   Starten eines dedizierten Server Prozesses durch den Listener
       4.   Weitergabe der Verbindungsdaten zu dem Server Prozess an den Client
       5.   Herstellen der direkten Verbindung zwischen Client und Server Prozess

                => im Skript (Kap. 2, Folie 13) sind diese 5 Schritte noch bildlich dargestellt, leider etwas
                unübersichtlich...)

34. Wie kann ich den Listener administrieren?  Tool ?

   Mit LSNRCTL => ist Anwendung um den Listener zu kontrollieren, kann im interaktiven Modus
   oder im Batch Modus aufgerufen werden, zur Verfügung stehende Befehle können über den
   Befehl „help“ angezeigt werden.
   Die wichtigsten Befehle:
        START LISTENER
        STOP LISTENER

                => hoffe/denke das ist die richtige Antwort, aber sonst gibt es nichts mehr über den Listener...

35. Hostnameadapter - - über Rechnername auf DB: bestimmte Bedingungen dafür!

   Verbindungsaufbau zu einer Instanz mittels Rechnername;
   Bedingungen:
              -     TCP/ IP
              -     Port 1521 (ich hab mir da dazugeschrieben dass das der Standardport von Oracle
                ist, weiß aber nicht ob es stimmt...)
              -     Rechnername muss aufgelöst werden
              -     Auswahl der Instanz über Listener (GLOBAL_DBNAME in Listener.ora)

                                                    - 15 -
                -   NAMES.DIRECTORY_PATH (hostname) in Sqlnet.ora muss gesetzt sein


36. Wie lege ich ein Kommunikations-Protokoll fest ?

37. Prozesse, die dabei (Komm.-Protokol) beteiligt sind ? (Server Prozess, Listener Prozesse,
   User Prozesse)

38. Prozesse auf der Instanz. Für was sind diese zuständig? Wovon sind die Aktionen der
   Prozesse abhängig? ( z.b. PMON, SMON )

   Wann archiviert der Archiver ?  Stichwort : Abhängigkeiten / time out /
   Schwellenwert

39. Was passiert bei Commit ?

40. Startphasen der DB. Was passiert ? Wie kann ich hin und her wechseln? Wie kann ich die
   DB herunterfahren ?

41. Was ist ein Checkpoint ?

42. Wie kann ich mir Infos zu dem DB-Status / Archiv-Modus anzeigen lassen? (SQL-
   Statement)

43. Standardkonfiguration von DB ?

44. ??

45. Einzelbestandteile einer Instanz ?

46. Wie erfolgt die Authentifizierung für privilegierte Nutzer, wenn die DB unten / herunter-
   gefahren ist?
Es gibt zwei Arten der Berechtigungsprüfung/Authentifizierung für privilegierte Benutzer.
Prüfung durch das Betriebssystem (des DB-Servers) 43) Standardkonfiguration von DB?
??? Leider weiss ich nicht was hier genau gefragt ist??


47. Datenfiles? Z.b. wie unbenennen

Datenfiles umbenennen:
Man unterscheidet Datendateien von Nicht-System-Tablespaces und von System-
Tablespaces.
   1. Datendateien von Nicht-System-Tablespaces werden da sie keine aktiven
   Rollback und keine temporären Segmente enthalten mit ALTER TABLESPACE
   umbenannt bzw. verschoben. Nicht System-Tablesspaces enthalten die Benutzerdaten.
   Vorteil: nicht die ganze Datenbank muss heruntergefahren werden sondern nur der
   Tablespace offline gesetzt werden.(siehe Frage 49)
   2. Datendateien von System-Tablespaces werden da sie aktive Rollbacksegmente
   und das Data-Dictionary enthalten mit ALTER DATABASE umgenannt bzw.
   verschoben.
   System-Tablespace enthält das Data Dictionary und das System Rollback-Segment
   Sollte keine Benutzerdaten enthalten. .(siehe Frage 49)
   Nachteil: Datenbank muss vor dem Umbenennen heruntergefahren sein.



                                             - 16 -
48. Was sind Datenbank-Dateien? (2 Typen)
Eine Datenbank besteht aus drei Typen von Dateien:
Datendateien: aktuelle Daten der Datenbank, Data-Dictionary,Indizes Undo Informationen
     Eine Datendatei gehört genau zu einer Datenbank.
     Datendatein können bestimmte Einstellungen haben (Speicher, automatische
         Erweiterung)
     Eine oder mehrere Datendateien bilden einen Tablespace.
Redo Log Dateien: enthalten die Änderungen der Datenbank die notwendig sind um eine
Datenbank wieder herstellen zu könnnen. Es werden mind. 2 benötigt
 Kontrolldatein: Informationen zur Wartung und Überprüfung der Datenbankintegrität
(Identifikation der Datendatein Redo Log Dateien). Es wird mind 1 Kontrolldatei benötigt.

49. Wie kann man Datenfiles umbenennen? Welchen Aktionen verwendet man ?
Datendateien umbenennen entspricht Datendateien verschieben.
2 unterschiedliche Vorgehensweisen um Datendateien umzubenennen bzw. zu verschieben:
1. Umbenennen mit: ALTER TABLESPACE
                      RENAME FILE ’filename’ [,’filename]...
                      TO ’filename [,’filename’]…;
Mit diesem Befehl lassen sich Datendateien von Nicht-System-Tablespaces verschieben.
Tablespaces enthalten keine aktiven Rollback- und auch keine temporären Segmente.
Vorgehensweise:
     Tablespace offline setzen
        ALTER TABLESPACE ts_name OFFLINE ;
     Datendatei kopieren, verlegen mit Betriebssystemkommando (Copy-Befehl)
     Befehl ALTER TABLESPACE .... ausführen (Zeiger wird umgesetzt)
        Tablespace online setzen
        ALTER TABLESPACE ts_name ONLINE ;
     Wenn nötig (wenn kopiert wurde ?)Dateien mit Betriebssystemmitteln löschen
        (Delete-Befehl)


2. umbenennen mit:    ALTER DATABASE
                      RENAME FILE ’filename’ [,’filename]...
                      TO ’filename [,’filename’]…;
Mit diesem Befehl lassen sich Datendateien von System-Tablespaces und von
Tablesspaces mit aktiven Rollbacksegmenten verschieben.
     Datenbank herunterfahren
     Datendatei kopieren oder verlegen mit Betriebssystemkommando (Copy-Befehl)
     Befehl ALTER DATABASE .... ausführen (Zeiger wird umgesetzt)
     Datenbank öffnen
Wenn nötig (wenn kopiert wurde ?)Dateien mit Betriebssystemmitteln löschen (Delete-
Befehl)


50. Aus was besteht ein Datenfile ?

   Datendateien enthalten die aktuellen Daten der Datenbank, können aber auch andere Strukturen (Data
    Dictionary, Indizes, Undo Informationen etc.) enthalten.
   Eine Datendatei gehört genau zu einer Datenbank
   Datendateien können bestimmte Einstellungen haben (Speicher, automatische Erweiterung …)
   Eine oder mehrere Datendateien bilden einen Tablespace (logische Einheit)
   Rollbacksegment liegen in Datendateien.

Alle „dirty“ Buffers werden vom DBWn in die Datendateien geschrieben.



                                                   - 17 -
51. Sind Änderungen an System Tablespaces online oder offline möglich ?

System-Tablespace:
  Wird mit der Datenbank erzeugt
  Enthält das Data Dictionary und das System Rollback-Segment
  sollte keine Benutzerdaten enthalten


Außer dem SYSTEM Tablespace und dem Tablespace der die UNDO oder ROLLBACKSegmente
enthält können Tablespaces offline gesetzt werden, während die Datenbank weiterläuft.


Ein Tablespace ist normalerweise online, er kann jedoch offline gesetzt werden um:
 Einen Teil der Datenbank nicht verfügbar machen während der Rest normal im Zugriff ist
 Ein offline Tablespace Backup durchzuführen (geht auch online)
 Einen Tablespace oder eine Datendatei wiederherzustellen, während die Datenbank geöffnet ist
 Eine Datendatei zu verlagern, während die Datenbank offen ist

Außer dem System-Tablespace, Tablespaces mit aktiven Rollback-Segmenten und Tablespaces mit temporären
Segmenten kann ein Tablespace bei geöffneter Datenbank jederzeit offline gesetzt werden. Wird ein Tablespace
offline gesetzt werden auch alle zugehörigen Datendateien mit offline gesetzt.

ALTER TABLESPACE tablespace
{ ONLINE| OFFLINE [ NORMAL | TEMPORARY | IMMEDIATE | FOR RECOVER ] }


52. ’ALTER TABLESPACE’ - - es gibt bestimmte Dateien, die damit nicht geändert werden
    können (brauchen Infos von bestimmten ??)
     System-Tablespaces und Tablespaces mit aktiven Rollbacksegmenten,
      Tablespaces mit temporären Segmenten können damit nicht verändert werden.

         Frage: Welche Dateien kann man damit ändern ?
                 Tablespace, Nicht-System-Tablespaces

Mit dem Befehl ALTER TABLESPACE können die Default-Speicherdefinitionen eines Tablespace geändert
werden:

                 ALTER TABLESPACE tablespace
                 { MINIMUM EXTENT integer [ K | M ] | DEFAULT storage_clause }


- Tablespace bei geöffneter DB jederzeit offline setzen

        ALTER TABLESPACE tablespace
        { ONLINE | OFFLINE [ NORMAL | TEMPORARY | IMMEDIATE | FOR RECOVER ] }

- Hinzufügen einer Datendatei zum Tablespace:

                 ALTER TABLESPACE tablespace ADD DATAFILE filespec
                                    [ autoextend_clause ] [ , filespec [ autoextend_clause ] ] . . .


- Es lassen sich Datendateien von Nicht-System- Tablespaces verschieben, welche auch keine
  aktiven Rollback- und auch keine temporären Segmente enthalten:

            Tablespace offline setzen
            Datendatei mit Betriebssystemkommando verlegen oder kopieren
            Befehl ALTER TABLESPACE RENAME DATAFILE ausführen


                                                    - 18 -
            Tablespace online setzen
            Wenn noch nötig Dateien mit Betriebssystemmitteln löschen

        ALTER TABLESPACE ts_name
                    RENAME DATAFILE ’filename’ [ , ’filename’ ] . . .
                           TO ’filename’ [ , ’filename’ ] . . .


53. Wie kann man Dateien umbenennen ?

Umbenennen mit ALTER TABLESPACE: (Datendateien von Nicht-System-Tablespaces )

        ALTER TABLESPACE ts_name
              RENAME DATAFILE ’filename’ [ , ’filename’ ] . . .
                    TO ’filename’ [ , ’filename’ ] . . .



Umbenennen mit ALTER DATABASE:
   (Datendateien von System-Tablespaces und von Tablespaces mit aktiven Rollbacksegmenten)

        ALTER DATABASE
              RENAME FILE ’/disk3/ts_name2.dbf ’
                   TO ’/disk4/ts_name3.dbf ’ ;


Auf welche Files ist eine Umbenennung anwendbar ??
       Datendateien von Nicht-System-Tablespaces
       Datendateien von System-Tablespaces und von Tablespaces mit aktiven Rollbacksegmenten


54. Kann ich Datenfiles vergrößern/verkleinern oder verändern ? JA

Die Größe eines Tablespace kann auf 2 Arten geändert werden:
  Größe einer oder mehrerer Datendateien ändern
                 • Manuell:
                         ALTER DATABASE [ database ]
                                 DATAFILE ’filename’ [ , ’filename’ ] . . .
                                          RESIZE integer [ K | M] ;

        Die Größe verkleinern nur bis zum letzten Block, der Objekte enthält.
                • Automatisch über eine Autoextend-Klausel:

                          ALTER TABLESPACE tablespace
                                ADD DATAFILE filespec [ autoextend_clause ]
                                      [ , filespec [autoextend_clause ] ] . . .


        autoextend_clause : == [ AUTOEXTEND { OFF | ON [ NEXT integer [ K | M ] ]
                                  [ MAXSIZE UNLIMITED | integer [ K | M ] ] } ]

Für bestehende Datendateien lässt sich die automatische Erweiterung ebenfalls ein- und ausschalten:
                         ALTER DATABASE [ database ]
                                   DATAFILE ’filename’ [ , ’filename’ ] . . .
                                            autoextend_clause


 Hinzufügen einer Datendatei zum Tablespace:
               ALTER TABLESPACE tablespace
                       ADD DATAFILE filespec [ autoextend_clause ] [ ,

                                                     - 19 -
                                            filespec [ autoextend_clause] ] . . .

 Umbenennen mit ALTER TABLESPACE                     siehe 54.
 Umbenennen mit ALTER DATABASE


55. Kontrolldateien ? Einsatz, Sicherung (SQL-Statements), Inhalt, Einlesen ? Was steht in
    Kontrolldateien ? Wie werden Kontrolldateien gespiegelt ? (5.Punkteplan )

    Enthält Informationen zur Wartung und Überprüfung der DB-Integrität (Identifikation der
     Datendateien, Redo Log Dateien …).
    Kleine binäre Datei
    Erforderlich zum mounten und zum Betrieb ,wenn nicht mehr verfügbar, kommt die DB nicht mehr
    über die „nomount“ Phase hinaus
    Gehört zu einer einzigen DB
    Sollte gespiegelt werden; mind. eine Kontrolldatei nötigt!
   Verlust kann ein Recovery der DB erfordern
   muss während des Betriebs immer zum Schreiben verfügbar sein
   Schreibzugriff erfolgt während eines Checkpoints und bei Konfigurationsänderungen der Daten- oder Redo
    Logdateien.
   wird nur vom Oracle Server geändert ; weder DBA noch Enduser können die Kontrolldatei editieren.
   Kontrolldateien werden beim Erzeugen der DB oder nachträglich erstellt


Inhalt ( wird mitprotokolliert und gespeichert)

   DBname entweder aus Initialisierungsparameter DB_NAME
    oder Anweisung CREATE DATABASE.
   Die SID bei der Erzeugung der DB. Ebenso der Zeitstempel.
   Namen und Speicherorte der Datendateien und Online Redo Logdateien bei Erzeugung, Änderung und
    Löschung.Gleiches gilt für Tablespaces.
   Bei Logswitches, Log-Historie und Log-Sequence-Nummer, Logmode.
   Speicherort und Historie der Archivdateien.
   Checkpoint-Informationen
   Evtl. Rman-Informationen
   Header der Datendateien
   Best. Initparameter

zwei Arten von Abschnitten in der Kontrolldatei:
        •Wieder verwendbare (Rman Informationen)
        •Nicht wiederverwendbare




Spiegelung der Kontrolldatei
Der Oracle Server kann bis zu 8 identische Kontrolldateien gleichzeitig öffnen und beschreiben.
Pfad und Dateiname werden im Initialisierungsparameter CONTROL_FILES angegeben.

Spiegelung beim Erzeugen der Datenbank:
Wird die Datenbank erzeugt, werden alle im Initialisierungsparameter angegebenen Kontrolldateien erzeugt. Die
Dateinamen müssen den vollen Pfad, sowie den Namen der Datei enthalten.


(5.Punkteplan )  Nachträgliche Spiegelung :
Hinzufügen einer oder mehrerer Kontrolldateien bzw. Änderung des Speicherortes:


                                                     - 20 -
1. Logfileswitch ausführen und damit Checkpoint erzwingen (ALTER SYSTEM SWITCH LOGFILE;)
2. DB herunterfahren
3. Kopieren oder Verschieben der Kontrolldatei über das Betriebssystem (Berechtigungen beachten)
4. Parameter CONTROL_FILES anpassen
5. DB wieder hochfahren


56. Archive Logmodus der / DB: bestimmte Dinge, die man da durchführen kann ?

 Recovery Verfahren:
Die DB ist standardmäßig im NOARCHIVELOG-Modus konfiguriert

Der NOARCHIVELOG-Modus ist passend, wenn:
            o  Ein Datenverlust zwischen den Backups toleriert werden kann.
            o  Das Recovery durch erneutes Ausführen der Transaktionen (z.B. aus Batch-Dateien) schneller ist.
            o  Der Datenbestand sehr selten geändert wird (kein OLTP)



Der ARCHIVELOG-Modus ist vorzuziehen, wenn:
         o Die DB für ein Closed Database Backup nicht heruntergefahren werden kann.
         o Ein Datenverlust nicht toleriert werden kann.
         o Das Wiederherstellen über Archiv-Logs leichter und schneller ist als das erneute
            Ausführen der verloren gegangenen Transaktionen.

Eine volle Redo Log-Datei kann nicht verwendet werden, solange noch kein Checkpoint
stattgefunden hat und die Redo Log-Datei durch den Archiver gesichert worden ist. Die
Logsequence wird in der Kontrolldatei geführt. Archivdateien können für ein Media Recovery verwendet
werden.
  DB ist bei Media-Fehlern vor Datenverlust geschützt.
  Datenbank kann auch im Online-Betrieb gesichert werden.
  Wird ein Tablespace in Folge eines Media-Fehlers offline gesetzt bleibt der Rest der DB
     verfügbar, da Tablespaces (außer System) auch online wiederhergestellt werden können.
  Eine DB kann auch über den Zeitpunkt der letzten Sicherung hinaus wieder hergestellt werden.

Festlegen des Speicherortes der Archivdateien über Initialisierungsparameter:

                    „LOG_ARCHIVE_DEST = filename“

Ändern des DB-Modus  Hierzu muss sich die Datenbank in der Mount-Phase befinden
               ALTER DATABASE { ARCHIVELOG | NOARCHIVELOG }

Hinweis:
Durch das Einschalten des ARCHIVELOG-Modus in der DB wird nicht die automatische Archivierung
gestartet. Dies erfolgt über den Initialisierungsparameter

          LOG_ARCHIVE_START = TRUE

oder
        ALTER SYSTEM ARCHIVE LOG START TO ‘log_destination‘.
Die Archivierung kann aber auch manuell geschehen (ALTER SYSTEM ARCHIVE . . . )

57. Vor- und Nachteile von Recovery im Noarchive-Modus ?
     Vorteile:
-leicht durchzuführen, geringes Fehlerrisiko
-Die Recovery-Zeit entspricht der Zeit zum sichern aller Dateien
     Nachteile:
-Daten gehen verloren
-Die gesamte DB wird auf dem Sicherungsstand des letzten vollständigen, geschlossenen
Backups wiederhergestellt



                                                             - 21 -
-Beim Verlust nur einer Datendatei muss die gesamte DB aus dem letzten Backup
wiederhergestellt werden
58. Open/Close Database Backup: Aktionen für Online/Offline Backup ? (2 Kochrezepte)
59. Voraussetzungen für Open Database Backup ?
60. DB im Archive Log Modus: welche Vorraussetzungen für Recovery? (Stichwort: DB
    wieder vollständig herstellen)
61. Recovern offene / geschlossene DB (5 Punkteplan)




                                          - 22 -

								
To top