Oracle: Unterschied zwischen den Versionen
Aus MeinWiki
(→Verbindung ORDS REST fehlerhaft =) |
(→ORDS Debugging aktivieren) |
||
Zeile 151: | Zeile 151: | ||
==== ORDS Debugging aktivieren==== | ==== ORDS Debugging aktivieren==== | ||
+ | Im Parameterfile folgende Einträge hinzufügen. | ||
+ | <entry key="debug.debugger">true</entry> | ||
+ | <entry key="debug.printDebugToScreen">true</entry> | ||
+ | <entry key="log.logging">true</entry> | ||
+ | <entry key="log.maxEntries">600</entry> |
Aktuelle Version vom 6. November 2020, 17:53 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;
Move Datefile
Online
- In der Enterprise Version ab Version 12.1 besteht die Möglichkeit online Datafiles zu verschieben.
select file_id, file_name FROM dba_data_files alter database move datafile "file_id oder file_name' to 'new_file_name'
Offline
select t.file_id, t.tablespace_name, t.file_name from dba_data_files t shutdown immediate; host mv file_name new_file_name alter database rename file 'file_name' to 'new_file_name'; alter database open;
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 version $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.
APEX
Fehler
Verbindung ORDS REST fehlerhaft
- The connection pool named: ords_rt is not correctly configured, due to the following error(s): ORA-28000: Account ist gesperrt
Datenbank User APEX_REST_PUBLIC_USER entsprerren.
ALTER USER APEX_REST_PUBLIC_USER IDENTIFIED BY "Passwort" ACCOUNT UNLOCK;
Verbindungseinstellung der ORDS Konfiguration überprüfen.
/u01/ords/conf/ords/conf/ords_rt.xml
Ggf. Passwort Parameter in der Konfiguration neu setzen. Unverschlüsselt mit !. Tomcat neu starten.
<entry key="db.password">!newpassword</entry>
ORDS Debugging aktivieren
Im Parameterfile folgende Einträge hinzufügen.
<entry key="debug.debugger">true</entry> <entry key="debug.printDebugToScreen">true</entry> <entry key="log.logging">true</entry> <entry key="log.maxEntries">600</entry>