Kategorie-Archiv: Datenbanken

Daten aus Datenbanken, SQL, JSON, XML und Flat Files extrahieren und umwandeln

Als Systemadministrator oder Entwickler kommen Sie irgendwann an die Herausforderung, mit Daten umzugehen, die in verschiedenen Formaten vorliegen. Teilweise als Flat File, also beispielsweise als .csv-Datei, die über Microsoft Excel gepflegt wurde, teilweise als .xml-Datei, und teilweise müssen Sie Daten aus einer datenbank extrahieren, um sie in eine andere Datenbank zu laden oder in eine .csv- bzw. xml-Datei zu exportieren. Und einige Datenbanken bieten die Funktion zum Exportieren der Daten in eine Datei mit SQL Statements, aus der Quelltabelle in einer neuen Datenbank wieder aufgebaut werden kann.

In diesem Beitrag, der regelmäßig aktualisiert wird, zeige ich Ihnen, wie Sie daten von verschiedenen Datenbankmanagementsystemen in SQL Statements Files, Flat Files oder .xml-Files exportieren und umgekehrt aus diesen Dateien auch wieder in die Datnebank importieren. Desweiteren zeige ich IHnen, wie Sie .xml-Files in Flat Files und umgekehrt Flat Files in .xml-Files konvertieren.

Das extrahieren von Daten aus einer Quelle, das Umwandeln in ein Zwischenformat und das Laden der Daten in ein Ziel wird auch als Extract, Transform and Load (ETL) bezeichnet.

Datenbanken

In diesem Abschnitt befassen wir uns damit, wie wir Daten aus einzelnen Tabellen einer Datenbank exportieren können. Ich zeige Ihnen hier, wie Sie die Daten aus einer oder mehreren Tabellen der Datenbank in ein Flat File und in SQL-Statement-File bekommen und wie Sie die Tabelle in einer anderen Datenbank aus dem SQL Statement File wieder aufbauen können. Desweiteren zeige ich Ihenn, wie Sie eine bstehende Tabelle aus einem beliebiegn Flat File  befüllen und aufbauen.

SAP HANA

Daten von der Datenbank in ein Flat File oder SQL Statement File exportieren

die einfachste Möglihckeit, DAten aus einer SAP HANA datenbank zu exportieren, ist es,  die gewünschte Tabelle im HANA Studio unter Catalog -> <Schema Name> – Tables auszuwählen und damm im kontextmenü auf Export zu gehen.

2016-01-23_23h47_44

 

Im nächstne FEnster können Sie mehere Tabellen hinzufügen. Haben Sie alle gewünschten objekte selektiert, wählen Sie die Schaltfläche NExt.

2016-01-23_23h50_22

Alternativ können Sie auch bei TAbles im kontextmenü Export wählen und dort dann die Tabelle suchen und hinzufügen

2016-01-23_23h57_34

2016-01-23_23h58_33

Die Daten können Sie nun entweder als BINARY oder als CSV-DAtei exportieren. Egal was Sie hier wählen, Sie exportieren auf diesem Weg nur die MEtadaten über die Tabelle. Das heißt Sie bekommen eine sogenannte create.sql, mit deren Hilfe Sie die Tabelle in einer anderen Datenabnke wieder erstellen können (jedoch ohne daten darin) sowe eine .xml-Datei, welche die Metadaten nochmal extra ausschildert.

Daten aus Datenbanken, SQL, JSON, XML und Flat Files extrahieren und umwandeln 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!

IT Backup-Strategien: One Phase vs Two Phase Backup

In diesem kurzen Post möchte ich einen kurzen Vergleich zwischen zwei Backup-Strategien anstellen. diese Strategie bezieht sich vor allen Dingen auf den Unternehmensbereich. Es empfiehlt sich, als Einstieg meinen Post über den Sinn und Vergleich von Tertiärspeichermedien zu lesen.

