Listener und TNSNames
Ein Listener ist ein Service, der auf einem bestimmten Socket nach eingehenden Verbindungen horcht. Wenn sie auf Ihrem Server nur eine IP-Adresse haben, haben Sie meist nur einen Listener. Wenn Sie jedoch mehrere Netzwerkkarten und somit mehrere IP-Adressen auf dem Server haben, um eine höhere Ausfallsicherheit zu gewährleisten, würden Sie für jede Adresse einen extra Listener konfigurieren.
Listener starten, stoppen und Status abfragen
lsnrctl start <listenername> lsnrctl status <listenername> lsnrctl stop <listenername>
konfigurieren können Sie Listener entweder über den oracle Net cofniguration Assistant oder über die Datei %ORACLE_HOME%\NETWORK\ADMIN\listener.ora
Listener Services anzegien
Wir können uns alle Services anzeigen lassen, mit denen ein Listener verbunden ist
lsnrctl services
Listener konfigurieren
ihr könnt den Lsitener einmal über den oracle net Manager über Oralc enet configuraiton / Local / Listeners konfigurieren.
Als allerletzten Ausweg können Sie die Datei %ORACLE_HOME%\network\admin\listener.ora mit einem Texteditor bearbeiten, um den Listener zu konfigurieren.
Hinweis: wenn Sie die Oracle-Datenbank für ein SAP-System betreiben, befindet sich die Datei listener.ora unter \\sapmnt\<SAPSID>\SYS\profile\oracle, sofern die umgebungsvariable %TNS_ADMIN% gesetzt ist. ohne getzte TNS_ADMIN befindet sich die listener.ora wieder im Standardordner.
Listener absichern
Unter Oracle 9i und älter können Sie den listener folgendermaßen mit einem Passwort belegen
lsnrctl LSNRCTL>change_password Old passwort: New password: <new password> LSNRCTL> set password passord: <neues Passswort> LSNRCTL> save_config
Das passwort liegt dann in der listener.ora. mit 10g können Sie die Listener-kofngiruation über den Paramer ADMIN_RESTRICTIONS_LISTENER einstellen. Ist dieser parameter auf ein, wird geprüft, ob der benutzer Schreibrechtea uf die Datei listener.ora hat. Falls ja, erlaubt er einen Zugriff auf die Listener-Konfiguration.
tnsnames
auf Clientseite, also auf dem Rechner, von dem aus Sie auf die Oracle-Datenbank zugreifen (meistens der selbe Rechner), befindet sich eine Datei tnsnames.ora, welche die Verbindungsdatena uf Cleintseite konfiguriert, mit denen versucht wird, sich auf dei Oracle-instanz zu verbinden. Diese müssen natürlich identisch sein mit den Daten, die in der listener.ora auf serverseiitge konfiguriert worden sein, insbesondere
- die Community
- das Protokoll (meist TCP)
- die System-ID der oracle-Instanz
- und der Port (meist 1521 oder 1527)
Oracle Instanz
verbinden zu einer Instanz
Eine normale Verbindung zu einer laufenden Oracle-instanz machen Sie mit
sqlplus <username>/<passwort>@<DBSID>
Das funktioneirt antürlcih nur, wenn der roacle connection idnetifier in der datei tnsnames.ora entsprechend gesetzt wird.
Eine bessere Methode ist der sogenannte SYSDBA- oder SYSOPER-connect. Diese rerfolgt immer nur auf dem Datenbankserver selbst, also nicht auf einem fremden Host, der sich auf dei Datenbank verbnden möchte. eine Vebrindung von einem solchen fremden Host ist nur nach einer speziellen konfiguration möglihc.
hierbei authentifziert sich der Nutzer nicht büer Benutzernamen und APsswort, sondern anhand der zugehörigkeit zu einer Betriebssystemgruppe, die als Oracle-Datenbankadministratorgruppe gekennzeichent ist. Die Anemldugn erfolgt heirbei über das kommando
sqlplus / as sysdba #bzw. sqlplus / as sysoper
oracle prüft dann, ob der Betriebssystembenutzer zur Unix-gruppe dba bzw. zur Windows-Gruppe ORA_<DBSID>_DBA gehört bzw. ORA_<DBSID>_OPER.ist dies der fall, erhält der User ufmassende Rehcte und ist an der datnebank angemeldet.
Im Gegensatz zur Benutzername/Passwort-Anmeldugn weiter oben funktioniert diese Anmeldung auch, wenn die Oracle-Datenbank offline ist, da die Anmeldedaten somit nicht im Oracle Data Dictionary stehen. Somit kann man sich auch an einer Oracle-Instanz anmelden, die gestoppt ist, um sie beispielsweise neu durchzustarten.
als drittes Verfahren gibt es das sogenannte OPS$-Verfahren. hier muss es einen Oracle-Datenbankbenutzer namens OPS$<sid>adm geben, damit man sich als Betriebssystembenutzer <sid>adm an der Datenbank anmelden kann. Der Präfix OPS$ ist dabei nicht fix, sondern wird über die Umgebingsvariable os_authent_prefix bestimmt. Die Verbindung wird dann aufgebaut über
sqlplus /
Oralce sucht dann in der tabelle DBA_USERS nach einem OSP$-Benutzer. ist dieser vorhadnen, darf sich der Betriebssystembenutzer, der in dieses Schema passt, anmelden. Damit diese Art dder anmeldung auch von einem anderen Host funktioniert als auf dem, auf welchem die Oracle-Instanz läuft, msus die Umgebungsvairable remote_os_authent auf TRUE gesetzt sein.
die OPS$-Anmeldung funktioniert nur, wenn die Oracle-instanz online ist, da Informationen aus der Datenbank abgerufen werden müssen.
sie könenn alle OPS$-Benutzer einer Oracle-Instanz anzeigen lassen über
select USERNAME from DBA_USERS where USERNAME like 'OPS$%';
Einen OPS$-user können Sie ntsprechend so anlegen
cerate user "OPS$<OS-Username>" default tablespace <default_tablespace> temporary tablespace PSAPTEMP identified by externally;
welchen Status hat die datenbank?
Wenn sie nach dem Login über sqlplus die meldung bekommen
conntected to an idle instance
dann ist die Instanz gestoppt.
Wenn diese Meldung nicht kommen, läuft die Instanz. Um den Status der Datenbank abzufragen, führen Sei das SQL-Statement aus:
select status from v$instance;
Die Datenbank kann heirbei den Status nomount, mount oder open haben. Welche bedeutung der jeweilige Status hat, lernen Sie weiter unten.
Welche Version aht die datenbank?
select * from v$version;
instanz stoppen
Zum Stoppen einer instanz gibt es verschiedene Methoden
- Normal. Die instanz bleibt bestehen,d bis alle bestehenden Verbindungen geschlossen sind. Sauberste, aber langsamste Methode, um eine Datenbank herunterzufahren
- immediate. Killt alle bestehenden Verbindungen und rollt nicht durchgelaufene Transaktion einfach zurück
- Transactional. Killt alle Verbindungen ohne lafuende Transkationen. Verbindungen mitlafuenden Transaktionen werden jedoch laufen gelassen, bis diese Transaktionen durchgelaufen sind. Erst dann wird die Instanz beendet.
- Abort. Die dreckigste methode zum Stoppen. Kein Rollback und kein Beenden von Sessions, einfach „Strom aus“ sozusagen. Sollte wirklich die allerletzte Option sein, um die Datenbank-Instanz zu stoppen.
shutdown <Option> #Beispiel shutdown immediate
Alternativ können Sei die instanz unter Windows auch über die Oralce MMC stoppen, indem sie im Knoten Console Root / Oracle Managed objects / computers / <hostname> / datbases / <Datenbankname> rechtsklicken und dort den Kontextmenüpunkt Startup/shutdown options wählen.
Instanz starten
Es gibt verscheidene Modi, um eien Oracle-Instanz zu starten
- nomount. es wird nur die Instanz gestartet und der SGA-speichebreich wird zugeweisen und freigehalten.
- mount es wird außerdem anhand des control files inklusive redo logs gemountet, aber nicht geöffnet. Das heißt die Datenbank kann beispielsweise für ein Datenbank-Recovery genutzt, aber nicht beschrieben oder gelesenw erden.
- open. Die Datenbank wird zusätzlich geöffnet und kann produktiv genutzt werden.
Oracle DBMS – ein paar grundlegende Wartungsaufgaben weiterlesen
Wenn dir dieser Post gefallen hat, teile ihn doch auf Social Media, abonniere und verfolge mich per E-Mail, RSS-Feed, Social Media oder registriere dich auf meiner Seite. Wenn du registriert bist, like den Post bitte, wenn er dir gefallen hat!