Oracle: Unterschied zwischen den Versionen

Aus MeinWiki
Wechseln zu: Navigation, Suche
(ODAC)
(Archivelog analysieren)
Zeile 109: Zeile 109:
 
*Inhalt anzeigen.
 
*Inhalt anzeigen.
 
  select * from V$LOGMNR_CONTENTS where rownum < 1000;
 
  select * from V$LOGMNR_CONTENTS where rownum < 1000;
 +
 +
column SQL_REDO format a80;
 +
column SQL_UNDO format a80;
 +
select SQL_REDO , SQL_UNDO from V$LOGMNR_CONTENTS where rownum < 1000;
 
*File entladen!!!!
 
*File entladen!!!!
 
  begin
 
  begin
Zeile 114: Zeile 118:
 
  end;  
 
  end;  
 
  /
 
  /
 +
 
== ODAC ==
 
== ODAC ==
 
*Installation lt. Anleitung.
 
*Installation lt. Anleitung.

Version vom 17. Mai 2019, 08:16 Uhr

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

Export / Import old

  • Export mit Parameterfile

Parameterfile:

FILE='/path/dump.dmp'
LOG='/path/log.log' 
STATISTICS=none 
OWNER=(DBUSER1,DBUSER2)

Befehl:

exp \'/ as sysdba\' PARFILE=/path/parameterfile.dat

Oracledump

  • 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

Fehlermeldung

  • ORA-39346: Datenverlust bei Zeichensatzkonvertierung für Objekt SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Export mit dem Parameter exclude=statistics ausführen.

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).

Archivelog analysieren

  • File laden
begin
sys.dbms_logmnr.add_logfile (logfilename => 'File-Path',options=>sys.dbms_logmnr.new);
sys.DBMS_LOGMNR.START_LOGMNR(options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG);
end;
/
  • Inhalt anzeigen.
select * from V$LOGMNR_CONTENTS where rownum < 1000;

column SQL_REDO format a80;
column SQL_UNDO format a80;
select SQL_REDO , SQL_UNDO from V$LOGMNR_CONTENTS where rownum < 1000;
  • File entladen!!!!
begin
sys.dbms_logmnr.end_logmnr;
end; 
/

ODAC

  • Installation lt. Anleitung.
  • Umgebungsvariable PAth anpassen.
  • TNS-Names erstellen.
  • Umgebungsvariable TNS_ADMIN erstellen.