Home > Articles > Operating Systems, Server > Solaris

  • Print
  • + Share This
Like this article? We recommend

Dynamically Resizing the SGA in Oracle 9i

All Oracle processes that make up a database instance share one large memory segment called the system global area (SGA). Internally, chunks of this memory are used for distinct purposes, like the redo log buffer and the shared pool.

With the release of Oracle 9i, it is possible to change the size of these components without having to shut down the instance, as long as the sum of their sizes does not exceed the size of the initially created SGA. This initial size cannot be changed without shutting down the database instance.

With DISM, however, the SGA can be created larger than the amount of physical memory in the system, so that memory added to the system can later be used by the running database instance.

To make optimal use of the dynamic characteristics of the Sun Fire platform, we recommend that you configure the SGA to use DISM. As we will show in the next section, you can do this by configuring the SGA to be larger than the sum of its components, which triggers Oracle 9i to use DISM instead of ISM. The size of the SGA should be set to the maximum memory size that you expect the domain might grow to in the future.

Performance wise, it is best for the SGA to allocate one big DISM segment, rather than several smaller ones. You accomplish this by setting the Solaris kernel parameter shmmax to a very high value, for example, 4 gigabytes on a 32 bit system, possibly much higher on a 64bit system.

Even if the domain is already configured at its maximum number of system boards, we recommend that you configure the SGA to use DISM. This will enable you to later remove one or more system boards without having to stop database instances on the domain.

There is a small price to pay for the flexibility and availability gained by dynamically resizing the SGA. Every virtual memory segment that is not mapped to a file on the disk requires virtual memory reservation. This is also the case for a DISM segment, and it implies that the system needs to be configured with a swap device that is at least the size of this segment.

  • + Share This
  • 🔖 Save To Your Account