Ver Mensaje Individual
  #32 (permalink)  
Antiguo 30/11/2009, 07:41
Avatar de Datacenter1
Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Aquí están los scripts mysql que había ofrecido:

mysql_repair:

Código:
### MySQL Setup ###
MUSER="root"
MPASS="xxxxxx"  # coloca aqui el password de root mysql
MHOST="localhost"
# No need to change below this, unless your mysql_repair_db.sh script isn't on /root/mysql_repair_db.sh
MYSQL="$(which mysql)"

DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
  if [ "$db" != "information_schema" ]; then
    RES="$(/root/mysql_repair_db.sh --optimize --credentials "-u${MUSER} -p${MPASS}" $db)"
    #echo $RES >> /root/log_mysql_optimize
    RES="$(/root/mysql_repair_db.sh --repair --credentials "-u${MUSER} -p${MPASS}" $db)"
    #echo $RES >> /root/log_mysql_repair
  fi
done
mysql_repair_db.sh:

Código:
    #!/bin/sh

    # this shell script finds all the tables for a database and run a command against it
    # @usage "mysql_tables.sh --optimize MyDatabaseABC"
    # @bug fixed by WebLive Help at July 1st 2008
    # @author Son Nguyen from http://www.fagioli.biz/?q=mysql-database-optimize-and-repair-bash-script

    #AUTH='-uweb -pwebphp'
    AUTH='-uadmin -pqLtwUCRKL8'

    AUTH=$3
    DBNAME=$4

    printUsage() {
    echo "Usage: $0"
    echo " --optimize --credentials '-uUSERNAME -pPASSWORD' "
    echo " --repair "
    return
    }

    doAllTables() {
    # get the table names
    TABLENAMES=`mysql $AUTH -D $DBNAME -e "SHOW TABLES\G;"|grep 'Tables_in_'|sed -n 's/.*Tables_in_.*: \([_0-9A-Za-z]*\).*/\1/p'`

    # loop through the tables and optimize them
    for TABLENAME in $TABLENAMES
    do
    mysql $AUTH -D $DBNAME -e "$DBCMD TABLE \`$TABLENAME\`;"
    #mysql $AUTH -D $DBNAME -e  ALTER TABLE $TABLENAME ENGINE = MYISAM;
    done
    }

    if [ $# -lt 3 ] ; then
    printUsage
    exit 1
    fi

    case $1 in
    --optimize) DBCMD=OPTIMIZE; doAllTables;;
    --repair) DBCMD=REPAIR; doAllTables;;
    --help) printUsage; exit 1;;
    *) printUsage; exit 1;;
    esac
Instrucciones:

Son dos scripts el primero es mysql_repair el otro es mysql_repair_db.sh uno llama al otro para reparar y optimizar todas las bases de datos de un servidor MySQL

Copia ambos scripts en la carpeta /root
chmod 700 mysql_repair mysql_repair.sh
Modifica mysql_repair y coloca el password de root mysql en MPASS
para ejecutar: /root/mysql_repair

Ninguno de los dos son de mi autoría, pero ambos de libre distribución.
Es fácil modificarlos a tus preferencias o necesidades
Yo los corro una vez por semana en una tarea cron

Última edición por Datacenter1; 30/11/2009 a las 11:16 Razón: error