12.2 RAC veritabanlarındaki SCM0 prosesinin yüksek cpu tüketimi
DLM Statistics Collection and Management slave (SCM0) arka plan prosesi , global enqueue service (GES) ve global cache service (GCS) ile ilgili istatistiklerin toplanmasından ve yönetiminden sorumludur. Bir veritabanında DLM istatistik toplama işlemi etkinleştirilmiş ise bu proses çalışmaktadır.
Sorunun çözümü için ya DML istatistik toplama işlemi pasifleştirilmeli yada scm0 prosesi kapatılıp, otomatik olara kyeniden başlaması sağlanmalıdır.
DML istatistik toplama işlemini aşağıdaki gibi “_dlm_stats_collect” parametresinin değerini 0 (sıfır) yaparak kapatabilirsiniz.
SQL> alter system set "_dlm_stats_collect" = 0 scope = spfile sid = '*';
Parametrenin mevcut değerini aşağıdaki gibi görüntüleyebilirsiniz.
SQL> select * from ( select x.ksppinm param, y.ksppstvl value from x$ksppi x , x$ksppcv y where x.indx = y.indx and x.ksppinm like '\_%' escape '\' order by x.ksppinm ) where param ='_dlm_stats_collect'; 2 3 4 5 6 7 PARAM -------------------------------------------------------------------------------- VALUE -------------------------------------------------------------------------------- _dlm_stats_collect 1
Parametre değişimi veritabanının yeniden başlatılmasını gerektirmektedir.
Diğer bir yok ise ilgili scm0 prosesinin proses id’sinin tespit edip kill -9 ile kapatmaktır. Proses, kapatıldıktan sonra otomatik olarak yeniden başlayacaktır.
[root@orcldb01 ~]# ps -ef|grep scm oracle 112092 1 0 May22 ? 00:02:28 ora_scm0_ORCL1
Sonrasınra aşağıdaki gibi kapatılabilir. Otomatik olarak yeninden başlayacaktır.
[root@orcldb01 ~]# kill -9 112092