[20260426]验证21c下pre_page_sga=false时是否启动SA后台进程.txt
--//验证pre_page_sga=false时是否启动SA后台进程.
1.环境:
SYS@book> @ ver2
==============================
PORT_STRING : x86_64/Linux 2.4.xx
VERSION : 21.0.0.0.0
BANNER : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID : 0
PL/SQL procedure successfully completed.
SYS@book> @ hidez ^use_large_pages
SYS@book> @ pr
==============================
NUM : 180
N_HEX : B4
CON_ID : 0
NAME : use_large_pages
DESCRIPTION : Use large pages if available (TRUE/FALSE/ONLY)
DEFAULT_VALUE : FALSE
SESSION_VALUE : ONLY
SYSTEM_VALUE : ONLY
ISSES_MODIFIABLE : FALSE
ISSYS_MODIFIABLE : FALSE
PL/SQL procedure successfully completed.
2.测试:
--//修改pre_page_sga=FALSE。
SYS@book> alter system set pre_page_sga=FALSE scope=spfile ;
System altered.
SYS@book> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
$ watch -n 0.1 "pgrep -l ora_sa00_book|ts.awk | tee -a p8.txt"
Every 0.1s: pgrep -l ora_sa00_book|ts.awk | tee -a p8.txt
--//重新启动数据库:
$ cat p8.txt
[2026-04-26 16:34:28] 4461 ora_sa00_book
--//可以发现即使pre_page_sga=FALSE也会启动后台进程SA。
--//查看alert日志,没有启动SA00的记录。
$ grep -i SA00 alert_book.log
$ grep -i hugepages /proc/meminfo
AnonHugePages: 69632 kB
HugePages_Total: 530
HugePages_Free: 206
HugePages_Rsvd: 206
HugePages_Surp: 0
Hugepagesize: 2048 kB
--//当前仅仅使用530-206 = 324
--//看来kimi,许多AI实际上在胡说霸道,一点不靠谱。
3.收尾还原:
SYS@book> alter system reset pre_page_sga;
System altered.
SYS@book> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@book> startup
ORACLE instance started.
Total System Global Area 1107294056 bytes
Fixed Size 9684840 bytes
Variable Size 654311424 bytes
Database Buffers 436207616 bytes
Redo Buffers 7090176 bytes
Database mounted.
Database opened.
SYS@book> show parameter pre_page_sga
PARAMETER_NAME TYPE VALUE
-------------- ------- -------
pre_page_sga boolean TRUE
--//缺省pre_page_sga=true
$ grep -i hugepages /proc/meminfo
AnonHugePages: 143360 kB
HugePages_Total: 530
HugePages_Free: 7
HugePages_Rsvd: 7
HugePages_Surp: 0
Hugepagesize: 2048 kB
--//有点奇怪就是即使设置pre_page_sga=true,HugePages_Rsvd也不是等于0,总是保留1小部分,没有分配。
--//在11g下pre_page_sga=true的情况下,sga内存是全部分配。
SYS@book> alter system set pre_page_sga=true scope=spfile;
System altered.
SYS@book> shutdown immediate ;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@book> startup
ORACLE instance started.
Total System Global Area 801701888 bytes
Fixed Size 2257520 bytes
Variable Size 285216144 bytes
Database Buffers 507510784 bytes
Redo Buffers 6717440 bytes
Database mounted.
Database opened.
$ grep -i hugepages /proc/meminfo
AnonHugePages: 16384 kB
HugePages_Total: 385
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
--//可以发现全部分配,与21c的情况完全不同,21c总存在小量内存没有分配。
--//为什么不是很清楚。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3116916/ ,如需转载,请注明出处,否则将追究法律责任。