\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/yedekledb24/DatabaseBackupMasterv5/__pycache__/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/yedekledb24/DatabaseBackupMasterv5/__pycache__/mysql_performance.cpython-310.pyc


o

���g�J�@s|dZddlZddlZddlmZmZddlZddlZejejdd�e�	e
�Zdd�Zdd	�Z
ddd
�Zdd�Zdd�ZdS)u�
MySQL/MariaDB veritabanı performans metrikleri için yardımcı fonksiyonlar.
Bu modül, performance_schema ve information_schema tablolarını kullanarak 
MySQL/MariaDB sunucularında çalışan sorguların performans verilerini alır.
�N)�datetime�	timedeltaz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)�level�formatc
Csdz|��}|�d�|��}|ddkWSty1}zt�dt|����WYd}~dSd}~ww)u�
    MySQL/MariaDB sunucusunda performance_schema'nın etkin olup olmadığını kontrol eder.
    
    Args:
        connection: MySQL bağlantı nesnesi
        
    Returns:
        bool: Etkinse True, değilse False
    �SELECT @@performance_schemar�z+performance_schema kontrol edilirken hata: NF��cursor�execute�fetchone�	Exception�logger�error�str)�
connectionr	�result�e�r�C/var/www/html/yedekledb24/DatabaseBackupMaster/mysql_performance.py�performance_schema_enableds

��rc
Cs�z4|��}|�d�|��ddkrddd�WS|�d�|��d}d|v}d	}|r/|d
7}d|d�WStyZ}zt�dt|����dd
t|���d�WYd}~Sd}~ww)u�
    MySQL/MariaDB sunucusunda performance_schema'yı etkinleştirir.
    
    Args:
        connection: MySQL bağlantı nesnesi
        
    Returns:
        dict: İşlem sonucu (success, message)
    rrrTzPerformance Schema zaten etkin.)�success�message�SELECT VERSION()�MariaDBu!
        Performance Schema etkinleştirmek için my.cnf dosyasına şu satırı ekleyin ve sunucuyu yeniden başlatın:
        
        performance_schema=ON
        
        Not: Bu değişiklik sunucu yapılandırma dosyasında yapılmalıdır ve yeniden başlatma gerektirir.
        u�
            MariaDB'de ayrıca query_response_time etkinleştirmek için:
            
            query_response_time=ON
            Fu-Performance Schema etkinleştirilirken hata: �Hata: Nr)rr	�version�
is_mariadbrrrrr�enable_performance_schema's"


 ��r��
total_timec
Cs�z�tj|dt|d�|d|d|dd�}t|�s#ddgd	�WS|�tjj�}|�d
�|��d}d|v}t	�
d
|��d�}t|�d�d�}	|r�t
|�dkr�|�d�|��}
|
r�|
ddkr�|rz|dkrz|�d�|��ddgd	�WSd}|�|�|��}g}
|D]G}t|�}d|vr�|dr�t
|d�d�d�|d<d|vr�|dr�t
|d�d�d�|d<d|vr�|dr�t
|d�d�d�|d<|
�|�q�tdd �|D��td!d �|D��d�d�|d"�}dd#|
||d$�WS|dkr�d%}n|d&k�rd'}n
|d(k�r	d)}nd%}|�rB|dk�rBz|�d*�|��ddgd	�WWSt�yA}zt�d+t|����WYd,}~nd,}~wwd-�|�}|�||f�|��}g}
|D]]}t|�}d.|v�r{|d.�r{t|d.�d/k�r{|d.d,d/�d0|d.<d1D]}||v�r�||�r�t
||�d�d�||<�q}d|v�r�|d�r�t
|d�d�d�|d<|
�|��qVd2}|�|�|��}|d3|d4|d5d�d�|d6|d7�}|��dd8|
||d$�WSt�y}zt�d9t|����dd:t|���gd	�WYd,}~Sd,}~ww);u�
    MySQL/MariaDB sunucusunda en çok kaynak tüketen sorguları alır.
    
    Args:
        db_conn: MySQL bağlantı bilgileri (dict)
        limit (int): Alınacak sorgu sayısı
        order_by (str): Sıralama kriteri ('total_time', 'calls', 'rows')
        interval (str): Zaman aralığı ('hour', 'day', 'week', 'all')
        
    Returns:
        dict: Sorgu istatistikleri listesi, başarı durumu ve mesaj
    �host�port�username�password�database�r r!�userr#r$FuRPerformance Schema etkin değil. MySQL sunucu yapılandırmasında etkinleştirin.�rr�datar�	VERSION()rz
