370 likes | 554 Views
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.
E N D
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 Oracle @ GSI
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) Historie Oracle @ GSI
Architektur 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 Oracle @ GSI
RAID1 Contr. opt. Contr. RAC 10g Hardware AC AC AC • 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 RAID1 Oracle @ GSI
RAC 10g Hardware Oracle @ GSI
RAC 10g Hardware Oracle @ GSI
RAC 10g Hardware Oracle @ GSI
RAC 10g Hardware Oracle @ GSI
RAC 10g Hardware Oracle @ GSI
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 RAC 10g Hardware Oracle @ GSI
RAC 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. Oracle @ GSI
RAC 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. Oracle @ GSI
Datenbanken @ GSI • installierte Datenbanken • unabhängige Instanzen, jeweils auf pcora5+6 siehe Tabelle • Datenbanken für Application Server (LDAP Server Backend), RMAN Catalog (Backup Katalog), Oracle @ GSI
RAC Verbindungsaufbau@ 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) • Kontaktiere LDAP Server und frage nach Auflösung für Alias db • Antwort des LDAP Servers: Connect String: LDAP Server lxora4.gsi.de 1. client 2. (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)))) Oracle @ GSI
RAC Verbindungsaufbau@ GSI • Kontaktiere angegebenen Service Namen gsi4p_ha.gsi.de auf Host orarac1 und orarac2 (Port 1521) • Listener auf orarac1 und orarac2 entscheidet, auf welche Maschine und welche Datenbankinstanz (gsi4p1 oder gsi4p2) Verbindung gelegt wird. • Datenbankverbindung von Client zu Instanz wird aufgebaut. LDAP Server lxora4.gsi.de client 5. 3. (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)))) Oracle @ GSI
Failover • Verbindung steht zu Instanz gsi4p2 auf orarac2. Cache Fusion garantiert gleichen "Zustand" in beiden Instanzen • Ausfall von gsi4p2: Übernahme der Session oder SELECT statement auf andere Instanz gsi4p1. • Evtl. auch Übernahme virtuelle IP • Client merkt keinen Verbindungsabbruch client RAC gsi4p1 gsi4p2 gsi4p2 orarac2 orarac1 orarac2 Oracle @ GSI
Application 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.... Oracle @ GSI
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 HTTP Server Oracle @ GSI
hello.php: <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World from PHP</p>'; ?> </body> </html> Hello World Beispiel php • PHP Beispiel http://oraformstest.gsi.de:8010/php-demo/hello.php Oracle @ GSI
hello.jsp: <html> <H1> Test mit Javascript </H1> nun kommt Javascript<br> <script> document.write("Hello World aus Javascript"); </script> Hello World Beispiel jsp • Java Server Pages (javascript) Beispiel http://oraformstest.gsi.de:8010/test/hello.jsp Oracle @ GSI
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; Hello World Beispiel PL/SQL • PL/SQL Beispiel: HTML Aufrufe direkt aus der Datenbank • Definition Data Access Descriptor pls/d1 -> dahlinger@db-test, Prozedur HELLO http://oraformstest.gsi.de:8010/pls/d1/hello Oracle @ GSI
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; Hello World Beispiel PL/SQL • PL/SQL Beispiel: HTML Aufrufe direkt aus der Datenbank • Definition Data Access Descriptor pls/d1 -> dahlinger@db-test, Prozedur HELLO Browser Quelltext Oracle @ GSI
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; DB Beispiel PL/SQL http://oraformstest.gsi.de:8010/pls/d1/example Oracle @ GSI
Oracle AS http://<AS>/pls/<dad>/<proc> Browser http AS CONNECT <schema>@<db> EXEC <PROC> HTML-Code: <H1>, <tr><td>... </td> dads.conf sql-net DB SELECT.... htp.print(...). htp.TableData Oracle @ GSI
WebDB, PORTAL • WebDB: Webanwendung zur Interaktion mit Datenbank. Webbasiertes Entwicklungstool. Im Produktiv Einsatz bei HADES. obsolete • PORTAL: Nachfolger WebDB Oracle @ GSI
BI: 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 Oracle @ GSI
OMS Grid Control • Web /AS basiertes Management Tool. • Jobs, Alerts, • Email Notification, • Performance, • Verwaltung Oracle @ GSI
OMS Grid Control • Performance Oracle @ GSI
OMS Grid Control • Verfügbarkeit Oracle @ GSI
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. Identity Management Oracle @ GSI
Oracle AS mit SSO http://<AS>/pls/<dad>/<proc> Browser http AS bind mit user credentials (Name, Passwort, dn) dads.conf LDAP sql-net OID (LDAP) mod_orasso.conf DB <Location /pls/d1_sso> require valid-user AuthType Basic </Location> Oracle @ GSI
Oracle AS mit SSO Beispiel • 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!!) http://oraformstest.gsi.de:8010/pls/d1_sso/hello Oracle @ GSI
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 OID Internet Directory Server Oracle @ GSI
OID Internet Directory Server Oracle @ GSI
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. GSI Beispiele Oracle @ GSI
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 Summary • Oracle Projekt: • M.D. • Birgitt Karlson • Mahtab Dalir (Werkstudentin) • Marian Wischkony (Werkstudent) Oracle @ GSI