Oracle

Aus MeinWiki
Wechseln zu: Navigation, Suche

Berechtigung verwalten

  • User Berechtigung auf ein Objekt erteilen. (All, Select, Insert, Update, Delete, Alter, Referenz, Index)
   grant "Privileges" on "object" to "user";
   grant "Privileges", "Privileges",  on "object" to "user";
  • User Berechtigung von ein Objekt entfernen. (All, Select, Insert, Update, Delete, Alter, Referenz, Index)
   revoke "Privileges" on "object" from "user";
  • User zu Gruppe hinzufügen
   grant "Role" to "user";
   grant "Role", "Role" to "user";
  • User von einer Gruppe entfernen
   revoke "Role" from "user";
  • User Berechtigung zum Ausführen von Funktionen/Prozeduren erteilen
   grant execute on "object" to "user";
  • User Berechtigung zum Ausführen von Funktionen/Prozeduren erteilen
   revoke execute on "object" from "user";
  • Passwortablauf der Benutzer über Profile deaktiveren. Wenn nötig das "DEFAULT"-Profile clonen.
  alter profile "DEFAULT" limit PASSWORD_REUSE_TIME UNLIMITED;
  alter profile "DEFAULT" limit PASSWORD_LIFE_TIME UNLIMITED;
  -- Abfragen --
  select username, account_status, expiry_date from dba_user;
  select * drom dba_profiles order by profile, resource_name;

Tablespace erweitern

  • um ein File.
   ALTER TABLESPACE "Tablespace" 
   ADD 
   DATAFILE '/opt/oracle/oradata/"SID"/"Tablespace".dbf' SIZE 100M 
   AUTOEXTEND 
   ON NEXT  100M MAXSIZE  2048M;
  • um mehrere Files.
   ALTER TABLESPACE "Tablespace" 
   ADD 
   DATAFILE '/opt/oracle/oradata/"SID"/"Tablespace".dbf' SIZE 100M 
   AUTOEXTEND 
   ON NEXT  100M MAXSIZE  2048M, '/opt/oracle/oradata/"SID"/"Tablespace"..dbf' SIZE 100M AUTOEXTEND 
   ON NEXT  100M MAXSIZE  2048M, '/opt/oracle/oradata/"SID"/"Tablespace"..dbf' SIZE 100M AUTOEXTEND 
   ON NEXT  100M MAXSIZE  2048M;
  • Autoextend erweitern.
   ALTER DATABASE DATAFILE '/opt/oracle/oradata/"SID"/"Tablespace".dbf' AUTOEXTEND ON MAXSIZE  768M

Hilfreiche Befehle

Feldlänge

  • Feldlänge die größer ist als abfragen.
   select substr("Column",0,255)  from "Table" where length(Column)> 255;
  • Feldlänge ändern, die größer ist als sind. Daten werden abgeschnitten.
   update "Table" set "Column" = substr("Column",0,255) where length("Column")> 255;

Oracle Dump Export/ Import

  • Dump Directory für Import oder Export erstellen
   CREATE DIRECTORY dmpdir-name AS 'Verzeichnis';
  • Export-Dump.
   expdp \'/ as sysdba\' dumpfile=file.dmp logfile=file.log schemas=SCHEMA-NAME directory=dmpdir-name version=10.2.0
  • Import-Dump.
   impdp \'/ as sysdba\' dumpfile=file.dmp logfile=file.log schemas=SCHEMA-NAME directory=dmpdir-name

Archivelog Änderungen anzeigen.

  select t.sid, s.name, t.value, r.username, r.program, r.type, r.module
  from v$sesstat t 
      join v$statname s on s.statistic# = t.statistic#
      join v$session r on r.sid = t.sid
  where name like '%redo entries%'
  order by t.value desc;

Patchmanagment

OPatch aktualisieren

Bevor neue Patches in die Oracleinstallation eingespielt werden könnne, muss das Patchtool "OPatch" auf den neusten Stand aktualisiert werden.

  • Parameter ORACLE_HOME überprüfen.
  • Inventory anzeigen (OPatchversion).
   $ORACLE_HOME/OPatch/opatch lsinventory
  • Patch entpacken. (muss nicht innerhalb der Oracleinstallation sein)
  • Verzeichnis $ORACLE_HOME/OPatch löschen.
  • Patch in das Verzeichnis kopieren(Berechtigung beachten).
  • Inventory anzeigen (OPatchversion).

Patch einspielen

  • Patch entpacken.
  • In das entpackte Verzeichnis wechseln.
  • Anforderung der Patchinstallation überprüfen.
   $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
  • Datenbank und Listner stoppen.
  • Patch einspielen.
   $ORACLE_HOME/OPatch/opatch apply
  • Installierte Patches anzeigen
  • Datenbank starten.
  • Scripte der Preinstallation ausführen (Readme-Datei).