In diesem Post besprechen wir, inwieweit es sinnvoll ist, Backups direkt auf einen Tertiärspeicher wie etwa ein Magnetband oder eine Blu Ray zu fahren, anstatt erst den Umweg über einen Sekundärspeicher zu gehen. Backupt man seine Daten direkt auf einen Tertiärspeicher, spricht man von einem One-Phase-Backup. Backupt man seine Daten vorher auf einen Sekundärspeicher wie ein Storage Area Network oder eine normale SSD-/Festplatten-Partition, bevor man sie danach auf ein Tertiärmedium schreibt, spricht man von einem Two-Phase-Backup.

Warum man überhaupt auf ein Tertiärmedium backupt und nicht immer nur das aktuelle Backup auf einem gesonderten Sekundärspeicher vorhält, darüber haben wir ja gesprochen: Es soll die Möglichkeit geben, auf ein früheres Backup zurückzuspringen, falls man erst verspätet eine Inkonsistenz im aktuellen Backup entdeckt.

Dabei darf man nicht vergessen, dass wir in dem oben verlinkten Post auch davon gesprochen haben, dass ein Storage Area Network nicht nur als Sekundär-, sondern auch als Tertiärspeicher dienen kann. Dabei wird das Backup einfach auf mehrere Medien innerhalb des Storage Area Network kopiert. Das aktuelle Backup wird immer auf einem sehr schnellen Medium innerhalb des Storage Area Networks vorgehalten und die vergangenen Backups werden auf langsamere Medien innerhalb des SAN kopiert. So kann man sich beispeilsweise vorstellen, dass der Datenspeicher, auf dem eine Datenbank ihre Datendateien hat, auf schnellen SSDs speichert, das tagesaktuelle Backup auf 15000 RPM Festplatten im RAID 1/RAID 10-Verbund und die älteren Backups auf 5400 RPM Festplatten im RAID 5 Verbindung.

Spielen wir mal verschiedene Beispiele durch. In unserem ersten Szenario wird das Backup der Datenbank auf der SSD erstmal auf eine extra Festplatte geschrieben, die in dem Gehäuse des Servers eingeschoben ist. Von dieser Festplatte wird das Backup dann auf ein Magnetband geschrieben, um es für eventuelle Rücksprünge zu archivieren. Das wäre ein Two-Wa-Backup.

Ebenso ein Two-Way-Backup wäre es, wenn die Daten auf der SSD des Servers zunächst in das Storage Area Network auf schnelle 15000 RPM Festplatten geschrieben werden. Von dort aus werden sie dann auf langsamere 5400 RPM-Festplatten archiviert.

Ein One-Way-Backup wäre, wenn ein Datenbank-Backup direkt von der SSD des Servers auf ein Magnetband oder auf die langsamen Festplatten im SAN geschrieben werden würde.

Die Vorteile eines Two-way-Backups:

  • Das erste Backup ist ja das Backup, welches den eigentlichen Serverdienst, also beispielsweise die Datenbank, belastet. Desweiteren ist das Primärmedium, in diesem Falle die SSDs, wieder schneller frei. Dieses Backup dauert nicht so lange und die Last auf dem Server ist daher geringer. Die Anwender merken eine geringere Beeinträchtigung des Systems durch das Backup
  • Die Daten werden zweimal kopiert und liegt das tagesaktuelle Backup daher von Haus aus schonmal an zwei Orten, was eine höhere Sicherheit darstellt. zudem kann über Prüfsummen festgestellt werden, ob das Backup, welches auf dem Tertiärspeicher ankommt, genau dem Backup entspricht, welches auf dem Sekundärspeicher liegt. Daher kann in zusätzlicher Instanz genauer festgestellt werden, ob das Backup sauber auf das Tertiärmedium gewandert ist

