I have a similar scenario in play for my marts- BUT- I'm not on RAC and my RAC experience is limited, (yes, I'm one of those DBA's that prefers dataguard and feels failure rarely grants me failover when it comes to RAC, go ahead, sue me over it... :)) I did feel that it would be rude of me not to put in my history with the rest of the technical specs below. I do have 5 fusion I/O cards in each of my two mart servers, four databases total. Our marts are built as a duplicate recovery process and then builds the main schema with datapump from the previous production mart each week, (one week rotation, 6-10TB, depending on feed requirements, oh what fun!) One of my big challenges was parallel tuning and the size of the objects they were creating in parallel, reading from in parallel. the waits on temp read and write due to hashing, but mostly sorting were consistently large and after tuning, I talked my manager into letting me create temporary tablespace groups striped across the fusion I/O cards. I am using three temporary tablespaces, 48GB each, four files each, ensuring they are all the same size, (striping gets very bizarre otherwise) across four of the drives, reversing and exchanging the order of the files on the drives to ensure that no two exact files that would be written to are on the same drive. This works exceptionally well, but as these were added drives to the environment, the consideration for memory allocated to each card was a factor and more memory added to each server, (each fusion I/O card claims between 4-6GB of memory, which can be quite a hit on many servers...) We also found out that I can stripe my files and extend my I/O too much on a server, hitting the limit on what the bus could take. Last challenge was how the CBO will react. I was quite surprised how "different" the database grid looked in OEM alone when viewing the consistent processing for the marts. The CBO took this change in stride, but with I/O looking less expensive for the database after updating my system stats, yes, a few execution plans changed, so this DBA was scrambling quickly to put a few hints in to compensate. The one challenge I see for you, is that you want to assign users to this temp tablespace group. If they are executing packages owned by another user, this could hinder you, as the system allocates temp tablespace and may disregard all your careful work. I wrote up a piece on invokers rights for this very purpose that might interest you, hopefully it helps! http://dbakevlar.blogspot.com/2009/11/utilizing-separate-temp-tablespace.html Good luck, sorry I can't help with the RAC part... :) Kellyn Pedersen Multi-Platform DBA I-Behavior Inc. http://www.linkedin.com/in/kellynpedersen www.dbakevlar.blogspot.com "Go away before I replace you with a very small and efficient shell script..." --- On Sun, 1/31/10, Jakub Wartak <vnulllists@xxxxxxxxxxxx> wrote: From: Jakub Wartak <vnulllists@xxxxxxxxxxxx> Subject: Re: Oracle RAC & Fusion I/O Cards To: troach@xxxxxxxxx Cc: "Oracle Discussion List" <oracle-l@xxxxxxxxxxxxx> Date: Sunday, January 31, 2010, 5:36 AM Dnia sobota, 30 stycznia 2010 02:07, Thomas Roach napisał: > I have a RAC (10.2.0.4 on RHEL 5.3 Linux x86-64) cluster and we do a large > amounts of sorts and things in Parallel. I was looking at Fusion I/O cards > which are kept in the server. What I was thinking was, if I used a > Temporary Tablespace Groups and assigned users to this, would it be > possible to store 1 temporary tablespace locally on each node (4 total), or > does this have to be on shared storage as well? If I can store them local, > then I can use the Fusion I/O device. Thomas, There is silence on this topic, so perhaps I'll try... If you have single schema (and tablespace assigment is done on per-schema level) you would need to create users schemaN (where N=RAC_node_id). This would require proper GRANTs on schemaN to access orginal "schema"... Then you would need to perform temp. tablespaces assigment to schemaN. AFAIK temporary tablespace in 10.2 was not registered in controlfiles. .. but first I would start from measuring I/O performance of current tempfiles. There are many ways: 1) gv$filestat 2) assigning dedidcated shared storage location (CFS/LUN) and placing only tempfiles there to monitor their real I/O metrics via iostat -x 3) systemtap (might be difficult on RHEL5.3) I would be very worried about several things: 1) RAC access to tempfile from other RAC node especially during things like TAF SELECT failovers (not sure how TAF does this interally, by re-executing whole query from start and starting returning rows from last sent row?) 2) Load balancing... i mean: ensuring that only schemaN on nodeN can access tempfileN but no tempfileM (where N,M = instance IDs), what might be the problem is that during instanceN crash, clients would start to failover to instanceM (using schemaN which would have been configured to use tempfileN). So taking into account "2", if you have 3 nodes each FusionI/O filesystem would need to have same tempfiles configured (?) For me it is RISKY, i would just stick to tuning PGA/adding more memory*/putting more NVRAM into storage :) * = if don't have some large ammounts of it like 128GB. -- Jakub Wartak http://jakub.wartak.pl/blog -- //www.freelists.org/webpage/oracle-l