(\d+\.\d+)r�.rg333333$@zSELECT @@query_response_timez@@query_response_time�resetz&SET GLOBAL query_response_time_flush=1Tu#Sorgu istatistikleri sıfırlandı.a�
                SELECT 
                    BUCKET as response_time_bucket, 
                    COUNT as calls, 
                    TOTAL as total_time,
                    TOTAL/COUNT as avg_time,
                    100.0 * TOTAL / (SELECT SUM(TOTAL) FROM information_schema.query_response_time) as percentage_cpu
                FROM information_schema.query_response_time 
                WHERE BUCKET != 'TOO LONG'
                ORDER BY BUCKET
                rz.2fz ms�avg_time�percentage_cpu�%css�|]}|dVqdS)�callsNr��.0�rowrrr�	<genexpr>�s�z"get_top_queries.<locals>.<genexpr>css�|]	}t|d�VqdS)�TOTALN)�floatr0rrrr3�s�)�total_callsrru:Veriler başarıyla alındı (MariaDB Query Response Time))rrr(�summaryrzSUM_TIMER_WAIT DESCr/zCOUNT_STAR DESC�rowszSUM_ROWS_AFFECTED DESCzETRUNCATE TABLE performance_schema.events_statements_summary_by_digestu&İstatistikler sıfırlanırken hata: Nal
        SELECT 
            DIGEST_TEXT as query,
            COUNT_STAR as calls,
            SUM_ROWS_AFFECTED as rows,
            SUM_TIMER_WAIT/1000000000 as total_time,
            AVG_TIMER_WAIT/1000000000 as avg_time,
            MIN_TIMER_WAIT/1000000000 as min_time,
            MAX_TIMER_WAIT/1000000000 as max_time,
            100.0 * SUM_TIMER_WAIT / 
                (SELECT SUM(SUM_TIMER_WAIT) FROM performance_schema.events_statements_summary_by_digest) 
                as percentage_cpu
        FROM performance_schema.events_statements_summary_by_digest
        ORDER BY {}
        LIMIT %s
        �queryi�z...)rr,�min_time�max_timea
        SELECT 
            SUM(COUNT_STAR) as total_calls,
            SUM(SUM_ROWS_AFFECTED) as total_rows,
            SUM(SUM_TIMER_WAIT)/1000000000 as total_exec_time,
            COUNT(*) as query_count
        FROM performance_schema.events_statements_summary_by_digest
        r6�
total_rows�total_exec_time�query_count)r6r<r=r>ruVeriler başarıyla alındıu,Sorgu performans verileri alınırken hata: r)�pymysql�connect�intrr	�cursors�
DictCursorr
r�re�search�group�splitr5�commit�fetchall�dict�append�sumrr
�warningrr�len�closer)�db_conn�limit�order_by�intervalrr	rr�version_num�
major_version�qrt_enabledr9�resultsr(r2�data_row�summary_data�order_columnr�key�
summary_queryr7rrr�get_top_queriesRs�

�	�



��



 ���&�
��"��r]cCs\�ztj|dt|d�|d|d|dd�}|�tjj�}|�d�|��d}d	|v}|�d
|df�|��}|rD|d�d�nd
}|�d|df�|��d}|�d�|��d}|�d|df�g}	|��D]}
|	�	|
d|
d�d�d��qo|�d|df�g}|��D]}
|�	|
d|
dd��q�i}z4|�d�|��}
|
r�|
d}t
�d|�}|r�|�d�nd
}t
�d|�}|r�|�d�nd
}||d�}Wnt
y�}zt�dt|����WYd}~nd}~ww|��d d!||||	||||d"�d#�WSt
�y-}zt�d$t|����d%d&t|���id#�WYd}~Sd}~ww)'u�
    MySQL/MariaDB veritabanı hakkında genel istatistikleri getirir.
    
    Args:
        db_conn: MySQL bağlantı bilgileri (dict)
        
    Returns:
        dict: Veritabanı istatistikleri
    r r!r"r#r$r%rr)rz�
        SELECT 
            table_schema as `database`,
            ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) as total_size_mb
        FROM information_schema.TABLES 
        WHERE table_schema = %s
        GROUP BY table_schema
        �
