Anwendungsbezogener Datenbankbetrieb MySQL & Oracle
Posted by eumel on 03 Apr 2012 in general
Im anwendungsbezogenen Datenbankbetrieb ist es wie mit dem Auto: Man weiss zwar, dass es ein Getriebe und einen Motor gibt, aber als Fahrer interessiert nur das Ziel und die Bedienung von Schaltern und Knoepfen. Anbei einige Zaubersprueche zur Bedienung einer Oracle- oder MySQL-Datenbank:
Exportiere und Importiere Daten Datenbank mit Inhalt exportieren
**MySQL**
# mysqldump database > database.dmp
**Oracle**
# exp userid=\'sys/manager as sysdba\' \ file=database_exp.dmp \ log=database_exp.log \ compress=no \ owner=mailadm \ statistics=none \ rows=yes
full database
# exp userid=\'sys/manager as sysdba\' \ file=full_exp.dmp \ log=full_exp.log \ compress=no \ full=yes \ statistics=none \ consistent=yes
Datenbank ohne Inhalt exportieren
**MySQL**
# mysqldump -d database > database.dmp
**Oracle**
# exp userid=mailadm/mailadm \ file=database_exp.dmp \ log=datbase_exp.log \ compress=no \ owner=mailadm \ statistics=none \ rows=no
Datenbank imporieren
**MySQL**
# mysqladmin create database
# mysql database < database.dmp
**Oracle**
# imp userid=\'sys/manager as sysdba\' \ file=database_exp.dmp \ log=database_imp.log \ ignore=yes \ feedback=50 \ fromuser=mailadm \ touser=newsadm
full database
# imp userid=\'sys/manager as sysdba\' \ file=full_exp.dmp \ log=full_imp.log \ full=yes \ ignore=yes \ feedback=50
Zeige alle laufenden Prozesse/Statements
**MySQL**
# mysql > SHOW PROCESSLIST;
**Oracle**
# sqlplus / as sysdba > SELECT sql_id,sql_text FROM v$sqlarea;
waites
> SELECT sw.sid sid , p.spid spid , s.username username , \ s.osuser osuser , sw.state state , sw.wait_time wait_time , \ s.machine machine , depre(sw.event,'db file sequential read', \ sw.p3, 'db file scattered read', sw.p3, NULL) blocks \ FROM v$session_wait sw , v$session s , v$process p \ WHERE s.paddr = p.addr AND sw.state != 'Idle' \ AND sw.sid = s.sid AND sw.wait_time > 0;
Zeige alle Tabellen an
**MySQL**
# mysql SHOW TABLES; **Oracle** # sqlplus / as sysdba
SQL> SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER='MAILADM' # sqlplus
SQL>set pages 999 ; SQL>SELECT TABLE_NAME FROM USER_TABLES; # sqlplus SQL>set pages 999 ; SQL>SELECT TABLE_NAME FROM TABS; # sqlplus SQL> set pages 999 ; SQL>SELECT * FROM _TABLES;
Zeige vollstaendiges Datum von Datenfeldern
**MySQL**
# mysql SQL> SELECT logindate from logintable:
**Oracle**
# sqlplus SQL>SELECT to_char(logindate,'YYYY-MM-DD HH:MM:SS') FROM logintable;
1 Kommentar
Kommentar von: Reik Besucher

Ist ja fast nen Bookmark wert. :) Andererseits zeigt es auch warum Oracle DBAs besser bezahlt werden als MySQL DBAs (die müssen mehr tippen)