1 / 40

Real Application Clusters

Real Application Clusters. Trevor Crljenko Emilija Knezevic. Objectives. Background Information A Working Database Database Creation and Maintenance Summary Q & A. Real Application Clusters. Emilija and Trevor working on the Linux implementation of the RAC. Architectural Characteristics.

seamus
Download Presentation

Real Application Clusters

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Real Application Clusters Trevor Crljenko Emilija Knezevic

  2. Objectives • Background Information • A Working Database • Database Creation and Maintenance • Summary • Q & A

  3. Real Application Clusters • Emilija and Trevor working on the Linux implementation of the RAC

  4. Architectural Characteristics • Each instance has its own: • SGA and background processes • Redo Logs • Undo Tablespaces • Data files and control files are shared • Cache Fusion guarantees cache coherency among cluster nodes

  5. Basic RAC Layout Node 1 Node 2 Instance A Instance B Oracle Cluster Manager Comm Layer Cluster Interconnect Comm Layer Oracle Cluster Manager Shared Disk Driver Shared Disk Driver Shared Disk Subsystem

  6. Oracle Cluster Manager • Operating System dependant • Provides a cluster-wide view of node membership • discovers new nodes • tracks the state of existing nodes • coordinates session tracking when a node fails

  7. Cache Fusion • Enables sharing of database caches among multiple instances to avoid I/O calls • Synchronizes access to the database • Implemented through GCS (Global Cache Services)

  8. The Cluster Interconnect • Supports the cluster and Cache Fusion • Can use: • TCP/IP over Ethernet • User Datagram Protocol (UDP) over Ethernet • Virtual Interface Architecture over a Gigabit network

  9. Limitations? • The use of Transparent Application Failover (also called TAF) has a few limitations: • Uncommitted transactions must be rolled back • Global temporary tables are lost • PL/SQL package states are lost • The effect of ALTER SESSION is lost

  10. A working RAC on the Linux OS A demonstration of a Real Application Cluster Database

  11. The Environment • Node1: TPOL instance: RAC1 • Node2: SCOTTY instance: RAC2 • Database name: RAC1 • Clients: • Referee - runs a heavy query • Scott • Both clients on machine TORRES • The query takes approx. 4 min. to execute by one uninterrupted instance

  12. Scripts Used – gvinstance SELECT inst_id , instance_number inst# , instance_name name , host_name host , startup_time startup , status , parallel , thread# , logins , database_status dbstat , instance_role , active_state state FROM gv$instance

  13. Scripts Used – gvsession SELECT inst_id , sid , username , user# , server , machine , program , logon_time FROM gv$session WHERE username IS NOT NULL

  14. Scripts Used – gvtaf SELECT inst_id , sid , username , machine , failover_type , failover_method , failed_over FROM gv$session WHERE username IS NOT NULL AND username != 'SYS'

  15. Scripts Used – gvbeen_here SELECT bh.inst_id , o.owner , o.object_name , o.object_type , count(distinct bh.block#) "Num. Buffers" FROM dba_objects o , gv$bh bh WHERE o.object_id = bh.objd AND owner != 'SYS' AND owner != 'SYSTEM' GROUP BY o.owner, o.object_name, o.object_type, bh.inst_id ORDER BY 2, 4, 5 DESC

  16. The Demo • Our RAC

  17. TEST CASE Stage1 Setup Stage 3: Load Balance Start Up Two Instances Demonstrate The Load Balancing Connect Client Connect Another Client Start The Query Start Up The Aborted Inst. Shut Down A Instance Stage 2:Availability

  18. Server SCOTTY Server TPOL Real Application Cluster TESTING SETUP User REFEREE

  19. Step 1: Start Up Both INSTANCES - TPOL & SCOTTY Step 2: Connect User REFEREE to INSTANCE SCOTTY SYS@SCOTTY> @ $RAC_SCRIPTS/gvinstance.sql INST INST INST HOST STARTUP STATUS INSTANCE_ROLE STATE ID # NAME NAME ------- ------ --------- --------- --------------------------- --------- ------------------------- --------- 2 2 RAC2 scotty 2004-01-14:10:01:17 OPEN PRIMARY_INSTANCE NORMAL 1 1 RAC1 tpol 2004-01-14:11:21:57 OPEN PRIMARY_INSTANCE NORMAL SYS@TPOL> @ $RAC_SCRIPTS/gvsessiont.sql SYSDATE ------------------- 2004-01-14:12:24:21 INST SYS HOST USER USER# SERVER PROGRAM ID ID NAME NAME ------- ------ --------- --------- ------------ ------------------- ------------------ 1 22 tpol SYS 0 DEDICATED sqlplus@tpol (TNS V1-V3) 1 18 tpol SYS 0 DEDICATED oracle@tpol (P000) • 18 scotty SYS 0 DEDICATED sqlplus@scotty (TNS V1-V3) 2 23 scotty SYS 0 DEDICATED oracle@scotty (P000) 2 23 scottyREFEREE 27 DEDICATED oracle@torres (TNS V1-V3)

  20. Step 3: Start the Query by User REFEREE REFEREE@TORRES> select * 2 from tab 3 / TNAME TABTYPE CLUSTERID ------------------------------------------------------------------------------------------ --------------- CERTIFICATIONS TABLE PERSONS TABLE PERSON_CERTIFICATIONS TABLE REF_ASSIGNMENT_REQUEST_QUEUE TABLE ROLE_APPLICANTS TABLE RUN_TIMES TABLE STATS_CERTS_1 TABLE STATS_CERTS_2 TABLE 8 rows selected REFEREE@TORRES> @ $RAC_SCRIPTS/sysdate SYSDATE ------------------- 2004-01-14:12:37:44

  21. Server SCOTTY Server TPOL Step 4: Shut Down INSTANCE SCOTTY Transparent Application Failover User REFEREE

  22. AFTER Shut Down INSTANCE SCOTTY BEFORE Shut Down INSTANCE SCOTTY SYS@SCOTTY> @ $RAC_SCRIPTS/gvinstance.sql INST INST INST HOST STARTUP STATUS INSTANCE_ROLE STATE ID # NAME NAME ------- ------ --------- --------- --------------------------- --------- ------------------------- --------- 1 1 RAC1 tpol 2004-01-14:11:21:57 OPEN PRIMARY_INSTANCE NORMAL SYS@SCOTTY> @ $RAC_SCRIPTS/inst_no INSTANCE_NUMBER --------------- 2 SYS@SCOTTY> @ $RAC_SCRIPTS/sysdate SYSDATE ------------------- 2004-01-14:12:20:07 2 2 RAC2 scotty 2004-01-14:10:01:17 OPEN PRIMARY_INSTANCE NORMAL

  23. Server SCOTTY Server TPOL Transparent Application Failover SYS@SCOTTY> @ $RAC_SCRIPTS/gvinstance.sql INST INST INST HOST STARTUP STATUS INSTANCE_ROLE STATE ID # NAME NAME ------- ------ --------- --------- --------------------------- --------- ------------------------- --------- 1 1 RAC1 tpol 2004-01-14:11:21:57 OPEN PRIMARY_INSTANCE NORMAL SYS@TPOL> @ $RAC_SCRIPTS/gvsessiont.sql SYSDATE ------------------- 2004-01-14:12:24:21 INST SYS HOST USER USER# SERVER PROGRAM ID ID NAME NAME ------- ------ --------- --------- ------------ ------------------- ------------------ 1 18 tpolREFEREE 27 DEDICATED sqlplus@torres (TNS V1-V3) 1 22 tpol SYS 0 DEDICATED sqlplus@tpol (TNS V1-V3) Referee

  24. STEP 6: Start Up the Aborted INSTANCE SCOTTY SYS@SCOTTY> @ $RAC_SCRIPTS/gvinstance.sql INST INST INST HOST STARTUP STATUS INSTANCE_ROLE STATE ID # NAME NAME ------- ------ --------- --------- --------------------------- --------- ------------------------- --------- 2 2 RAC2 scotty 2004-01-14:12:30:41 OPEN PRIMARY_INSTANCE NORMAL SYS@SCOTTY> @ $RAC_SCRIPTS/gvsessiont.sql INST SYS HOST USER USER# SERVER PROGRAM ID ID NAME NAME ------- ------ ---------- --------- --------- -------------- ------------------------------------- 2 18 scotty SYS 0 DEDICATED sqlplus@scotty (TNS V1-V3)

  25. Server SCOTTY Server TPOL User SCOTT User REFEREE Step 7: Connect User SCOTTLoad Balancing

  26. Step 7: Connect User SCOTT Load Balancing SYS@TPOL> @ $RAC_SCRIPTS/gvsessiont.sql SYSDATE ------------------- 2004-01-14:12:24:21 INST SYS HOST USER USER# SERVER PROGRAM ID ID NAME NAME ------- ------ --------- --------- ------------ ------------------- ------------------ • 18 tpol REFEREE 27 DEDICATED sqlplus@torres (TNS V1-V3) 1 22 tpol SYS 0 DEDICATEDsqlplus@tpol (TNS V1-V3) 1 25 tpol SYS 0 DEDICATED oracle@tpol (P000) • 18 scotty SYS 0 DEDICATED sqlplus@scotty (TNS V1-V3) 2 19 scotty SYS 0 DEDICATEDoracle@scotty (P000) 2 24 scotty SCOTT 26 DEDICATEDsqlplus@torres (TNS V1-V3)

  27. RAC Database Creation • Verify that the shared disks have been configured correctly • Configure the Oracle network services • Start the listeners and test the configuration • Create the database • Add and set up additional instances

  28. Database Creation and Maintenance An example of a Real Application Cluster installed on 3 PC’s using SuSE Linux 8.1

  29. RAC Specific Parameters • In the INIT.ORA file *.db_name=RAC1 *.cluster_database=true *.cluster_database_instances=2 rac1.instance_name='RAC1' rac1.instance_number=1 rac1.thread=1 rac1.undo_tablespace='UNDOTBS1' rac2.instance_name='RAC2' rac2.instance_number=2 rac2.thread=2 rac2.undo_tablespace='UNDOTBS2' rac1.local_listener='(ADDRESS=(PROTOCOL = TCP)(HOST = tpol)(PORT = 1521))' rac1.remote_listener='(ADDRESS=(PROTOCOL = TCP)(HOST = scotty)(PORT = 1521))' rac2.local_listener='(ADDRESS=(PROTOCOL = TCP)(HOST = scotty)(PORT = 1521))' rac2.remote_listener='(ADDRESS=(PROTOCOL = TCP)(HOST = tpol)(PORT = 1521))’

  30. RAC Specific Issues • Preconditions for running the CREATE DATABASE script: • GSD should be running on both nodes • Listeners should be running on both nodes • tnsping was used to verify the network configuration • An UNDO tablespace should be created for each node in the cluster • Cluster redo logs: • Each instance has its own thread of redo log files • There are an equal number of redo log groups for each node • All log files must be placed on the shared storage • Run the catalog scripts for the RAC database: @ $ORACLE_HOME/rdbms/admin/catclust.sql

  31. Add Another Instance • The database should be started using the PFILE • Create a password file, and a PFILE for the next instance • Start the instance RAC2 from the PFILE • Create an SPFILE from the PFILE of RAC1 • In both PFILEs, remove everything but the pointer to the SPFILE • Each instance has its own password file, but they MUST be synchronized across all instances

  32. Configuring Transparent Application Failover (TAF) • TAF instructs Oracle Net to transfer a failed connection to a different listener • A user can continue to work using the new connection • TAF configuration: • tnsnames.ora - on both server and client side • set up the 'Local Listener' and 'Remote Listener' in the init file • Configuration that works: (CONNECT_DATA = (SERVICE_NAME=RAC1.eis.ca) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 64) (DELAY = 4))))

  33. REDO Logs and Threads SYS@TPOL> @ $RAC_SCRIPTS/gvlog.sql INST_ID GROUP# THREAD# SEQ# BYTES MEMBERS ARC STATUS FIRST_CHAN FIRST_TIME ------- ------ ------- ------ ---------- ---------- --- -------- ---------- --------------- 2 1 1 61 20971520 2 YES INACTIVE 571934296 04-01-14:12:22 2 2 1 62 20971520 2 NO CURRENT 571975370 04-01-14:12:35 2 3 1 60 20971520 2 YES INACTIVE 571810001 04-01-13:06:33 2 4 2 49 20971520 2 YES INACTIVE 571934293 04-01-14:12:22 2 5 2 50 20971520 2 NO CURRENT 571954935 04-01-14:12:31 2 6 2 48 20971520 2 YES INACTIVE 571905460 04-01-14:10:01 1 1 1 61 20971520 2 YES INACTIVE 571934296 04-01-14:12:22 1 2 1 62 20971520 2 NO CURRENT 571975370 04-01-14:12:35 1 3 1 60 20971520 2 YES INACTIVE 571810001 04-01-13:06:33 1 4 2 49 20971520 2 YES INACTIVE 571934293 04-01-14:12:22 1 5 2 50 20971520 2 NO CURRENT 571954935 04-01-14:12:31 1 6 2 48 20971520 2 YES INACTIVE 571905460 04-01-14:10:01 12 rows selected.

  34. Switching from NOARCHIVELOG to ARCHIVELOG mode • There should be only one instance running, and the instance should be mounted in EXCLUSIVE mode • The only way to mount the instance in EXCLUSIVE mode is to set the cluster_database parameter to FALSE)

  35. Archivelog List SYS@TPOL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /var/opt/oracle/RAC1/archive Oldest online log sequence 58 Next log sequence to archive 60 Current log sequence 60 SYS@SCOTTY> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /var/opt/oracle/RAC1/archive Oldest online log sequence 45 Next log sequence to archive 47 Current log sequence 47

  36. Backups with RMAN connected to target database: RAC1 (DBID=410737804) Starting backup at 2004-01-13:14:25:44 channel t1: starting full datafile backupset channel t1: specifying datafile(s) in backupset including current controlfile in backupset input datafile fno=00001 name=/var/opt/oracle/RAC1/system/system01.dbf input datafile fno=00002 name=/var/opt/oracle/RAC1/undo/undotbs1.dbf input datafile fno=00005 name=/var/opt/oracle/RAC1/undo/undotbs2.dbf input datafile fno=00004 name=/var/opt/oracle/RAC1/data/users01.dbf channel t1: starting piece 1 at 2004-01-13:14:26:20 channel t1: finished piece 1 at 2004-01-13:15:01:48 piece handle=/var/opt/oracle/RAC1/backup/rman/RAC1_28_1_515341546.bak comment=NONE channel t1: backup set complete, elapsed time: 00:36:02 channel t1: starting full datafile backupset channel t1: specifying datafile(s) in backupset input datafile fno=00003 name=/var/opt/oracle/RAC1/index/index01.dbf channel t1: starting piece 1 at 2004-01-13:15:01:49 channel t1: finished piece 1 at 2004-01-13:15:02:04 piece handle=/var/opt/oracle/RAC1/backup/rman/RAC1_29_1_515343709.bak comment=NONE channel t1: backup set complete, elapsed time: 00:00:15 Finished backup at 2004-01-13:15:02:04

  37. Summary • Architecture components • How does it work in practice? • Creating and Maintaining a Real Application Cluster Database

  38. Additional Sources of Information • Oracle Online Documentation: Real Application Clusters Concepts • Oracle Metalink document # 184821.1: Step-By-Step Installation of 9.2.0.4 RAC on Linux • Linux SuSE 8.1 documentation (http://sdb.suse.de/en/sdb/html/) • Bill Garner, Wally Pereira, Gary Dodge: "Oracle9i Real Application Clusters (RAC) with Red Hat Linux Advanced Server* 2.1 Powered by Intel Itanium 2 Processors", Oracle World, San Francisco, 2003.

  39. Our Thanks • Enterprise Information Systems • OOUG • Contact Information • Emilija Knezevic • emilija_knezevic@yahoo.com • Trevor Crljenko • trevor_crljenko@eis.ca

  40. Questions & Answers

More Related