Brauche Oracle Starthilfe
Cruz
- datenbank
0 Claudius0 Cruz
0 Ilja0 Christian Seiler0 Ilja
Hallo Leute,
ich habe mir gerade eine Oracle 9i Personal Edition (oder sowas, weil ich habe benutzerdefinierte Installation ausgewählt und alles ausgelassen was geht) installiert. Ich möchte eine Testdatenbank einspielen, den ich in SQL Form bereits vorliegen habe und will ein paar SQL Queries darauf ausprobieren und mich gar nicht großartig mit Oracle Administration außeinandersetzen. Ich stelle aber fest, dass ich wohl gar nicht drum herum kommen werde, weil Oracle anscheinend keine Plug and Play Eigenschaften mitbringt. Er fragt mich allerlei Kram wie DirectoryServices von denen ich nichts verstehe und gar nichts wissen will, ich will doch einfach nur mal ein paar Queries abschicken. Kann mir jemand eine Starthilfe geben, wie ich einfach zum Ziel komme?
Die beiliegende "Release Dokumentaiton" habe ich natürlich schon aufgemacht, aber Themen wie "creating database", "adding users" und ähnliche scheinen nicht zu existieren. Muss ich jetzt ein halbes Jahr studieren, bevor ich meine Queries testen kann?
Gruß,
Cruz
Hi,
unter welchem System arbeitest du denn? Ich nehme mal an Windows. Eine Testdatenbank ist bereits vorhanden, öffne eine Konsole und starte mit sqlplus. Danach solltest du dich als Standarduser scott mit dem Passwort tiger connecten können. Nun kannst du deine Querys absetzen (z.B. select * from emp;).
Um deine eigene Datenbank einspielen zu können, musst du dich allerdings etwas mit Oracle auseinandersetzen. Ich glaube es gibt da einen Manager (zumindest unter Windows) mit dem man solche Sachen erledigen kann.
Viel Spass!
Hi Claudius,
erstmal vielen Dank für die Hilfe, du bist mein einziges Licht am Horizont.
Was muss ich denn in SQL Plus als Host angeben?
Über Konsole mit Scott/Tiger kann ich jedenfalls nicht connecten, aber ich erinnere mich, dass er mir bei der Installation gesagt hat, dass der user nicht zur Verfügung stehen wird, weil ich wohl die Testdatenbank nicht mitinstalliert habe. Ich installiere nochmal und lasse sie diesmal drin.
Meine eigene Datenbank habe ich als create und insert statements vorliegen, damit müsste es doch gehen, sobald ich irgendwie geschafft habe zu connecten oder?
Danke!
Cruz
Hi,
unter welchem System arbeitest du denn? Ich nehme mal an Windows. Eine Testdatenbank ist bereits vorhanden, öffne eine Konsole und starte mit sqlplus. Danach solltest du dich als Standarduser scott mit dem Passwort tiger connecten können. Nun kannst du deine Querys absetzen (z.B. select * from emp;).
Um deine eigene Datenbank einspielen zu können, musst du dich allerdings etwas mit Oracle auseinandersetzen. Ich glaube es gibt da einen Manager (zumindest unter Windows) mit dem man solche Sachen erledigen kann.Viel Spass!
yo,
.... mich gar nicht großartig mit Oracle Administration außeinandersetzen. Ich stelle aber fest, dass ich wohl gar nicht drum herum kommen werde, weil Oracle anscheinend keine Plug and Play Eigenschaften mitbringt.
oracle ist auch keine datenbank für mal so nebenbei, sondern erfüllt höhere ansprüche und erwartet sie auch von dem adminstratoren. wenn du deine datenbank einspielen willst, so wirst du meiner meinung nach nicht umher kommen, dich zum beispiel bei sqlplus als DBA anzumelden.
Ilja
Hallo Cruz,
Etwas zu den Konzepten von Oracle: Eine »Datenbank« heißt bei Oracle »Instanz«. Diese kannst Du bspw. über den Database Configuration Assistant (dbca) anlegen (dauert ca. 30 Minuten). Jede Instanz, die Du anlegst, muss gestartet werden. Zusätzlich zu allen Instanzen muss noch der sogenannte TNS Listener gestartet werden. Ich kenne Oracle nur unter Linux, nicht unter Windows; dort kannst Du den Listener über $ORAHOME/bin/lsnrctrl start ($ORAHOME ist Dein OracleHome-Verzeichnis) starten und Instanzen über $ORAHOME/bin/dbstart starten und mit $ORAHOME/bin/dbshut wieder beenden.
Wenn Du Dich nun mit einer Oracle-Datenbank verbindest, dann identifizierst Du die Instanz über die sogenannte SID. Die SID gibt an, auf welchem Rechner über welchem Port und unter welchem Namen auf dem fremden Rechner die Instanz zu finden ist. Wenn Du nur einen lokalen Rechner hast, dann ist die SID gleich dem Namen der Instanz, der Hostname localhost und der Port fünftausendnochwas. Die SIDs konfigurierst Du in einer Datei namens /etc/tnsnames.ora. Beim Anlegen einer Instanz über den DBCA sollte der Eintrag in die /etc/tnsnames.ora automatisch erfolgen, d.h. Du brauchst Dich nicht mehr darum zu kümmern.
Oracle hat für jede Instanz eine eigene Benutzerverwaltung. Es gibt 3 Arten, sich als Benutzer mit einer Oracle-Datenbank zu verbinden. Zum einen "normal". Zum anderen gibt es die "Modi" [1] SYSOPER und SYSDBA. Diese dienen zur Administration der Oracle-Instanz. Standardmäßig gibt es den Benutzer 'sys' vordefiniert. Wenn Du die Instanz mit dem DBCA angelegt hast, dann musstest Du dort sein Passwort eingeben. Mit dem Benutzer 'sys' kannst Du Dich nur als SYSOPER oder SYSDBA mit der Datenbank verbinden. Unter diesem Benutzer (wenn er als SYSDBA verbunden ist) kannst Du dann andere Benutzer anlegen, die sich mit der Datenbank "normal" verbinden können. Jeder Benutzer erhält erstmal seinen abgeschlossenen Bereich [2], in dem er Tabellen/etc. anlegen kann. Dieser Bereich hat den gleichen Namen wie der Benutzer. Man kann auch anderen Benutzern Zugriff auf die die Tabellen eines Benutzers geben, dann würde der andere Benutzer die Tabelle über benutzer.tabelle ansprechen [3].
Um Dich in SQLPLUS mit der Datenbank zu verbinden, kannst Du dort
connect benutzer/passwort@SID
eingeben. Falls Du Dich als SYSDBA verbinden willst:
connect sys/passwort@SID as SYSDBA
Vielleicht hilft Dir das ganze hier ein bisschen, die etwas einzufinden. Allerdings wirst Du wohl die Dokumentation lesen müssen und/oder einfach mal was ausprobieren müssen, um weiterzukommen.
Viele Grüße,
Christian
[1] Jeder Oracle-Admin möge es mir verzeihen, das ich bis heute die Namensgebung von dem ganzen Kram nicht so ganz durchschaut habe. ;-)
[2] Ich glaub das waren die Schemas, kann mich aber irren.
[3] Es gibt da auch noch ne Möglichkeit, so eine Art »Link« zu erstellen, damit man eine Tabelle nicht über benutzer.tabelle ansprechen muss, frag mich aber nicht mehr, wie das heißt.
yo,
[1] Jeder Oracle-Admin möge es mir verzeihen, das ich bis heute die Namensgebung von dem ganzen Kram nicht so ganz durchschaut habe. ;-)
die frage ist, ob das jeder oracle-admin kann. oracle ist doch recht komplex und ich würde mir nicht zutrauen zu sagen, ich kann jede namensgebeung in oracle korrekt zuordnen.
[2] Ich glaub das waren die Schemas, kann mich aber irren.
du irrst dich ein wenig. eine instanz ist keine datenbank, sondern alle notwendigen prozesse und speicherstrukturen wie zum beispiel die SGA, um einen oracle server aufzubauen. eine datenbank wiederum betsteht aus drei dateien: logdatei, kontrolldatei und schließlich die datendateien. auch verbindet man sich nicht mit einer datenbank, sondern eben mit der instanz. die instanz wird als erstes hochgefahren und kann eine datenbank mit anbinden, muss aber nicht, zum beispiel wenn die datenbank in einen nicht integeren zustand ist. eine istanz hat in aller regel eine datenbank, sprich ein 1:1 verhältnis, es können aber auch mehrere instanzen auf eine datenbank zugreifen. demzufolge können datenbanken und instanzen auch verschiedene namen besitzen.
Ilja