Die Nachteile eines Two-way-Backups

  • das Gesamtbackup dauert länger, da das Backup erst auf den Sekundärspeicher und danach auf den Tertiärspeicher geschrieben werden muss. Somit wird zwar der Serverdienst an sich (also etwa die datenbank) und der Primärspeicher beim allerersten Backup nicht mehr so lange belastet, dafür wird aber der sekundärspeicher belastet. Befindet sich der Sekundärspeicher im Server, auf dem auch der Serverdienst läuft, kann zwar die Kopie vom Sekundär- auf den Tertiärspeicher mit niedrigerer Priorität passieren, so dass der Primärspeicher und der Serverdienst einen Großteil der Systemressourcen bekommt – einen teil der Ressourcen muss das Sstem jedoch für die Kopie schon zur Verfügung stellen. Daher ist der Zeitraum, bis zu dem das System wieder seine volle Leistung zur Verfügung hat, länger. Liegt der Sekundärspeicher hingegen nicht auf dem Serversystem, sondern im Netzwerk oder in einem Storage Area Network, so wird dieses belastet, was bei kleinen Netzwerken einen Unterschied machen kann, insbesondere, wenn mehrere Two-Way-Backups mehrerer Server gleichzeitig laufen sollen.
  • Die Kosten und der Verwaltungsaufwand sind höher, da neben dem Tertiärspeicher zusätzlich ein Sekundärspeicher angeschafft und gewartet werden muss.

Meine persönliche Meinung dazu ist, dass in den allermeisten Fällen die erhöhten Kosten für den zusätzlichen Speicheraufwand zu vernachlässigen sind, besonders angesichts der heutigen Preise für Speicherkapazität, die sich ja im Keller befinden. Und der Vorteil, dass der Serverdienst und der Primärspeicher früher seine Ruhe hat, überwiegt meiner Meinung nach der längeren Gesamtdauer des Backups. Das lässt sich mit Performance-Diagrammen innerhalb des Serversystems auch meist nachvollziehen und darstellen

Ich persönlich rate meinen Kunden daher sehr häufig zu einem Two-Way-Backup.

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!

Oracle DBMS: User und Database Security

Authentication

Die häufigste Art, sich auf einem Oracle-System zu authentifizieren, ist die sogenannte local authentication. Hierbei werden die Zugangsdaten der Oracle DBMS-User im Oracle Data Dictionary gespeichert, also beispielsweise Passwörter, biometrische Daten o. Ä.

In größeren Unternehmen ist es jedoch gängig, sich an der Oracle datnebank über LDAP anzumelden. Hierbei können sich Benutzer über ihre Microsoft Active Directory- oder OpenLDAP-Accounts anmelden und dann über verschiedene Privilegien, die wir weiter unten kennenlernen werden, die Identität von Administratorkonten wie SYS annehmen.

Ein Datenbankparameter, den Sie wahrscheinlich niemals in Ihrer gesamten Oracle-Karriere aktivieren wollen, ist der Parameter REMOTE_OS_AUTHENT und OS_AUTHENT_PREFIX.

Die Passwörter einiger Nutzer sollten Sie sofort nach der Oracle-Installation ändern

  • SYSTEM (Intialpasswort MANAGER) und SYS (Initialpasswort CHANGE_ON_INSTALL).
  • Benutzer DBSANMP dient zur Überwachugn der Isntanz über das SNMP. Falls Sie kein SNMP einsetzen, können Sie den nutzer auch einfach sperren (siehe weiter unten)
  • Benutzer scott. Ein übungsuser, der zugriff auf eine Übungsdatenbank hat. In dieser übungsdatenbank könnten Angreifer beispielsweise Schrottdateien einfügen und somit den Speicherplatz vollschreiben. Scott ist bei neueren Oracle.Versionen jedoch standardmäßig gesperrt.

Benutzerverwaltung

Benutzer sperren

Benutzer können sie folgendermaßen sperren.

alter user <username> account lock

 

Privilegien

Bei Priviligen unterscheidet man zwischen

  • Systemprivilegien. Sien enthalten REchte auf alle bojetke eines bestimmten Typs udn generelle Rechte im System wie etwa Verbinden und Anmelden
  • objektprivilegien enthalten REchte auf bestimmte Objekte

