Synchronization Between Instances

In an Oracle Parallel Server configuration, multiple instances mount and open the database in shared mode. Since multiple instances share one database, it is likely that copies of the same object will end up in the SGA of more than one instance. For example, when instance 1 needs to modify rows contained in block B1, it reads the block B1 from disk into its buffer cache and then modifies the block. Now, if instance 2 also needs to modify block B1, it needs a copy of that block in its buffer cache. In order for instance 2 to get the latest copy of the block, instance 1 first must write that block back to disk. Instance 2 then can read it and proceed to modify it.

Because two instances can modify the copy of a block held in their respective buffer caches, there is a need to maintain consistency between these two copies. In other words, in terms of the previous example, instance 2 needs some way to know that instance 1 has already read and modified the same block that it also needs to change. Maintaining consistency among cached versions of database blocks in buffer caches of multiple instances is called cache coherency and is illustrated in Figure 6.3. Oracle uses global locks to ensure cache coherency. These locks are referred to as global locks because they are managed across all the instances associated with the OPS database. An Oracle component called the Integrated Distributed Lock Manager (IDLM) coordinates these inter-instance locking activities. ...

Get Oracle Parallel Processing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.