在部署新的 Oracle 基础架构时,90% 的基础架构都是在 Linux 上实施的。这是有道理的,因为甲骨文在Linux上运行得非常稳定和高性能,它也是甲骨文自己的开发平台。但是,由于多样性使生活变得有趣,我最近有幸在 AIX 上为客户部署了一个新的 Oracle 环境。
AIX不是linux,有些事情的工作方式有点不同,但是Oracle数据库的安装运行或多或少是顺利的。
由于根据Oracle的最佳实践,SGA应该使用大页,因此我们为数据库准备了200个大小为16M的大页。我们可以用svmon实用程序来验证这一点
svmon PageSize PoolSize inuse pgsp pin virtual s 4 KB - 812827 29012 228798 252287 m 64 KB - 61455 202 14189 61743 L 16 MB 200 0 0 200 0 S 16 GB - 0 0 0 0
因此,我们可以看到,200 Pages可用但未在使用中,因为此时我不在服务器上设置数据库。下一步是创建一个 Oracle 19c 数据库,其中 dbca 处于静默模式,并具有所有必要的设置。在 Oracle 19c 中,初始化参数的默认设置USE_LARGE_PAGES=TRUE。这意味着如果oracle在服务器上找到一些大页,它将使用它,如果没有,它将为具有正常页面的sga分配内存。
因此,在创建数据库后,我检查了数据库的告警日志并查看以下输出:
PAGESIZE AVAILABLE_PAGES EXPECTED_PAGES ALLOCATED_PAGES ERROR(s)
2022-08-11T12:57:12.094226+02:00
4K Configured 0 0 NONE
2022-08-11T12:57:12.096517+02:00
64K Configured 118 118 NONE --> PGA
2022-08-11T12:57:12.099008+02:00
16M Configured 192 192 NONE --> SGA
2022-08-11T12:57:12.101851+02:00
16G Configured 0 0 NONE
2022-08-11T12:57:12.104649+02:00
目前为止,一切都好。从告警日志中发现,预言机已经为SGA分配了192个大页。为了真正确定一切正常,我们再次检查svmon
svmon PageSize PoolSize inuse pgsp pin virtual s 4 KB - 812827 29012 228798 252287 m 64 KB - 61455 202 14189 61743 L 16 MB 200 0 0 200 0 S 16 GB - 0 0 0 0
嗯…稍等片刻。Oracle告诉我们,它已经分配了192个1600万个页,但AIX告诉我们,所有200个页面仍然没有使用。那么谁是对的呢?让我们再做一次检查。我们可以将参数 USE_LARGE_PAGES从 TRUE 更改为 ONLY。这意味着,如果 Oracle 无法在启动期间分配大页,则实例将失败。因此,我们更改参数并重新启动数据库。如果它出现大页被使用并且预言机是正确的,如果我们在启动期间遇到错误,我们知道预言机无法分配一些大页,svmon是正确的。(那是我的反对意见,这是错误的🙁 )
SQL> alter system set use_large_pages=only scope=spfile;
SQL> startup force;
数据库没有问题,告警日志告诉我分配了192个页面。所以它一定是好的,因为我设置 use_large_pages=only,数据库只能从大页面开始对么?很遗憾,其实并非如此。在对预言机支持进行了一些重新搜索之后,我终于发现,这个参数在AIX上是无用的。棘手的部分,预言机告诉你,它已经分配了页面,但事实并非如此。要为数据库分配 16M 页,您必须设置以下 init.ora 参数
SQL> alter system set lock_sga=true;
SQL> startup force
将lock_sga参数设置为 true 并重新启动数据库后,您可以看到,现在 svmon 也显示页面正在使用中
svmon PageSize PoolSize inuse pgsp pin virtual s 4 KB - 812827 29012 228798 252287 m 64 KB - 61455 202 14189 61743 L 16 MB 200 193 0 200 193 S 16 GB - 0 0 0 0
本文完。
原文标题:Configure Oracle DB for using Large Pages on AIX
原文作者:Alain Fuhrer
原文地址:https://www.dbi-services.com/blog/configure-oracle-db-for-using-large-pages-on-aix/