Privilegien eignen sich zur Vergabe an einen konkreten, bestimmten User. in der Praxis jedoch vergibt amnd ie selben privilegien häufig an mehrere Nutzer, weshalb in der Praxis später Rolleng ebaut werden, die den jeweiligen nutzern dann einfach zugewiesen werden.

Einer der drei großen Pfeiler der IT-Security ist das Accounting. Es bedeutet, dass jederzeit nachvollziehbar sein muss, welche Person welche administrativen Tätigkeiten auf dem System ausgeführt hat.

dies können Sie aber nicht gewährleisten, wenn die Administration von SAP-Systemen mt den standardmäßig erstellten Administrationsusern arbeiten.

  • SYS – SYS ist sozusagen der Superuser, das Administratorkonto des Oracle DBMS. SYS ist dabei nicht nur der Superuser mit Administratorrechten, sondern auch der Besitzer des SYSTEM-TAblespace und anderer systemrelevanter Tablespaces, Tabellen und Views wie etwa dem Data Dictionary. Dadurch kann dieser User auch Änderungen am System selbst vornehmen.
  • SYSTEM – ein etwas weniger machtvoller Account. Der User System besitzt nicht wichtige Objekte wie das Data Dictionary und kann beispieslweise kein backup udn recovery oder datenbankupgrade durchführen.
  • SYSMAN

Für bestimmte Tätigkeiten brauchen Sei die Rechte des SYS Nutzers, weil Sie beispeislweise Datenbankparameter abändern müssen. Diese Rechte hat eben nur der SYS Nutzer, da nur der SYS-Nutzer Egientümer des SYSTEM-Tablespaces ist und daher nur dieser Nutzer die Datenbankparameter abändern kann. Wenn Sie sich jedoch direkt als SYS-Nutzer an der Datenbank anmelden, haben Sie wiederum das problem, dass Sie nicht nachvollziehen können, welche Person mit dem SYS-Nutzer gearbeitet und daher die Änderungen vollzogen hat.

Oracle DBMS: User und Database Security 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!

Oracle DBMS – ein paar grundlegende Wartungsaufgaben

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!

Oracle DBMS: Eine neue Datenbank von null auf erstellen.

Bevor Sie eine Oracle-Datenbank erstellen können, müssen Sie die Oracle-Serversoftware installieren. Wie das geht, habe ich Ihnen in diesem Post gezeigt.

Erstellen von Datenbanken

manuell

Bevor man eine Oracle-Datenbank erstellt, sollte man zuvor die Größe der Datenbank, die Anzahl der tablespaces und die Redo Log Files geplant haben. Dabei sollte amn immer 1 oder 2 Jahre in die zukunft planen.

Dazu gehören beispielsweise die Konfiguration des Speicherplatzes. Auf diese Thematik bin ich im theoriepost zum Oracle DBMS schon etwas eingegangen. Zu planen gibt es hier sachen wie die Verteilung der Redo Logs Dateien, Control Dateien und Tablespaces-Datendateien auf die verschiedenen Speichermedien, die Technologie der Speichermedien wie beispielsweise SAN, RAID, LVM usw. Desweiteren gilt es das Einsatzszenario der Datenbank zu planen, etwa OLTP oder OLAP usw.

hier eine kleine Beispielsplanung

Datenbankname und SID

SID myicadb
DB_NAME myicadb

Tablespaces

Tablespace Name Datafile Size
system /u01/oracle/oradata/myica/sys.dbf 500 M
users /u01/oracle/oradata/myica/usr.dbf 100M
undotbs /u01/oracle/oaradata/myica/undo.dbf 100M
temp /u01/oracel/oradata/myica/temp.dbf 100M
index_data /u01/oracle/oradata/myica/indx.dbf 100M
sysaux /u01/oracle/oradata/myica/sysaux.dbf 100M

Logfiles

