Re: Çok veriyle çalışırken, veritabanı yapılan işlemi kesiyor.

From: Samed YILDIRIM <samed(at)reddoc(dot)net>
To: Ali Kemal DEMIRCI <demirci(dot)alikemal(at)gmail(dot)com>
Cc: PostgreSQL Türkiye <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: Çok veriyle çalışırken, veritabanı yapılan işlemi kesiyor.
Date: 2020-08-12 13:00:30
Message-ID: 545771597236647@mail.yandex.com.tr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-tr-genel

<div>Merhabalar Ali Bey,</div><div> </div><div>Gördüğüm kadarıyla Postgres'i varsayılan ayarları ile kullanıyorsunuz. Bu durum alabileceğiniz verimin altında kalmanıza neden olur. Sunucuyu yalnızca veritabanına koşturmak için kullanacaksanız, yapılandırmasını sistem kaynağına göre düzenlemenizi önemle tavsiye ederim. :)  </div><div> </div><div>Postgis'den kaynaklı olarak segmentation fault alıyor olma ihtimaliniz bence düşük. Daha çok orafce'den şüphe ediyorum. Tavsiyem, bu sorgunuz özelinde orafce'ye bağımlı olan kısımları Postgres'in kendisinde bulunan alternatifler ile değiştirerek (NVL -&gt; COALESCE gibi) sorgunuzu yeniden yazmanız, daha sonra da orafce'yi kaldırarak bu işlemi tekrar denemeniz olacak.</div><div>Best regards.</div><div>Samed YILDIRIM</div><div> </div><div> </div><div> </div><div>12.08.2020, 15:40, "Ali Kemal DEMIRCI" &lt;demirci(dot)alikemal(at)gmail(dot)com&gt;:</div><blockquote><div>Merhaba Samed bey,<div> </div><div>Öncelikle pg_cron eklentisini kaldırdım ve yine aynı hatayı alıyorum.</div><div> </div><div>Söylediğiniz parametrelerin değerleri;</div><div> </div><div><font face="monospace">session_preload_libraries|<br />-------------------------|<br />                         |</font></div><div> </div><div><font face="monospace">shared_preload_libraries|<br />------------------------|<br />                        |</font></div><div> </div><div><font face="monospace">local_preload_libraries|<br />-----------------------|<br />                       |</font></div><div> </div><div>Sorularınızın cevapları;</div><div> </div><div><font face="monospace">1- PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit</font></div><div> </div><div><font face="monospace">2- 30 GB Ram (28 GB Free), </font></div><div><font face="monospace">   16 Core CPU (% 95 Idle), </font></div><div><font face="monospace">   2.5 TB disk (1.4 TB Free)</font></div><div> </div><div><font face="monospace">3- postgresql.conf</font></div><div><font face="monospace">   shared_buffers = 128MB</font></div><div><font face="monospace">   dynamic_shared_memory_type = posix</font></div><div><font face="monospace">   max_wal_size = 1GB</font></div><div><font face="monospace">   min_wal_size = 80MB</font></div><div> </div><div><font face="monospace">4- Kurulu olan extension'lar</font></div><div><font face="monospace">postgis<br />orafce</font></div><div> </div><div><font face="monospace">5- Subquery Scan on r  (cost=463362.37..515099.44 rows=80000 width=282)                                                                                                                                                                                        |</font></div><font face="monospace">  -&gt;  Limit  (cost=463362.37..514299.44 rows=80000 width=534)                                                                                                                                                                                                  |<br />        -&gt;  Hash Join  (cost=463362.37..774820.91 rows=489166 width=534)                                                                                                                                                                                       |<br />              Hash Cond: (a.id_abone_adres_uavt = <a href="http://bf.id/">bf.id</a>)                                                                                                                                                                                                       |<br />              -&gt;  Hash Left Join  (cost=439755.24..715093.91 rows=664869 width=129)                                                                                                                                                                            |<br />                    Hash Cond: ((((((((((nvl(a.id_sayac_marka, '-9'::numeric))::text || '~'::text) || (nvl(a.sayac_capi, '-9'::integer))::text) || '~'::text) || (nvl(a.sayac_devirrakami, '-9'::numeric))::text) || '~'::text) || nvl(btrim(upper(a.sayac_tipi|<br />                    -&gt;  Merge Right Join  (cost=439714.19..687627.01 rows=664869 width=147)                                                                                                                                                                    |<br />                          Merge Cond: (x.id_abone = a.id_abone)                                                                                                                                                                                                |<br />                          -&gt;  GroupAggregate  (cost=439713.76..460925.11 rows=729055 width=86)                                                                                                                                                                 |<br />                                Group Key: x.id_abone, x.id_abone_tipi, x.bitis_tarihi, x.abone_durum                                                                                                                                                          |<br />                                -&gt;  Sort  (cost=439713.76..442497.92 rows=1113664 width=78)                                                                                                                                                                    |<br />                                      Sort Key: x.id_abone, x.id_abone_tipi, x.bitis_tarihi, x.abone_durum                                                                                                                                                     |<br />                                      -&gt;  Subquery Scan on x  (cost=189912.33..228890.57 rows=1113664 width=78)                                                                                                                                                |<br />                                            -&gt;  WindowAgg  (cost=189912.33..217753.93 rows=1113664 width=84)                                                                                                                                                   |<br />                                                  -&gt;  Sort  (cost=189912.33..192696.49 rows=1113664 width=30)                                                                                                                                                  |<br />                                                        Sort Key: sas.id_abone, sas.id_abone_sicil                                                                                                                                                             |<br />                                                        -&gt;  Seq Scan on su_abone_sicil sas  (cost=0.00..51416.64 rows=1113664 width=30)                                                                                                                        |<br />                          -&gt;  Index Scan using sql121209005336850 on su_abone a  (cost=0.42..210562.64 rows=664869 width=115)                                                                                                                                  |<br />                                Filter: (id_abone_adres_uavt IS NOT NULL)                                                                                                                                                                                      |<br />                    -&gt;  Hash  (cost=27.69..27.69 rows=1069 width=16)                                                                                                                                                                                           |<br />                          -&gt;  Seq Scan on cs_meter_model_prm mmp  (cost=0.00..27.69 rows=1069 width=16)                                                                                                                                                        |<br />              -&gt;  Hash  (cost=13999.06..13999.06 rows=585606 width=6)                                                                                                                                                                                          |<br />                    -&gt;  Seq Scan on gis_building_flat bf  (cost=0.00..13999.06 rows=585606 width=6)                                                                                                                                                            |</font><div> <div> </div><div> </div></div></div> <div><div>On Wed, Aug 12, 2020 at 1:22 PM Samed YILDIRIM &lt;<a href="mailto:samed(at)reddoc(dot)net">samed(at)reddoc(dot)net</a>&gt; wrote:</div><blockquote style="border-left-color:rgb( 204 , 204 , 204 );border-left-style:solid;border-left-width:1px;margin:0px 0px 0px 0.8ex;padding-left:1ex"><div>Merhabalar,</div><div> </div><div>1. Hangi PostgreSQL versiyonunu kullanıyorsunuz?</div><div>2. Sistem kaynakları nedir?</div><div>3. Yapılandırma ayalarınızı paylaşır mısınız.</div><div>4. Veritabanında hangi eklentileri kullanıyorsunuz?</div><div>5. Explain ile planı alarak paylaşır mısınız.</div><div> </div><div>En önemli soru 4. soru. Veritabanı <font face="monospace">"Segmentation fault"<span style="font-family:'arial' , sans-serif"> ile kapanıyor loglarınıza göre. Veritabanı bellek alamadım diye sonlanmıyor, sistem kaynaklarının yetersizliği ile alakalı olduğunu düşünmüyorum. Veritabanı süreçlerinden birisi, kendisine ait olmayan bir bellek alanını okumaya ya da yazmaya çalışıyor. Bu da en sık C ile yazılmış bir fonksiyonun/eklentinin içerisindeki hatalı bellek yönetiminden veya kodun içerisindeki buglardan kaynaklanır.</span></font></div><div> </div><div><font face="monospace"><span style="font-family:'arial' , sans-serif">Loglardan ilk gözüme çarpan pg_cron kullandığınız. Onu kaldırmayı deneyebilirsiniz. </span></font>local_preload_libraries, session_preload_libraries ve shared_preload_libraries<font face="monospace"><span style="font-family:'arial' , sans-serif"> parametrelerinin değerlerini de kontrol ederseniz iyi olur.</span></font></div><div> </div><div><font face="monospace"><span style="font-family:'arial' , sans-serif">show </span></font>session_preload_libraries;</div><div>show shared_preload_libraries;</div><div>show local_preload_libraries;</div><div>Best regards.</div><div>Samed YILDIRIM</div><div> </div><div> </div><div> </div><div>12.08.2020, 12:17, "Ali Kemal DEMIRCI" &lt;<a href="mailto:demirci(dot)alikemal(at)gmail(dot)com">demirci(dot)alikemal(at)gmail(dot)com</a>&gt;:</div><blockquote><div><div><font face="monospace">Merhaba arkadaşlar,</font></div><div> </div><font face="monospace">Create table xxx as</font><div><font face="monospace">Select ....</font></div><div><font face="monospace">Limit 80000;</font></div><div> </div><div>Yukardaki SQL komutunu çalıştırdığımda aşağıdaki hatayı alıyorum;</div><div> </div><div><font face="monospace">SQL Error [08006]: An I/O error occurred while sending to the backend.</font></div><div> </div><div>Fakat "Limit 70000" yaptığımda başarılı şekilde select ifadesinden dönen kayıtlarla tablo oluşturulabiliyor.</div><div> </div><div>Hat oluştuğunda log dosyasında oluşan kayıtlar aşağıdaki gibidir.</div><div>Bu konuda yardımcı olabilirmisiniz?</div><div> </div><div><font face="monospace"><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.037 +03 [94157] LOG:  server process (PID 6072) was terminated by signal 11: Segmentation fault<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.037 +03 [94157] DETAIL:  Failed process was running: create table cs_subscriber_ as<br />        select r.id_abone id, 1::numeric corporation_id, r.id_abone subscriber_number, 1::numeric area_id, r.abone_tipi subscriber_type_id, r.id_abone_adres_uavt building_flat_id, <br />              r.creuser created_user_id, r.credate created_timestamp, 0::numeric "version", r.address address_description<br />        from (select a.id_abone, a.abone_no, nvl(x.id_abone_tipi, 1) abone_tipi, a.id_abone_adres_uavt, bf.building_door_id,<br />                      nvl(a.creuser,1::numeric) creuser , nvl(a.credate, '01/01/1900 00:00:00'::timestamp) credate, (a.a4_adr1 ||a.a4_adr2 ||a.a4_adr3)::varchar address,<br />                      <a href="http://mmp.id/">mmp.id</a> meter_model, a.sayac_no, a.sayac_konum, a.sayac_takma_tarihi, a.sayac_uretim_tarihi, to_char(a.sayac_uretim_tarihi, 'yyyy')::numeric uretim_yili,<br />                      a.sayac_karttipi_adi, a.kart_sayac_mrk , a.kart_sayac_no , a.kart_sayac_seri, a.sayac_konum, a.kayit_tarihi, a.aciklama, a.iptal_tarih,<br />                      ('1'||lpad(a.defter_no::tex<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.037 +03 [94157] LOG:  terminating any other active server processes<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6074] WARNING:  terminating connection because of crash of another server process<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6074] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6074] HINT:  In a moment you should be able to reconnect to the database and repeat your command.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6030] WARNING:  terminating connection because of crash of another server process<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6030] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6030] HINT:  In a moment you should be able to reconnect to the database and repeat your command.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6073] WARNING:  terminating connection because of crash of another server process<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6073] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6073] HINT:  In a moment you should be able to reconnect to the database and repeat your command.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6075] WARNING:  terminating connection because of crash of another server process<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6075] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6075] HINT:  In a moment you should be able to reconnect to the database and repeat your command.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6056] WARNING:  terminating connection because of crash of another server process<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6056] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6056] HINT:  In a moment you should be able to reconnect to the database and repeat your command.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6022] WARNING:  terminating connection because of crash of another server process<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6022] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.038 +03 [6022] HINT:  In a moment you should be able to reconnect to the database and repeat your command.<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.041 +03 [94157] LOG:  all server processes terminated; reinitializing<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.066 +03 [6086] LOG:  database system was interrupted; last known up at <span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:46 +03<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.093 +03 [6087] FATAL:  the database system is in recovery mode<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.373 +03 [6088] FATAL:  the database system is in recovery mode<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.415 +03 [6089] FATAL:  the database system is in recovery mode<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.449 +03 [6090] FATAL:  the database system is in recovery mode<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.493 +03 [6086] LOG:  database system was not properly shut down; automatic recovery in progress<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.504 +03 [6086] LOG:  redo starts at EC/8764F088<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.600 +03 [6086] LOG:  invalid record length at EC/88476D80: wanted 24, got 0<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.600 +03 [6086] LOG:  redo done at EC/88476CB8<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.675 +03 [94157] LOG:  database system is ready to accept connections<br /><span class="1f1ea193f6735cf0wmi-callto">2020-08-12 11</span>:08:58.679 +03 [6101] LOG:  pg_cron scheduler started</font><div> </div>--<div>Saygılarımla,<br /><br />Ali Kemal DEMİRCİ</div></div></div></blockquote></blockquote></div> <div> </div>--<div>Saygılarımla,<br /><br />Ali Kemal DEMİRCİ</div></blockquote>

Attachment Content-Type Size
unknown_filename text/html 20.5 KB

In response to

Responses

Browse pgsql-tr-genel by date

  From Date Subject
Next Message Ali Kemal DEMIRCI 2020-08-12 13:56:47 Re: Çok veriyle çalışırken, veritabanı yapılan işlemi kesiyor.
Previous Message Ali Kemal DEMIRCI 2020-08-12 12:40:00 Re: Çok veriyle çalışırken, veritabanı yapılan işlemi kesiyor.