下面给出了有关配置 Oracle 系统全局区 (SGA) 和配置影响 Oracle 用户私有全局区 (PGA) 大小的内存结构的几个基本规则。 SGA 是 Oracle 分配并与所有会话共享的一个共享内存块。 有关 SGA 的详细信息,请参阅您的 Oracle 版本的“Oracle 文档”。
- SGA 不得交换。
您所创建的 SGA 不得大于服务器物理随机存取存储器 (RAM) 大小的三分之二。 虚拟内存必须能够同时满足 SGA 和服务器上所有活动进程的要求。
- 避免页面调度过多。
使用操作系统工具(Linux 或 UNIX 系统上的 vmstat 和 Microsoft Windows 上的“任务管理器”)检查页面调度是否过多。 SGA 过大会导致高度的页面调度。
- 配置足够的虚拟内存。
通常情况下,Oracle 建议交换空间至少为物理 RAM 大小的三到四倍。 Linux 或 UNIX 上的交换文件或 Windows 上的页面文件所需的大小取决于活动的会话数。
- 使用表空间中的具体配额可避免用完所有可用存储空间。
具有创建 Oracle 对象权限的用户(例如 sde 用户、存储在用户方案中的地理数据库的所有者和数据所有者)可以通过以下两种方法中的一种来访问存储空间:通过获得 UNLIMITED TABLESPACE 系统权限或者通过接受表空间中的具体配额。
具有 UNLIMITED TABLESPACE 权限的用户可分配数据库中任何表空间或所有表空间,包括 Oracle 托管的 SYSTEM 表空间和 SYSAUX 表空间,在空间量上没有限制。 这将导致最终用户有意或无意地用完所有可用存储空间,甚至使 Oracle 实例崩溃。 因此,最好只有数据库管理员拥有此强大的系统权限。
您应给所有其他用户分配一个或多个表空间中的配额,以使这些用户通过受控方式创建 Oracle 对象。 例如,可以给 GIS_ADMIN 数据所有者用户授予 GIS_DATA 和 GIS_INDEX 表空间中的配额,但不授予 SYSTEM 和 SYSAUX 表空间中的配额。 这样您就可控制数据所有者可创建表和索引的位置,还可选择控制这些对象可使用的空间量。
通常,数据库管理员会向 sde 主地理数据库中的用户方案地理数据库所有者或数据所有者分配各表空间中的无限制配额,或者不分配任何配额。 这样,数据库管理员就可控制数据的物理存储位置(例如,实现增强数据保护的镜像磁盘阵列),并且可将数据分离到逻辑容器中,数据与系统数据和其他项目和应用程序数据相互独立。 无限制配额允许数据所有者根据需要分配其具有访问权限的表空间内的空间。 此设置普遍适用,因为对数据或地理数据库所有者帐户具有访问权限的用户通常经过额外的培训或具有更多的经验,他们通常更了解自己的 GIS 数据的存储要求。
如果环境允许数据编辑者或数据查看者创建自己的地理数据库对象(例如,地理处理操作的输出),则可选择分配这些用户具有写入权限的表空间的有限制配额。 例如,在 GIS_DATA 表空间中,数据查看者可以具有 100 MB 配额,数据编辑者具有 500 MB 配额,而数据所有者具有无限制配额。 您应该自定义配额分配以满足数据和业务进程的特定需要。