Logfile Group Member Size
Group 1 /u01/oracle/oradata/myica/log1.ora 50M
Group 2 /u01/oracle/oradata/myica/log2.ora 50M
CONTROL FILE /u01/oracle/oradata/myica/control.ora
PARAMETER FILE /u01/oracle/dbs/initmyicadb.ora

Das Parameter file kommt unter Unix in das Berezcihnis ORACLE_HOME/dbs und unter Wnidows in ORACLE_HOME/database.

Oracle DBMS: Eine neue Datenbank von null auf erstellen. 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!

Oracle DBMS – Grundinstallation

 Editionen von Oracle

  • Enterprise Edition. Sozusagen dei Vollversion. bietet sämtlcihe Features der oracle DB
  • Standard Edition. ist bsechränkt auf maximal 4 CPU Sockets auf dem Mainboard, bietet außerdem Real Application Clustering
  • Std Edition One. Beschrnktt auf maximal 2 CPU sockets auf dem Mainboard und kostet 180 USD/User
  • Express: kostenlose Version zum Entwickeln, Testen und Lernen. Außerdem ist die Express Version eine gute Wahl, wenn man freie Software, die auf einer Oracle-Datenbank aufsetzt, verbreiten möchte.

Installation von Oracle

Bevor wir zu den einzelnen installationsroutinen kommen, hier ein paar grundlegende Empfehlungen:

  • zum Betrieb einer Oracle Database braucht man mindestens 1 GB an freier RAM-Kapazität
  • der virtuelle RAM oder auch Swap sollte die doppelte Größe des RAMs einnehmen
  • ihr braucht mindestens 6 GB freien Speicherplatz auf der festplatte

 

Zusätzlich zu diesen hier geschilderten grundstzlcihen Schritten sollten sie bei jeder installation den zugehörigen installation Guide für das verwendete Betriebssystem lesen. Diesen finden Sie über eine Google Suche nach Oracle online Documentation Library und dort dann unter installing and Upgrading.

unter Windows

In der Regel wird Oracle als DVD ausgeliefert. In dieser DVD befindet sich die Setuproutine unter database\setup.exe. Daraufhin öffnet sich kurz eine Eingabeaufforderung, die darüber informiert, dass der Oracle Unviersal Installer gestartet wird. dieser wird dafür in ein Temp-Verezichnis kopiert.

  • Im ersten Fenster wird nach einer e-Mail-Adresse gefragt, die man ignorieren kann.
  • Im nächsten Fenster empfiehlt sich grundsätzlich die Option Create or configure database. Aus Übungszwecken werden wri die zweite Option Install database software only auswählen.
  • in diesem Tutorial werden wir noch kein Oracle-Cluster aufsetzen, sondern lediglich eine einzige Systeminstanz. Deswegen wählen wir die erste Option Single Instance databse installation.
  • Als nächstse sollen wir eine Sprache auswählen – diese Auswahl ist ziemlich einfach zu treffen.
  • danach soll die zu installierende Edition ausgewählt werden.
  • Als nächstes sollt ihr die Base-Directory und das Software-Installatiosnverzeichnis angeben. Dabei ist es empfehlenswert, nicht das C:\-Laufwerk zu verwenden.
  • Im nächsten Fesnter erhalten Sie eine Zusamemnfasung. Mit einem Klick auf Finish starten Sie die installation.

damti wäre die Installation an sich erstmal abgeschlossen. Als nächstes müssen wir den Oracle Listener konfigurieren. Konfigurieren wir diesen nicht, kann eine Cleintanfrage zu einer datenbankverbndung nicht beantwortet werden. Diesen finden wir im Startemenü unter Oracle – OraDB<Releasenummer>_Home1 – Confiugration and Migration – Net Configuration Assistant.

  • Im erste Fesnter wählen wir Listener Configuration
  • da noch kein Listener konfiguriert wurde, wählen wir im näcshten fenster Add, um einen neuen Listener anzulegen.
  • Den Standardnamen LISTENER im nächsten fenster können wir so lassen
  • Im nächsten Fenster wählenw ir als protkoll TCP
  • und im nächsten Fenster nutzen wir den Standard-TCP-port 1521
  • Da wir derzeit nur einen einzigen Listener konfiugrieren wollen, wählenw ir m nächsten Fenster No.
  • die Listener konfiguration ist vollständig.

