千家信息网

关于调节sga一些大小

发表于:2024-10-25 作者:千家信息网编辑
千家信息网最后更新 2024年10月25日,今天在调节sga大小的时候遇到了一个报错SQL> alter system set sga_target=600 scope=both;alter system set sga_target=600
千家信息网最后更新 2024年10月25日关于调节sga一些大小

今天在调节sga大小的时候遇到了一个报错

SQL> alter system set sga_target=600 scope=both;alter system set sga_target=600 scope=both*ERROR at line 1:ORA-02097: parameter cannot be modified because specified value is invalidORA-00827: could not shrink sga_target to specified value

首先看一下数据库相关配置

SQL> show parameter sgaNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------lock_sga                             boolean     FALSEpre_page_sga                         boolean     FALSEsga_max_size                         big integer 600Msga_target                           big integer 600MSQL> show parameter memoryNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------hi_shared_memory_address             integer     0memory_max_target                    big integer 0memory_target                        big integer 0shared_memory_address                integer     0

很明显可以看出来这是一个asmm下的oracle,难道之前不能调节是因为动态或者静态的关系,然后做了以下实验

SQL> alter system set sga_target=700 scope=spfile;System altered

结果发现果然是只可以在spfile中修改,重启后生效,可是后来我继续做实验发现一个很有趣的事情

SQL> alter system set sga_target=400M scope=both;System altered.

这是为什么呢,为什么这个sga现在又可以在both里面可以用了呢,查阅文档发现一个原来10g之前是不可以调节sga_target的大小的,但是之后出现了一个参数sga_max_size,这个参数让sga_target可以真正的自己调节,只要在sga_max_size以下,所有的sga_target是可以静态或者动态自动调节的。

0