Oracle Real Application Clusters: Installation und Konfiguration Seite 2-1 Oracle Real Application Clusters: Installation Seite 2-2
Vorgehen bei Installation Vorbereitungen: OS & Patches installieren Shared Disk Konfig: : Anschließen en der Disk Subsysteme, Vorbereiten der Raw Devs Netzwerk Konfig: : Private und Public Network Installation des Clustermanagers: abhängig von Hardware und Betriebssystem Erstellen der Clusterdatenbank Postinstallation Tasks Vorbereitung abschließen Shared Disk konfigurieren Netzwerk konfigurieren Clusterman. installieren Oracle Software installieren Erstellen der Cluster-DB Post-Install Tasks abschließen Seite 2-3 Installation Raw Devices konfigurieren bzw. Clusterfilesystem bereitstellen Erstellen des Users oracle als Member der Gruppe dba, Vergabe aller Rechte (wichtig: oracle benötigt auf alle Raw Devs schreibenden Zugriff!) Das Environment muss wie bei der Installation einer Single Instanz Umgebung konfiguriert sein (ORACLE_HOME, ORACLE_TERM, NLS_LANG, ORA_NLS33, PATH, CLASS_PATH usw.). Eintrag in /etc/hosts.equiv (User-Äquivalenz) => rcopy bei Installation OSD muss installiert sein! Seite 2-4
Installation: Beispiel unter Linux Seite 2-5 Installation: Beispiel unter Linux Seite 2-6
Oracle Real Application Clusters: Konfiguration und DB Erstellung Seite 2-7 Konfiguration: Clustermanager Setup ############################################# # Konfigurationfile des Clustermanagers / OSD ############################################# # cmcfg.ora HeartBeat=10000 ClusterName=Oracle Cluster Manager, version 9i PollInterval=300 MissCount=20 PublicNodeNames=node1 node2 ServicePort=9998 WatchdogSafetyMargin=3000 WatchdogTimerMargin=6000 HostName=node1 # Ende Konfigurationfile des Clustermanagers ############################################# Seite 2-8
Konfiguration: Init.ora ################################################## # Init.ora fuer RAC-Konfiguration mit 2 Knoten ################################################## # Allg. Einstellungen des System Global Area: db_block_size=4096 db_cache_size=74217728 java_pool_size=12428800 large_pool_size=10485760 shared_pool_size=47440512... Seite 2-9 Konfiguration: Init.ora # Clustereinstellungen: cluster_database=true cluster_database_instances=2 # Folgende Parameter fuer jeden Knoten anpassen: undo_tablespace= = UNDO_ts1 # Für F Node 2 ändern in UNDO_ts2 instance_name= node1 # Für F Node 2 ändern in node2 instance_number= = 1 # Für F Node 2 ändern in 2 thread= = 1 # Für F Node 2 ändern 2... Seite 2-10
Konfiguration: Init.ora # Für F r Zugriff von beiden Nodes die Controlfiles # auf Shared Disk mit Clusterfilesystem legen: control_files= ("/ocfs ocfs/ctrl") # Trace Verzeichnisse: Pfade fuer jeden # Knoten auf lokales Verzeichne anpassen: user_dump_dest= /home/ home/oracle/9i/ /Oracle/9i/adm/n1/udump #Für r Node2: /home/ home/oracle/9i/ /Oracle/9i/adm/n2/udump background_dump_dest= /home/ home/oracle/9i/ /Oracle/9i/adm/n1/bdump #Für r Node2: /home/ home/oracle/9i/ /Oracle/9i/adm/n2/bdump core_dump_dest= = /home/ home/oracle/9i/ /Oracle/9i/adm/n1/cdump #Für r Node2: /home/ home/oracle/9i/ /Oracle/9i/adm/n2/cdump Seite 2-11 Konfiguration: Init.ora (diverse weitere Parameter) # Diverse weitere DB-Parameter: db_name=bob db_domain=held-informatik.de informatik.de undo_management=auto remote_login_passwordfile=exclusive filesystemio_options="directio processes=150 open_cursors=300 sort_area_size=524288 fast_start_mttr_target=300 resource_manager_plan=system_plan timed_statistics=false # Ende der Init.ora Seite 2-12
DBCA und Raw Devices Die Umgebungsvariable DBCA_RAW_CONFIG muss auf das entsprechende File zeigen, damit DBCA darauf zugreift. Syntax innerhalb des Files: database_object=raw_device_file_path Mögliche Objekte sind: system, spfile, users, temp,, undotbs1, undotbs2, example, cwmlite, xdb, odm, indx, tools, drsys, control1, control2, redo1_1, redo1_2, redo2_1, redo2_1 Seite 2-13 DBCA und Raw Devices: Beispiel system=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_system_400m spfile=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_spfile_5m users=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_users_120m temp=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_temp_100m undotbs1=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_undotbs1_250m undotbs2=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_undotbs2_250m example=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_example_160m cwmlite=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_cwmlite_100m xml=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_xml_50m odm=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_odm_20m indx=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_indx_70m tools=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_tools_12m drsys=/ =/dev/vx/rdsk/oracle_dg/clustdb_raw_dr_250m control1=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_controlfile1_110m control2=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_controlfile2_110m redo1_1=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_log11_120m redo1_2=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_log12_120m redo2_1=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_log21_120m redo2_2=/dev dev/vx/rdsk/oracle_dg/clustdb_raw_log22_120m Seite 2-14
Erstellen der Clusterdatenbank -------------------------------------------------- -- CreateDatabase Script mit -- Undo Management und Redo Logs für f r 2 Knoten -------------------------------------------------- -- Erstellend des Oracle Passwordfiles auf -- Shared Disk im Clusterfilesystem -------------------------------------------------- cd /home/ home/oracle/9i. ENV rm -f f /ocfs/ ocfs/orapworapw rm -f f /ocfs/ ocfs/ctrlctrl orapwd file=/ocfs ocfs/orapworapw password=manager entries=5 Seite 2-15 Erstellen der Clusterdatenbank -------------------------------------------------------------------- -- Start von SQL*Plus und Anmeldung als Admin ------------------------------------------------------------------- sqlplus << EOF / as sysdba ------------------------------------------------------------------- -- Start der Oracle Instanz ------------------------------------------------------------------- startup nomount... Seite 2-16
Erstellen der Clusterdatenbank ------------------------------------------------------------------- -- Erstellen der Datenbank mit Namen "bob" bob ------------------------------------------------------------------- create database bob maxinstances 5 maxlogfiles 10 character set "we8iso8859p1 datafile '/ocfs ocfs/system.dbf' ' size 400m reuse default temporary tablespace tempts tempfile '/ocfs ocfs/temp.dbf' ' size 15m reuse undo tablespace undo_ts datafile '/ocfs ocfs/undo.dbf' ' size 40m reuse logfile /ocfs/log1a.dbf' size 15m reuse, '/ocfs ocfs/log1b.dbf' size 15m reuse; Seite 2-17 Erstellen der Clusterdatenbank -- Erstellen der Systemkataloge @?/rdbms/admin admin/catalog.sql @?/rdbms/admin admin/catproc.sql -- Erstellen des Undo-TS für r Node2 create undo tablespace undo_ts2 datafile '/ocfs ocfs/undo2.dbf' size 40m reuse; -- Erstellen der Redo Logs für f r Node2 alter database add logfile thread 2 '/ocfs ocfs/log2a.dbf' size 15m reuse; alter database add logfile thread 2 '/ocfs ocfs/log2b.dbf' size 15m reuse; alter database enable thread 2; Seite 2-18
Erstellen der Clusterdatenbank -- Verlagen von SQL*PLUS exit -- Fertig und Ende EOF -------------------------------------------------- Seite 2-19 Allgemeines zu Parametern ORACLE_SID kann für f r alle Instanzen auf den gleichen Wert gesetzt werden INSTANCE_NUMBER muss cluster-weit ein eindeutiger Integer-Wert sein Seite 2-20
Transparent Application Failover Wird nicht durch netca unterstützt tzt und muss manuell konfiguriert werden. Der Parameter GLOBAL_DBNAME darf in der Section SID_LIST_listener nicht gesetzt werden, da TAF durch einen statisch konfigurierten Global DB Name disabled wird. LOAD_BALANCE and FAILOVER Parameter werden Client-seitig konfiguriert. Instance-Namen beteiligter Knoten können k ähnlich oder unterschiedlich sein. SERVICE_NAMES sollte auf denselben Wert gesetzt werden. Seite 2-21 Transparent Application Failover Backup: Name des Backup Server mit einer weiteren DB Instanz Type SELECT: Alle Select Statements werden im Fall eines Ausfalls des ersten Knotens on the fly von der Backup Instanz übernommen. Method PRECONNECT: Durch einen "Vor" Vor-Connect" " wird die Failover Time weiter minimiert. Retries: Delay: Anzahl der Wiederholungsversuche Wartezeit zwischen Wiederholungsversuchen Seite 2-22
Transparent Application Failover ################################################################## # Filename: tnsnames.ora mit einer TAF-Konfiguration # Verzeichnis: $ORACLE_HOME/network network/admin ################################################################## Die TNSNAMES wird um Informationen für f r einen Failover ergänzt. Rac1.world = (DESCRIPTION_LIST = (FAILOVER = on) (LOAD_BALANCE = on) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = rac_server_1)(port = 1521)) (CONNECT_DATA = (SERVICE_NAME = Rac_test.dpits.de) (SERVER = dedicated) (FAILOVER_MODE = (BACKUP=rac_server_2) (TYPE=select) (METHOD=preconnect) (RETRIES=20) (DELAY=3) ) ) ) Seite 2-23 TAF: Verifikation des Failovers Die View V$Session gibt hier Auskunft: SELECT machine, failover_type,failover_method, failed_over,count(*) FROM v$session GROUP BY BY machine, failover_type, failover_method, failed_over; MACHINE MACHINE FAILOVER_TYPE FAILOVER_TYPE FAILOVER_M FAILOVER_M FAILED_OVER FAILED_OVER COUNT(*) COUNT(*) -------- -------- ------------- ------------- ---------- ---------- ----------- ----------- -------- -------- SUN3 SUN3 NONE NONE NONE NONE NO NO 12 12 SUN4 SUN4 SESSION SESSION PRECONNECT PRECONNECT YES YES 1 1 Seite 2-24
Load Balancing mit TAF Connection Load Balancing über Client-Konfiguration: LOAD_BALANCE = ON Knoten wird lastunabhängig ngig gewürfelt Seite 2-25 Server Load Balancing Dedicated Server Least loaded Node (Mittelwert der letzten Minute) Least loaded Instance (Anzahl Connections) Shared Server Konfig: Least loaded Node (Mittelwert der letzten Minute) Least loaded Instance (Anzahl Connections) Least loaded Dispatcher (Anzahl Connections) Seite 2-26
Server Load Balancing: : Konfiguration Init.ora Parameter für f r Listener db_name='rac' rac1.local_listener="listener_rac1" rac2.local_listener="listener_rac2" rac3.local_listener="listener_rac3" rac4.local_listener="listener_rac4" rac1.instance_name='rac1' rac2.instance_name='rac2' rac3.instance_name='rac3' rac4.instance_name='rac4' Seite 2-27 Demo... Verwendet wird folgende Hardware SunBlade1000 2 x 750 Mhz SPARC III 2 GB Memory 1 x 36 GB Interne Festplatte 1 x FastEthernet SunBlade1000 2 x 750 Mhz SPARC III 2 GB Memory 1 x 36 GB Interne Festplatte 1 x FastEthernet Sun Storage D1000 12 x 18.2 GB Festplatten Seite 2-28