Dann erstellen und konfigurieren wir eine Datenbank. Dazu öffnen wir den Databse configuration Assistant

  • im ersten Fenster wählen wir Create a Database
  • im nächsten fenster wählenw ir die Standardoption Operational Purpose of transaction Processing
  • wir vergeben einen global Databse name. Da wir nur eine einzige system-Instanz erstellt haben und keinen Cluster, ist der Global Database Name identisc mit der SID. Standardäßig wird hier oft ORCL eingegeben.
  • Im nächsten fenster lassen wir erstmal alles auf Standard
  • Im nächsten Fenster lassen wird ie Option Use Diuffrente Administrative Passwords aktiviert – es sei denn, Sie wollen für alle Accounts das selbe haben.
  • Im nächstne Fenster stellenw ri sicher, dass im feld Storage Type die Option File System aktiviert ist. Wir nutzen auch die standardoption use database file locations.
  • Im nächsten Fenster müssenw ir eine recovery area angeben. für usnere Zwecke reicht hier erstmal die Stndardoption.
  • Im nächsten Fehlern wäre es aus Lernzwecken zu empfeheln, Sample Schemas zu aktivieren. In Produktivumgebungen übersprügnt man diese option.
  • Im nächsten Fenster lassen wir in diesem Fall alles so, wie es ist.
  • Wir kommen zur Konfiguration des Databse Storage.
  • wir aktivieren die Checkbox Create Database. mit Finish starten wir die Erstellung.

Als nächstes müssen wir einen SErvice Name konfigurieren. Wenn ein Cleint versucht, sich mit der datenbank zu identifizieren, wirddiese durch einen Servicenamen identifiziert. Das geht ebenfalls über den Net configuration Assistant.

  • im Hauptmenü wählen wir diesmal configure local service name
  • da wir noch keinen Servicename konfiguriert haben, wählen wri im nächsten fenster Add
  • als Service name geben wir den Computer / Host Namen des Rechners, auf dem wir den Datenbankserver installieren, an. Wenn die IP-adresse immer fix ist, kann man hier auch die IP eingeben.
  • als Protokoll wählenw ri wieder TCP
  • wir geben den Hostnamen des Rechners ein und nutzen wieder den STandard-TCP-Port 1521
  • wir wählen Yes, perform a test
  • wenn jetzt ein fehler kommt liegt es darin, dass Oracle versucht hat, sich mit seinem Standardpasswort einzuloggen. Mit dem Button Change Login geben wir das Passwort ein, welches wir zuvor festgelegt haben, und gehen auf Next.
  • Der test wird nun erfolgreich sein und wir müssen wir den Net Service Name eingeben.
  • wir wollen keinen weiteren net service name konfigurieren, also no
  • Konfiguration fertig

Jetzt öffnenw ir die Datenbank um zu  überprüfen, ob aleles läuft. dazu im startmenü auf Oracle – OraDB<releasenummer>_Home1 – Databse control – <Service name>. Es öffnet sich ein Browserfenster, indem wir unsere Logindaten eingeben sollen.

Oracle DBMS – Grundinstallation 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!

Oracle DBMS – theoretisches Grundwissen

Theoretisches Wissen über die Oracle Datenbank

Instanz und Datenbank

eine Oracle-Datenbank besteht im wesentlich aus der Datenbank an sich und der Oracle-Serverinstanz.

