Hello to all
I have to use a DB cluster in a project, I'm using Oracle RAC for this but i have a question, is it posible to fragment tables in Oracle RAC? If this is possible, how can I do it?
Thanks all for your help.
If by "fragment" you mean doing what is typically referred to as "sharding" and storing different subsets of the table on different nodes, no, you can't.
Unlike how many databases do clustering with a "shared nothing" architecture, a RAC cluster involves multiple instances (software processes running on each node) to access a single database (set of data files) on a shared storage system. Sharding a table in this context doesn't make sense-- every instance is going to have access to the entire table. Sharding makes sense in other approaches to clustering where the storage system is not shared across multiple nodes.
If you are trying to ensure that different nodes don't conflict with each other when requesting particular blocks, or at least to minimize that contention, you can potentially create different services that run on different nodes and have different users connect to those services. So, for example, if you create a different service for different geographic regions, configured those services to run on particular nodes, configured users in those geographic regions to connect to the service appropriate for their region and the data in a table is naturally separated by region, you would end up with each node preferentially caching blocks that have data associated with their particular region and you would have relatively few cache fusion requests where one node asks for a cached block from a different node.
If you are trying to improve query performance, you can use partitioning instead of sharding the data (you can do this without using RAC as well). This allows Oracle to store different subsets of the data for a table in different physical segments so your queries can hit individual partitions rather than the entire table to retrieve the data they're after.