Oracle AMM——实现数据库自适应管理(oracleamm)
Oracle Automatic Memory Management(AMM)是一种自动内存管理机制,可以让DBA和数据库实例自动调整数据库内存大小,以满足正在运行的任务的内存要求并优化性能。
Oracle AMM可以根据应用程序和会话对数据库内存进行动态管理,允许内存动态分配、自适应操作,减少内存收缩和耗尽的时间。它能够自动识别数据库上活动进程的内存要求,并以最大的内存性能运行。
使用Oracle AMM的概念非常简单:指定SQL内存和分配Buffer Cache的大小,并且,可以指定允许的最大和最小值,基于吞吐量的负载将会调整数据库的内存,以实现最佳的性能。
要实现Oracle AMM,必须使用以下参数来控制Oracle内存参数:
SGA_MAX_SIZE:这是数据库中SGA内存最大值,计算公式是:
SGA_MAX_SIZE = SHARED_POOL_SIZE + DB_CACHE_SIZE + LOG_BUFFER_SIZE
SGA_TARGET:可以将SGA_MAX_SIZE字节的内存用于SGA组件,SGA_TARGET字节用于活动的进程。
db_memory_target: 为Oracle 11g以上提供此参数用于控制多个SGA子参数, 该参数使DBAs只需要考虑总的数据库内存,不需要担心具体的会话和内存池分布情况, Oracle将会根据内存需求进行自动调节,实现数据库自适应管理。
下面是用于启用Oracle AMM的TDQM:
SQL>alter system set sga_target=100M scope=spfile;
SQL>alter system set db_memory_target=100M scope=spfile;
SQL>shutdown immediate
SQL>startup
Oracle AMM可以大大简化许多数据库管理责任,可以提高查询性能,使调整内存更加容易;使用它开启的Auto tuning原则,可以从需要的任务的角度减少管理的复杂度,全面提高数据库的性能和可用性。