Die Oracle-Serverinstanz ist das Hauptprogramm, welches sozusagen die Anwendungsschicht des Oracle-Datenbankmanagementsystems darstellt. Das bedeutet, dass andere Programme und nutzer, die Daten von der eigentlichen Datenbank abrufen oder bearbeiten wollen, sich erst an diese Oracle-Instanz wenden müssen. Diese ist also der Serverdienst, der im Hintergrund läuft. Die Oracle-Instanz liegt im laufenden Betrieb, wie viele andere Serverdienste auch, im Arbeitsspeicher des Systems und wartet dort auf eingehende Verbindungen, die von den Nutzern angefragt werden.

Die Einstellungen der Oracle-Serverinstanz wird wie bei vielen anderen Serverdiensten auch in einer oder mehreren Konfigurationsdateien gespeichert – im Fachjargon auch Parameterdatei genannt. Die aprameterdateien werden vor dem Start einer Oracle-Instanz gelesen und dann auf die jeweilige Instanz angewendet.

Die eigentliche Datenbank symbolisiert die Datenhaltungsschicht des Systems. Die Datenbank liegt zum größten Teil auf der festplatte oder SSD des Systems. Dort werden die ganzen Daten, die letztendlich durch die Oracle-Serverinstanz abgefragt und bearbeitet werden sollen, hinterlegt.

Es gibt immer mindestens eine Oracle-Instanz für eine Oracle-Datenbank. man kann nicht mehrere Oracle-Datenbanken mit einer einzigen Oracle-Instanz verwalten. Damit unterscheidet sich Oracle sehr stark von anderen Datenbankmanagementsystemen wie beispeislweise MySQL, wo man mit einer einzigen Serverinstanz mehrere datenbanken verwalten kann.

Umgekehrt ist es aber möglich, dass sich mehrere Oracle-Instanzen um eine einzige Oracle-Datenbank kümmern, das nennt man dann ein Redundancy Array oder allgemein bekannt als Cluster. Dadurch wird die Performance-Last auf mehrere Instanzen aufgeteilt. Desweiteren ist es möglich, dass man eine instanz verwaltet, backupt oder wartet, während die andere weiterhin auf Clientanfragen reagiert und die Datenbank für Clients zur Verfügung stellt.

eine Transaktion

eine Transaktion fasst Datenänderungen, die voneinander abhängig sind, zusammen. Damit Sie das verstehen können, müssen Sie mit dem Begriff der relationalen Datenbanken vertraut sein. Wenn ein Benutzer einen Datensatz ändert, dann müssen in einer relationalen Datenbank Datensätze in verschiedenen Tabellen geändert werden, also nicht nur in einer einzigen – weil dei Tabellen zueinander in einer Beziehung stehen. Wenn ein alter mitarbeiter aus einem Unternehmen ausscheidet und ein neuer seine Aufgaben übernimmt, müssen bie allen Aufgaben, die dieser alte Mitarbeiter bearbeiteet hat, unter Umständen die Daten des neuen mitarbeiters als Verantwortlicher eingetragen werden. Deswegen müssen in mehreren verschiedenen Tabellen Änderungen erfolgen, so dass dies umgesetzt werden kann.

Es wäre fatal, wenn in einigen Tabellen die Änderungen schon erfolgt wären, und mittendrin schmiert die Oracle-Instanz ab. Nun haben Sie in einigen Tabellen den neuen Mitarbeiter und in einigen den alten Mitarbeiter drin stehen. Die von der Datenbank abhngigen Programme können die Daten nicht mehr richtig zuordnen und spucken mitunter Fehlermeldungen aus. Damit dies vermieden wird, gibt es Transkationen. Eine Transaktion fasst alle Änderungen in verschiedenen Tabellen zusammen, die zu einer bestimmten Änderung von Daten gehören. Erst, wenn alle Änderungen vollständig und erfolgreich durhcgeführt wurden, werden die Änderungen permanent übernommen. Geht zwischendrin etwas schief, bleiben alle Daten auf dem Stand vor der Transaktion, bis irgendwann bei einem erneuten Versuch alle Änderungen erfolgreich durchgeführt werden können. Somit werden Inkonsistenzen vermieden.

Oracle DBMS – theoretisches Grundwissen 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!