oracle @ gsi
DESCRIPTION
ORACLE @ GSI. Oracle @ GSI Status Juni 2005 Michael Dahlinger, IT 14/6/2005. Oracle Datenbank RAC 10g Oracle Application Server Management und Überwachung Überwachung (Enterprise Manager Grid Control) Backup Projekte Gerätedatenbank Benutzerdatenbank. Übersicht. - PowerPoint PPT PresentationTRANSCRIPT
ORACLEORACLE @ GSI @ GSI
Oracle @ GSIStatus Juni 2005
Michael Dahlinger, IT
14/6/2005
IT-Palaver 14/6/2005 Oracle @ GSI 2
ÜbersichtÜbersicht
• Oracle Datenbank– RAC 10g
• Oracle Application Server
• Management und Überwachung– Überwachung (Enterprise Manager Grid Control)– Backup
• Projekte– Gerätedatenbank– Benutzerdatenbank
IT-Palaver 14/6/2005 Oracle @ GSI 3
HistorieHistorie
Oracle Datenbank in GSI
• Oracle 7 und Oracle 8 auf AIX und DEC Unix (single node) (<2000)
• Oracle 9 auf Windows 2000 (single node) (2000-2004)
• Oracle 10 auf Linux-Cluster (RAC: Real Application Cluster) (2-node) (ab Anfang 2005)
Hohe Verfügbarkeit durch Auswahl geeigneter Hardware und Oracle HA Technologien (RAC)
IT-Palaver 14/6/2005 Oracle @ GSI 4
Architektur RACArchitektur RAC
Überwindung des "single-point-of-failure" Datenbankserver:• Clustered database:
– Mehrere "Instanzen" (Prozesse und Memory Strukturen)
– gemeinsamer physikalischer Datenspeicher (datafiles)
– "shared everything" Architektur
• Load balancing • Failover
IT-Palaver 14/6/2005 Oracle @ GSI 5
RAC 10g HardwareRAC 10g Hardware
• HA durch Hardware:– Serversysteme, jedes mit redundanten Netzteilen, Lüftern etc.– Systemplatten als RAID 1 (gespiegelt) SCSI– shared storage: Plattensystem als RAID 5 (FC). Zugriff von jedem Knoten via FC und FC-Switch. Redundanz Industriestandard. Bei GSI: RAID 5 (gute Plattenausnutzung), 1 ext. FC Controller, 2. Controller optional. – 2 redundante Serversysteme
AC
AC
AC
RAID1 RAID1
Contr. opt. Contr.
IT-Palaver 14/6/2005 Oracle @ GSI 6
RAC 10g HardwareRAC 10g Hardware
IT-Palaver 14/6/2005 Oracle @ GSI 7
RAC 10g HardwareRAC 10g Hardware
IT-Palaver 14/6/2005 Oracle @ GSI 8
RAC 10g HardwareRAC 10g Hardware
IT-Palaver 14/6/2005 Oracle @ GSI 9
RAC 10g HardwareRAC 10g Hardware
IT-Palaver 14/6/2005 Oracle @ GSI 10
RAC 10g HardwareRAC 10g Hardware
IT-Palaver 14/6/2005 Oracle @ GSI 11
RAC 10g HardwareRAC 10g Hardware
Aktueller Status:
• 2 Server 4HE (CPI, Basis Supermicro) pcora5 + pcora6– 2* 2.8 GHz Xeon– 4 GB RAM– 2* 73 GB SCSI System Disk, RAID1– 2* GBIT NIC on board– 1* Fibre Channel 2GB single Port (Qlogic)
• Storage Subsystem– Adaptec ProFibre RAID 1450– 14 slots, bestückt mit 8* 73 GB FC Disks (1* Hot Spare, 7*
RAID5), Nutzkapazität ca. 400 GB, erweiterbar bis max. 2 TB
• USV
IT-Palaver 14/6/2005 Oracle @ GSI 12
RAC 10g SoftwareRAC 10g Software
• HA durch Oracle Software (RAC):– aktiv-aktiv Cluster (failover + load balancing)– skalierbar (bei uns n=2 Knoten)
• Konzept RAC mit Linux:– unabhängige Datenbankserver (jeder Server als stand - alone System konzipiert, keine systemseitige Clustersoftware.– Oracle Clusterware: Teil von Oracle 10g RAC. Monitor und Management RAC Datenbanken. Start und Stopp Instanzen.– shared everything: Alle Server teilen Speicher, haben dasselbe Abbild der Datenbank-Prozesse: Cache Fusion, Austausch via schnellen Interconnect (UDP über GBit privates Netzwerk)– Filesystem: Dateisystem muss mehrfach schreibende Zugriffe verwalten können. Lösung: ASM (Oracle automatic storage management) oder ocfs (Oracle Cluster file system). ocfs auf RAID-5 im Einsatz.– Virtuelle IP Adresse: Jeder Server hat eine zusätzliche virtuelle IP Adresse (orarac1 und orarac2), die im Fehlerfall auf andere Maschine übertragen wird und sofort einsetzbar ist. So wird Wartezeit für network timeouts vermindert.
IT-Palaver 14/6/2005 Oracle @ GSI 13
RAC 10g BenefitsRAC 10g Benefits
• High Availability– Hohe Verfügbarkeit durch Redundanz
• Skalierbarkeit– Leistungssteigerung durch Hinzufügen von Knoten möglich.
• Kontinuierlicher Betrieb– Im Fehlerfalle: Übernahme der laufenden Anwendung auf anderen Knoten (innerhalb laufendem SQL Statement !)– Runterfahren oder Neustart von Datenbank (Veränderung Initialisierungsparameter, Wartungsarbeiten, Patch-Einspielung) kann weitgehend auf einer Instanz erfolgen, andere Instanz arbeitet normal.
IT-Palaver 14/6/2005 Oracle @ GSI 14
Datenbanken @ GSIDatenbanken @ GSI
installierte Datenbanken
• unabhängige Instanzen, jeweils auf pcora5+6 siehe Tabelle
• Datenbanken für Application Server (LDAP Server Backend), RMAN Catalog (Backup Katalog),
Alias Name Größe
db-hades 25 GB
db + db-alice 6 GB
db-cbm 1.8 GB
db-test 4.5 GB
IT-Palaver 14/6/2005 Oracle @ GSI 15
Verbindungsaufbau@ GSIVerbindungsaufbau@ GSI
• Wie findet der Client die Datenbank?– Client Anwendung muss Verbindung
zu Datenbank aufbauen. SQL Befehl
CONNECT <username>@<datenbankalias>
z.B. CONNECT scott@db• Keine lokale Config-Datei auf
Client!!! (tnsnames.ora)
1. Kontaktiere LDAP Server und frage nach Auflösung für Alias db
2. Antwort des LDAP Servers: Connect String:
LDAP
Server
lxora4.gsi.de
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=PROTOCOL=TCP)(HOST=orarac1.gsi.de)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=orarac2.gsi.de)(PORT=1521)) (LOAD_BALANCE=yes)(FAILOVER=yes))(CONNECT_DATA=(SERVICE_NAME=gsi4p_ha.gsi.de)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=20))))
1.
2.
RAC
client
IT-Palaver 14/6/2005 Oracle @ GSI 16
Verbindungsaufbau@ GSIVerbindungsaufbau@ GSI
3. Kontaktiere angegebenen Service Namen gsi4p_ha.gsi.de auf Host orarac1 und orarac2 (Port 1521)
4. Listener auf orarac1 und orarac2 entscheidet, auf welche Maschine und welche Datenbankinstanz (gsi4p1 oder gsi4p2) Verbindung gelegt wird.
5. Datenbankverbindung von Client zu Instanz wird aufgebaut.
LDAP
Server
lxora4.gsi.de
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=PROTOCOL=TCP)(HOST=orarac1.gsi.de)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=orarac2.gsi.de)(PORT=1521)) (LOAD_BALANCE=yes)(FAILOVER=yes))(CONNECT_DATA=(SERVICE_NAME=gsi4p_ha.gsi.de)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=20))))
5.3.RAC
client
IT-Palaver 14/6/2005 Oracle @ GSI 17
FailoverFailover
6. Verbindung steht zu Instanz gsi4p2 auf orarac2. Cache Fusion garantiert gleichen "Zustand" in beiden Instanzen
7. Ausfall von gsi4p2: Übernahme der Session oder SELECT statement auf andere Instanz gsi4p1.
8. Evtl. auch Übernahme virtuelle IP
9. Client merkt keinen Verbindungsabbruch
RAC
orarac2orarac1
gsi4p2gsi4p1
orarac2
gsi4p2
client
IT-Palaver 14/6/2005 Oracle @ GSI 18
Application Server 10gApplication Server 10g
Middleware:• HTTP Server• WebDB, PORTAL• BI: Forms + Reports
• LDAP Server• Oracle Naming• Identity Management• Single Sign On
• Management• OMS Grid Control
• Appl.Development• HTP from PL/SQL
• JDeveloper• Portal • HTML DB....
IT-Palaver 14/6/2005 Oracle @ GSI 19
HTTP ServerHTTP Server
• Apache Server
• Oracle Web Cache (dynamische Seiten werden auch gecacht) Konfigurierter Port: 8010 z.Z.
• unterstützte Sprachen: Java, javascript (Java Server pages jsp), php (4.3), PL/SQL, cgi
• WebDB, Portal: Webbasierte Entwicklungsumgebungen für Portal-Anwendungen
IT-Palaver 14/6/2005 Oracle @ GSI 20
Hello World Beispiel phpHello World Beispiel php
hello.php:
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World from PHP</p>'; ?>
</body>
</html>
http://oraformstest.gsi.de:8010/php-demo/hello.php
• PHP Beispiel
IT-Palaver 14/6/2005 Oracle @ GSI 21
Hello World Beispiel jspHello World Beispiel jsp
hello.jsp:
<html>
<H1> Test mit Javascript </H1>
nun kommt Javascript<br>
<script>
document.write("Hello World aus Javascript");
</script>
http://oraformstest.gsi.de:8010/test/hello.jsp
• Java Server Pages (javascript) Beispiel
IT-Palaver 14/6/2005 Oracle @ GSI 22
Hello World Beispiel PL/SQLHello World Beispiel PL/SQL
HELLO:CREATE OR REPLACE PROCEDURE DAHLINGER.HELLO
is
begin
htp.htmlOpen;
htp.headOpen;
htp.title('Hallo Welt von PL/SQL');
htp.headClose;
htp.bodyOpen(null, 'text="#000000" bgcolor="#FFFF0F"');
htp.bold('Hello World von PL/SQL');
htp.br;
htp.print('system date.......
htp.bodyclose;
htp.htmlClose;
end HELLO;
http://oraformstest.gsi.de:8010/pls/d1/hello
• PL/SQL Beispiel: HTML Aufrufe direkt aus der Datenbank
• Definition Data Access Descriptor pls/d1 -> dahlinger@db-test, Prozedur HELLO
IT-Palaver 14/6/2005 Oracle @ GSI 23
Hello World Beispiel PL/SQLHello World Beispiel PL/SQL
HELLO:CREATE OR REPLACE PROCEDURE DAHLINGER.HELLO
is
begin
htp.htmlOpen;
htp.headOpen;
htp.title('Hallo Welt von PL/SQL');
htp.headClose;
htp.bodyOpen(null, 'text="#000000" bgcolor="#FFFF0F"');
htp.bold('Hello World von PL/SQL');
htp.br;
htp.print('system date.......
htp.bodyclose;
htp.htmlClose;
end HELLO;
Browser Quelltext
• PL/SQL Beispiel: HTML Aufrufe direkt aus der Datenbank
• Definition Data Access Descriptor pls/d1 -> dahlinger@db-test, Prozedur HELLO
IT-Palaver 14/6/2005 Oracle @ GSI 24
DB Beispiel PL/SQLDB Beispiel PL/SQL
EXAMPLE:CREATE OR REPLACE PROCEDURE example AS
CURSOR emp_cur IS
SELECT ename, job, sal FROM scott.emp;
BEGIN
....
htp.header( 1, 'Employee Names');
htp.tableOpen;
FOR emp_rec IN emp_cur LOOP
htp.tableRowOpen;
htp.tableData( emp_rec.ename );
htp.tableData( emp_rec.job );
htp.tableData( emp_rec.sal );
htp.tableRowClose;
END LOOP;
htp.tableClose;
htp.bodyClose;
htp.htmlClose;
END;
http://oraformstest.gsi.de:8010/pls/d1/example
IT-Palaver 14/6/2005 Oracle @ GSI 25
Oracle ASOracle AS
Browser
AS
DB
http://<AS>/pls/<dad>/<proc>
dads.conf
CONNECT <schema>@<db>
EXEC <PROC>
SELECT....
htp.print(...). htp.TableData
HTML-Code:
<H1>,
<tr><td>... </td>
IT-Palaver 14/6/2005 Oracle @ GSI 26
WebDB, PORTALWebDB, PORTAL
• WebDB: Webanwendung zur Interaktion mit Datenbank. Webbasiertes Entwicklungstool. Im Produktiv Einsatz bei HADES. obsolete
• PORTAL: Nachfolger WebDB
IT-Palaver 14/6/2005 Oracle @ GSI 27
BI: Forms und ReportsBI: Forms und Reports
• Oracle Forms + Oracle Reports
• Forms: Java Applett im Browser, kommuniziert mit servlett im AS
• Reports: generiert Reports in untersch. Formaten (z.B. auch pdf) im AS
• im Einsatz für Gerätedatenbank und Elektronik-Teile Datenbank
IT-Palaver 14/6/2005 Oracle @ GSI 28
OMS Grid ControlOMS Grid Control
Web /AS basiertes Management Tool.
Jobs, Alerts,
Email Notification,
Performance,
Verwaltung
IT-Palaver 14/6/2005 Oracle @ GSI 29
OMS Grid ControlOMS Grid Control
Performance
IT-Palaver 14/6/2005 Oracle @ GSI 30
OMS Grid ControlOMS Grid Control
Verfügbarkeit
IT-Palaver 14/6/2005 Oracle @ GSI 31
Identity ManagementIdentity Management
• Teil von Oracle AS ist LDAP Server (Oracle Internet Directory Server). Zur Authentifizierung von Benutzern von Anwendungen nötig. Dabei können verschiedene Anwendungen gemeinsame Authentifizierung (Single Sign On) verwenden.
• Kann für Webanwendungen und andere Anwendungen (z.B. login an Betriebssystemen) benutzt werden.
IT-Palaver 14/6/2005 Oracle @ GSI 32
Oracle AS mit SSOOracle AS mit SSO
Browser
AS
DB
http://<AS>/pls/<dad>/<proc>
dads.conf
mod_orasso.conf OID (LDAP)
<Location /pls/d1_sso>
require valid-user
AuthType Basic
</Location>
bind mit user credentials (Name, Passwort, dn)
IT-Palaver 14/6/2005 Oracle @ GSI 33
Oracle AS mit SSO BeispielOracle AS mit SSO Beispiel
http://oraformstest.gsi.de:8010/pls/d1_sso/hello
• Definition Data Access Descriptor pls/d1_sso -> dahlinger@db-test
• mod_osso: pls/d1_sso require valid user (Gültiger Identity Management user, nicht Datenbankuser!!)
IT-Palaver 14/6/2005 Oracle @ GSI 34
OID Internet Directory ServerOID Internet Directory Server
• LDAP Server Bestandteil von Oracle AS
• eigene Oracle Datenbank als backend (nur intern)
• Schnittstelle LDAP (via OS ldapadd, ldapmodify etc, und von PL/SQL via DBMS_LDAP Package Prozeduren)
• eigenes Webinterface zur LDAP-Benutzerverwaltung
• Rollenkonzept zur Rechtevergabe
IT-Palaver 14/6/2005 Oracle @ GSI 35
OID Internet Directory ServerOID Internet Directory Server
IT-Palaver 14/6/2005 Oracle @ GSI 36
GSI BeispieleGSI Beispiele
• Web-Interface zur Gerätedatenbank– http://oraformstest.gsi.de:8010/pls/gsi_sso
• Funktionales Konzept zur Benutzerdatenbank:– Webbasiertes Interface mit Anmeldung an OID. PL/SQL.– Je nach Rolle (user, operator, Admin) unterschiedliche
Administrationsrechte– Jeder GSI Mitarbeiter + User erhalten einen OID account
• Username: Emailname ohne @gsi.de, oder analoges.• Damit ist dann auch Projekt-Zeitaufschreibung möglich in Web-
basierter Anwendung• Damit auch Zugriff auf Verwaltung OS accounts
– Posix account Info werden via DBMS_LDAP in eigene (n>1) Linux-LDAP Server geschrieben.
– Windows Account Info könnte in AD geschrieben werden, oder Skript.
IT-Palaver 14/6/2005 Oracle @ GSI 37
SummarySummary
• Oracle 10g RAC: Cluster aus 2 Datenbankservern
• Oracle 10g AS: Application Server mit vielfältigen Webbasierten Anwendungen.
• LDAP Server (Oracle Internet Directory Server) Inkl. Identity Management
• Oracle Projekt:
M.D.
Birgitt Karlson
Mahtab Dalir (Werkstudentin)
Marian Wischkony (Werkstudent)