Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

Expertise en SGBDR - Page 52

  • Sauvegardez MySQL sous Linux sans arrêter les services

    Vous connaissez probablement les deux façons régulières pour créer un instantané de votre base de données MySQL application cohérente. Nous allons ressasser :

     

     

    • Option 1. Suspendre le service MySQL
      Le service MySQL est arrêté pendant quelques secondes alors que la photo est créée puis a commencé à nouveau. La base de données (et généralement l'application sur le dessus, aussi) doivent être arrêtés. Cette disponibilité du service des impacts et de la performance (puisque tous les caches application / base de données sont effacées et doivent être reconstruites).

     

    • Option 2. Utilisez Dump en ligne
      Une décharge en ligne de chaque base de données est prise en utilisant la commande mysqldump qui copie une base de données pour le stockage accessible depuis le serveur MySQL. capacité de stockage supplémentaire et de stockage E / S sont nécessaires pour copier le fichier entier sur. Ce processus peut prendre un temps considérable.

     

    Lire la suite

  • La découverte du siècle

  • Compresser les logs

    Voici un scripts en SHELL qui permet de compresser les logs de plus de 7 jours : 

     

    #!/bin/bash

    . /etc/profile
    . ~/.bash_profile

    # this script is used to compress logs having more 7 days.


    if [ -z $LOGS ] ;
    then
    echo "subject:Application " ${DB_CONFIG_TYPE} ${DB_NAME} " : gzip logs postgres FAIL" > /tmp/Mail_gzip_ko
    echo "From:josselin@hotmail.com" >> /tmp/Mail_gzip_ko
    echo "logs are not compressed" >> /tmp/Mail_gzip_ko
    mail josselin@hotmail.com < /tmp/Mail_gzip_ko
    rm /tmp/Mail_gzip_ko
    exit 0
    fi

    if [ -n $LOGS ] ;
    then
    find $LOGS/ -size 0 -type f -name "*.log" -exec rm {} ;
    find $LOGS/ -size 0 -type f -name "*.csv" -exec rm {} ;
    find $LOGS/ -type f -name "*.log*" -mtime +100 -exec rm {} ;
    find $LOGS/ -type f -name "*.csv*" -mtime +100 -exec rm {} ;
    find $LOGS/ -type f -name "*.log" -mtime +1 -exec /usr/bin/gzip {} ;
    find $LOGS/ -type f -name "*.csv" -mtime +1 -exec /usr/bin/gzip {} ;
    fi

  • Vacuum Freeze [ PSQL]

    -<Req:

    pfw_oltp=# SELECT freez

    pfw_oltp-# ,greatest(age(c.relfrozenxid),age(t.relfrozenxid)) as max

    pfw_oltp-# ,ROUND(100*(greatest(age(c.relfrozenxid),age(t.relfrozenxid)))::float/freez::float) AS perc

    pfw_oltp-# FROM pg_class c

    pfw_oltp-# LEFT JOIN pg_class t ON c.reltoastrelid = t.oid

    pfw_oltp-# JOIN (SELECT setting AS freez FROM pg_settings WHERE name = 'autovacuum_freeze_max_age') AS foo ON (true)

    pfw_oltp-# WHERE c.relkind = 'r' order by greatest(age(c.relfrozenxid),age(t.relfrozenxid)) desc limit 1;

    ->Res:

      freez   |    max    | perc

    -----------+-----------+------

    200000000 | 188290452 |   94

    Lire la suite

  • Trouver les tables sans clés primaires [MySQL]

    Fier de moi , voici la requête que j'ai trouvé pour mon équipe...

    La requête suivante permet de trouver toutes les tables MySQL qui ne possèdent pas de clés primaires :

    USE INFORMATION_SCHEMA;

    SELECT

        TABLES.table_name

    FROM TABLES

    LEFT JOIN KEY_COLUMN_USAGE AS c

    ON (

           TABLES.TABLE_NAME = c.TABLE_NAME

       AND c.CONSTRAINT_SCHEMA = TABLES.TABLE_SCHEMA

       AND c.constraint_name = 'PRIMARY'

    )

    WHERE

        TABLES.table_schema <> 'information_schema'

    AND TABLES.table_schema <> 'performance_schema'

    AND TABLES.table_schema <> 'mysql'

    AND c.constraint_name IS NULL;