• 07-08-2022, 11:50:06
    #10
    ismailtr adlı üyeden alıntı: mesajı görüntüle
    tüm icerik silindi. artik bende panele giremiyorum

    yedek almadan denemeyin.
    Nasıl silindi?
    Sadece session kayıtlarını kapsıyor içeriğini incelediniz mi?

    <modification>
    <name>GC Sessions Basic</name>
    <code>6629190803</code>
    <version>3.x</version>
    <author>alex cherednichenko</author>
    <link>https://www.alcher.info</link>
    <file path="system/library/session.php">
    <operation>
    <search>
    <![CDATA[ public function close() { ]]>
    </search>
    <add position="replace" offset="2">
    <![CDATA[ public function close() { $this->adaptor->close($this->session_id, $this->data); } ]]>
    </add>
    </operation>
    </file>
    <file path="system/library/session/db.php">
    <operation>
    <search>
    <![CDATA[ $query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > " . (int)time()); ]]>
    </search>
    <add position="replace">
    <![CDATA[ $query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > DATE_SUB(NOW(), INTERVAL " . $this->expire . " SECOND);"); ]]>
    </add>
    </operation>
    <operation>
    <search>
    <![CDATA[ public function gc($expire) { ]]>
    </search>
    <add position="before">
    <![CDATA[ public function close( $session_id, $data ) { $this->write($session_id, $data); $this->gc($this->expire); } ]]>
    </add>
    </operation>
    <operation>
    <search>
    <![CDATA[ $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire < " . ((int)time() + $expire)); ]]>
    </search>
    <add position="replace">
    <![CDATA[ $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire < DATE_SUB(NOW(), INTERVAL " . ((int)$expire) . " SECOND);"); ]]>
    </add>
    </operation>
    </file>
    <!--  InnoDB  -->
    <!-- CREATE TABLE `oc_session` (  `session_id` varchar(32) NOT NULL,  `data` text NOT NULL,  `ip_address` varchar(255) DEFAULT NULL,  `user_agent` tinytext,  `expire` datetime NOT NULL,  PRIMARY KEY (`session_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 -->
    <!--     <file path="system/library/session/db.php">         <operation>             <search position="before">                 <![CDATA[         public function gc($expire) {                 ]]>             </search>             <add>                 <![CDATA[         public function close( $session_id, $data ) {             $this->write($session_id, $data);             $this->gc($this->expire);         }                 ]]>             </add>         </operation>        <operation>             <search position="replace">                 <![CDATA[         $query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > DATE_SUB(NOW(), INTERVAL " . $this->expire . " SECOND);");                 ]]>             </search>             <add>                 <![CDATA[         $this->db->query("START TRANSACTION READ ONLY");         $query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > " . (int)time());         $this->db->query("COMMIT");                 ]]>             </add>         </operation>        <operation>             <search position="replace">                 <![CDATA[         $this->db->query("REPLACE INTO `" . DB_PREFIX . "session` SET session_id = '" . $this->db->escape($session_id) . "', `data` = '" . $this->db->escape(json_encode($data)) . "', expire = '" . $this->db->escape(date('Y-m-d H:i:s', time() + $this->expire)) . "'");                 ]]>             </search>             <add>                 <![CDATA[         $this->db->query("START TRANSACTION");         $this->db->query("REPLACE INTO `" . DB_PREFIX . "session` SET session_id = '" . $this->db->escape($session_id) . "', `data` = '" . $this->db->escape(json_encode($data)) . "', user_agent = '" . $this->db->escape($_SERVER['HTTP_USER_AGENT']) . "', ip_address = '".  $this->db->escape($_SERVER['REMOTE_ADDR']) . "', expire = '" . $this->db->escape(date('Y-m-d H:i:s', time() + $this->expire)) . "'");         $this->db->query("COMMIT");                 ]]>             </add>         </operation>        <operation>             <search position="replace">                 <![CDATA[         $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "'");                 ]]>             </search>             <add>                 <![CDATA[         $this->db->query("START TRANSACTION");         $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "'");         $this->db->query("COMMIT");                 ]]>             </add>         </operation>        <operation>             <search position="replace">                 <![CDATA[         $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire < " . ((int)time() + $expire));                 ]]>             </search>             <add>                 <![CDATA[         $this->db->query("START TRANSACTION");         $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire < DATE_SUB(NOW(), INTERVAL " . $expire . " SECOND);"); // + 86400         $this->db->query("COMMIT");                 ]]>             </add>         </operation>    </file> -->
    </modification>
  • 16-12-2022, 09:56:22
    #11
    ilgili sorunu yaşayan kişilere aşağıdaki eklentiyi tavsiye ederim;
    Veritabanızı yedekleyip deneyiniz.
    3x sürümde deneyip başarılı sonuç aldım
    https://www.opencart.com/index.php?r...lter_license=0
  • 16-12-2022, 14:28:03
    #12
    Konuyu yazan arkadaşlara çok çok selamlar olsun diyorum

    Sadece session db si şişmiyor..
    Session ile birlikte farklı tablolarında sürekli boşaltılması şart
    Tabi boşaltma kısmi olmalı ve sonrasında index lemesi de yapılmalıdır.

    Evet tabii ki ocmod ile bir yere kadar çözüm alabilirsiniz
    Ama ocmod eski verilere dokunacak mı görmemiz lazım

    Dediğim gibi db yavaşlaması sadece 1 tablo ile sınırlı değil.
    DB cache yerine file cache ise bu sefer sunucu tarafında yük oluşturacaktır.

    Yani bir çok noktadan müdahale isteyen uzun bir konudur...

    Saygılar
  • 07-12-2024, 19:23:28
    #13
    Merhaba,
    Konu için öncelikle teşekkür ediyorum. Konuyu 2 sene sonra hortlatmış olacağım biraz ama bir bilgiye ihtiyacım var Burada ki adımı uygulayarak hata kayıtlarında çıkan aşağıda ki uyarıyı çözüme kavuşturabilir miyiz? Veya bu hatanın sebebi farklı bir durum mu? Versiyon 4.0.2.3

    2024-12-04 15:10:04 - Error: Commands out of sync; you can't run this command now<br/>Error No: 2014<br/>REPLACE INTO `oc_session` SET `session_id` = '5d522f18571754fac6979c1045', `data` = '{\"currency\":\"TRY\",\"api_id\":\"journal3_newsletter_9b0754db70\"}', `expire` = '2024-12-05 12:10:04' in dosyadizini/public_html/system/library/db/mysqli.php on line 76