total_size_mbz MBzN/Azx
        SELECT COUNT(*) as table_count
        FROM information_schema.TABLES 
        WHERE table_schema = %s
        �table_countz$SHOW STATUS LIKE 'Threads_connected'�Valuea
        SELECT 
            table_name,
            ROUND((data_length + index_length) / 1024 / 1024, 2) as total_size_mb
        FROM information_schema.TABLES 
        WHERE table_schema = %s
        ORDER BY (data_length + index_length) DESC
        LIMIT 5
        �
table_name)ra�sizez�
        SELECT 
            table_name,
            COUNT(*) as index_count
        FROM information_schema.STATISTICS
        WHERE table_schema = %s
        GROUP BY table_name
        ORDER BY index_count DESC
        LIMIT 5
        �index_count)rarczSHOW ENGINE INNODB STATUS�StatuszBuffer pool size\s+(\d+)rzFree buffers\s+(\d+))�buffer_pool_size�free_buffersu(InnoDB istatistikleri alınırken hata: NTu/Veritabanı istatistikleri başarıyla alındı)�db_sizer_�active_connections�largest_tables�top_indexed_tables�innodb_statsrrr'u-Veritabanı istatistikleri alınırken hata: Fr)r?r@rAr	rBrCr
rrIrKrDrErFrr
rMrrOr)rPrr	rr�db_size_resultrgr_rhrir2rjrk�
innodb_status�status_text�buffer_match�buffer_size�
free_matchrfrrrr�get_database_statss�

�
��
�	 	�

�� ����"��rrcCs�z�tj|dt|d�|d|d|dd�}|�tjj�}|�d|d|f�|��s6dd	|��id
�WS|�d|d|f�|��}|�d|d|f�g}|��D]	}|�	t
|��qT|�d
|d|f�|��}i}|D]}	|	d}
|
|vr�g|	dd�||
<||
d�	|	d�qpg}|��D]\}}
|�	|d�|
d�|
dd��q�||d|d|d|d|d|d|d|d||d�}|�
�d|�d �|d
�WSty�}zt�d!t|����dd"t|���id
�WYd#}~Sd#}~ww)$u�
    Belirli bir tablo hakkında detaylı istatistikleri getirir.
    
    Args:
        db_conn: MySQL bağlantı bilgileri (dict)
        table_name (str): Tablo adı
        
    Returns:
        dict: Tablo istatistikleri
    r r!r"r#r$r%zv
        SELECT 1
        FROM information_schema.TABLES 
        WHERE table_schema = %s AND table_name = %s
        FuTablo bulunamadı: r'a�
        SELECT 
            table_name,
            table_rows,
            ROUND((data_length + index_length) / 1024 / 1024, 2) as size_mb,
            data_length,
            index_length,
            create_time,
            update_time,
            engine,
            table_collation
        FROM information_schema.TABLES 
        WHERE table_schema = %s AND table_name = %s
        a(
        SELECT 
            column_name,
            column_type,
            is_nullable,
            column_key,
            column_default,
            extra
        FROM information_schema.COLUMNS
        WHERE table_schema = %s AND table_name = %s
        ORDER BY ordinal_position
        a
        SELECT 
            index_name,
            column_name,
            non_unique,
            seq_in_index
        FROM information_schema.STATISTICS
        WHERE table_schema = %s AND table_name = %s
        ORDER BY index_name, seq_in_index
        �
index_name�
non_unique)�columns�uniqueru�column_namez, rv)rsrurv�size_mb�
table_rows�data_length�index_length�create_time�update_time�engine�table_collation)rarx�	row_countrzr{�
created_at�
updated_atr~�	collationru�indexesTu, tablosu istatistikleri başarıyla alındıu'Tablo istatistikleri alınırken hata: rN)r?r@rAr	rBrCr
rrIrKrJ�items�joinrOrr
rr)rPrarr	�
table_inforur2�indexes_rawr��idxrs�indexes_list�namer(�
table_datarrrr�get_table_stats�s�
�
�

�
�

	�
�
���"��r�)rrN)�__doc__�os�loggingrrr?rD�basicConfig�INFO�	getLogger�__name__r
rrr]rrr�rrrr�<module>s �

+=z

© KUJUNTI.ID