RAC环境下如何将数据库内存由200G调整到500G

xiaoxiao2021-02-28  74

版本:oracle 11.2.0.4 rac for solaris  1.先备份spfile: 直接copy备份: su - oragrid -bash-4.1$ pwd /dlmapp/oragrid/home -bash-4.1$ id uid=1003(oragrid) gid=103(oinstall) -bash-4.1$ asmcmd ASMCMD> ls dlmDG1/ dlmDG2/ OCRVOTDG/ REDODG1/ ASMCMD> cd dlmdg1 ASMCMD> ls ASM/ dlm/ snapcf_dlm.f ASMCMD> cd dlm ASMCMD> cp spfiledlm.ora /dlmapp/oragrid/home/ copying +dlmdg1/dlm/spfiledlm.ora -> /dlmapp/oragrid/home//spfiledlm.ora 建立pfile来备份spfile: su - oradlm sqlplus /nolog conn /as sysdba create pfile='/dlmapp/orapl/home/initdlm.ora' from spfile; 若更改参数后,导致无法启动实例,可以按以下方法还原参数: 方法一:   在asmcmd中执行:cd /dlmapp/oragrid/home/spfiledlm.ora  +dlmdg1/dlm/,copy完后,查看到实际的spfile文件名,然后在更改每个实例对应的init参数文件的指向,如下: -bash-4.1$ cat initdlm2.ora SPFILE='+dlmDG1/dlm/spfiledlm.ora'  ---spfile文件名作相应修改 方法二:   以备份的pfile文件启动实例,如下: SQL>startup nomount pfile=/dlmapp/orapl/home/initdlm.ora SQL>create spfile='+dlmDG1' from pfile; 查看到实际的spfile文件名,然后在更改每个实例对应的init参数文件的指向,如下: -bash-4.1$ cat initdlm2.ora SPFILE='+dlmDG1/dlm/spfiledlm.ora'  ---spfile文件名作相应修改

优先方法二,通过pfile来恢复

2.OS的内存参数修改(两节点) su - root projects -l projmod -sK "project.max-shm-memory=(privileged,600G,deny)" user.oradlm projmod -sK "project.max-shm-memory=(privileged,600G,deny)" user.oragrid 3.数据库参数修改 周五晚利用应用程序发版时间,先停掉应用,再一个一个实例来改sga参数: 节点一: alter system reset sga_max_size scope=spfile;  #原来为150G alter system set db_cache_size=120G scope=spfile;  alter system set shared_pool_size=75G scope=spfile;  #原来为26G alter system reset shared_pool_reserved_size scope=spfile; #原来为512M alter system set db_keep_cache_size=270G scope=spfile; #原来为1G alter system set "_lm_sync_timeout"=1200 scope=spfile; #(11.2.0.4 缺省为 163) alter system set "_lm_tickets"=8000 scope=spfile;  #(11.2.0.4 缺省为 1000) alter system set "_ksmg_granule_size"=134217728 scope=spfile; #原来为16777216 alter system set "_gc_policy_minimum"=15000 scope=spfile; #(11.2.0.4 缺省为 1500) alter system set gcs_server_processes=20 scope=spfile; #原来为10 alter system set java_pool_size=3584M scope=spfile; #原来为2G 已有的其它内存参数设置,参考如下: large_pool_size                      big integer 15808M streams_pool_size                    big integer 1G 更改完后,同时停掉实例,然后一个一个节点地启动实例。 查看当前用户设置的shm设置是有更改:

prctl -n project.max-shm-memory -i process $$

4.重启

-bash-4.1$ srvctl start instance -d dlm -i dlm2 PRCR-1013 : Failed to start resource ora.dlm.db PRCR-1064 : Failed to start resource ora.dlm.db on node abc208 CRS-5017: The resource action "ora.dlm.db start" encountered the following error:  ORA-27102: out of memory SVR4 Error: 22: Invalid argument . For details refer to "(:CLSN00107:)" in "/dlmapp/oragrid/11.2.0/log/abc208/agent/crsd/oraagent_oradlm/oraagent_oradlm.log". CRS-2674: Start of 'ora.dlm.db' on 'msuu208' failed alert log中报错: optimally. Creating a segment of size 0x0000007660000000 failed. Please change the shm parameters so that a segment can be created for this size. While this is not a fatal issue, creating one segment may improve performance 用srvctl启动实例报错 用sqlplus可以正常启动。 可能原因是因为oragrid下的project刚设置上,而rac很多组件是工作在oragrid下的,需要重启crs服务,可能才会生效,,所以先用sqlplus启动,以后再找时间重启crs后,再用srvctl启动.
转载请注明原文地址: https://www.6miu.com/read-26878.html

最新回复(0)