Oracle: Unterschied zwischen den Versionen
Aus MeinWiki
(→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
Inhaltsverzeichnis
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.