Esempio n. 1
0
function save()
{
    $mysql = new mysqlserver();
    while (list($index, $line) = each($_GET)) {
        $mysql->main_array[trim($index)] = trim($line);
    }
    $mysql->save();
}
Esempio n. 2
0
function status_computer_mysql_memory_check()
{
    include_once 'ressources/class.mysql-server.inc';
    $t = time();
    $instance_id = 0;
    $page = CurrentPageName();
    $tpl = new templates();
    $mysql = new mysqlserver();
    $users = new usersMenus();
    if (!$users->AsSystemAdministrator) {
        return;
    }
    if ($users->MEM_TOTAL_INSTALLEE < 624288) {
        return;
    }
    $serverMem = round(($users->MEM_TOTAL_INSTALLEE - 300) / 1024);
    $color = "black";
    $VARIABLES = $mysql->SHOW_VARIABLES();
    if (!is_numeric($mysql->main_array["max_connections"])) {
        $mysql->main_array["max_connections"] = $VARIABLES["max_connections"];
    }
    $read_buffer_size = $mysql->main_array["read_buffer_size"];
    if (!is_numeric($read_buffer_size)) {
        $read_buffer_size = $VARIABLES["read_buffer_size"] / 1024 / 1000;
    }
    $read_rnd_buffer_size = $mysql->main_array["read_rnd_buffer_size"];
    if (!is_numeric($read_rnd_buffer_size)) {
        $read_rnd_buffer_size = $VARIABLES["read_rnd_buffer_size"] / 1024 / 1000;
    }
    $sort_buffer_size = $mysql->main_array["sort_buffer_size"];
    if (!is_numeric($sort_buffer_size)) {
        $sort_buffer_size = $VARIABLES["sort_buffer_size"] / 1024 / 1000;
    }
    $thread_stack = $mysql->main_array["thread_stack"];
    if (!is_numeric($thread_stack)) {
        $thread_stack = $VARIABLES["thread_stack"] / 1024 / 1000;
    }
    $join_buffer_size = $mysql->main_array["join_buffer_size"];
    if (!is_numeric($join_buffer_size)) {
        $join_buffer_size = $VARIABLES["join_buffer_size"] / 1024 / 1000;
    }
    $per_thread_buffers = $sort_buffer_size + $read_rnd_buffer_size + $sort_buffer_size + $thread_stack + $join_buffer_size;
    $Warn = false;
    $total_per_thread_buffers = $per_thread_buffers * $mysql->main_array["max_connections"];
    if ($total_per_thread_buffers > $serverMem) {
        $Warn = true;
    }
    $key_buffer_size = $mysql->main_array["key_buffer_size"];
    if (!is_numeric($key_buffer_size)) {
        $key_buffer_size = $VARIABLES["key_buffer_size"] / 1024 / 1000;
    }
    $max_tmp_table_size = $mysql->main_array["max_tmp_table_size"];
    if (!is_numeric($max_tmp_table_size)) {
        $max_tmp_table_size = $VARIABLES["max_tmp_table_size"] / 1024 / 1000;
    }
    $innodb_buffer_pool_size = $mysql->main_array["innodb_buffer_pool_size"];
    if (!is_numeric($innodb_buffer_pool_size)) {
        $innodb_buffer_pool_size = $VARIABLES["innodb_buffer_pool_size"] / 1024 / 1000;
    }
    $innodb_additional_mem_pool_size = $mysql->main_array["innodb_additional_mem_pool_size"];
    if (!is_numeric($innodb_additional_mem_pool_size)) {
        $innodb_additional_mem_pool_size = $VARIABLES["innodb_additional_mem_pool_size"] / 1024 / 1000;
    }
    $innodb_log_buffer_size = $mysql->main_array["innodb_log_buffer_size"];
    if (!is_numeric($innodb_log_buffer_size)) {
        $innodb_log_buffer_size = $VARIABLES["innodb_log_buffer_size"] / 1024 / 1000;
    }
    $query_cache_size = $mysql->main_array["query_cache_size"];
    if (!is_numeric($query_cache_size)) {
        $query_cache_size = $VARIABLES["query_cache_size"] / 1024 / 1000;
    }
    $server_buffers = $key_buffer_size + $max_tmp_table_size + $innodb_buffer_pool_size + $innodb_additional_mem_pool_size + $innodb_log_buffer_size + $query_cache_size;
    if ($server_buffers > $serverMem) {
        $Warn = true;
    }
    $max_used_memory = $server_buffers + $total_per_thread_buffers;
    if ($max_used_memory > $serverMem) {
        $Warn = true;
    }
    $UNIT = "M";
    if ($max_used_memory > 1000) {
        $max_used_memory = round($max_used_memory / 1000, 2);
        $UNIT = "G";
    }
    $text = $tpl->_ENGINE_parse_body("{mysql_warn_must_tune}");
    $text = str_replace("%m", $serverMem, $text);
    if ($Warn) {
        echo "\n\t\t<table style='width:99%' class=form>\n\t\t<tr>\n\t\t\t<td valign='top'><img src='img/database-error-64.png'>\n\t\t\t<td valign='top'><a href=\"javascript:blur();\" OnClick=\"Loadjs('mysql.perfs.php',true);\" \n\t\t\tstyle='font-size:12px;color:#C72727;text-decoration:underline'>{$text}</a>\n\t\t\t</td>\n\t\t</tr>\n\t\t</table>\n\t\t\n\t\t";
        return;
    }
    $sock = new sockets();
    $sock->SET_INFO("MySqlMemoryCheck", 1);
}
Esempio n. 3
0
function page()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $users = new usersMenus();
    $EnableZarafaTuning = $sock->GET_INFO("EnableZarafaTuning");
    if (!is_numeric($EnableZarafaTuning)) {
        $EnableZarafaTuning = 0;
    }
    $ZarafTuningParameters = unserialize(base64_decode($sock->GET_INFO("ZarafaTuningParameters")));
    $zarafa_innodb_buffer_pool_size = $ZarafTuningParameters["zarafa_innodb_buffer_pool_size"];
    $zarafa_query_cache_size = $ZarafTuningParameters["zarafa_query_cache_size"];
    $zarafa_innodb_log_file_size = $ZarafTuningParameters["zarafa_innodb_log_file_size"];
    $zarafa_innodb_log_buffer_size = $ZarafTuningParameters["zarafa_innodb_log_buffer_size"];
    $zarafa_max_allowed_packet = $ZarafTuningParameters["zarafa_max_allowed_packet"];
    $zarafa_max_connections = $ZarafTuningParameters["zarafa_max_connections"];
    $memory = $users->MEM_TOTAL_INSTALLEE / 1000;
    if (!is_numeric($zarafa_max_connections)) {
        $zarafa_max_connections = 150;
    }
    if (!is_numeric($zarafa_innodb_buffer_pool_size)) {
        $zarafa_innodb_buffer_pool_size = round($memory / 2.8);
    }
    if (!is_numeric($zarafa_innodb_log_file_size)) {
        $zarafa_innodb_log_file_size = round($zarafa_innodb_buffer_pool_size * 0.25);
    }
    if (!is_numeric($zarafa_innodb_log_buffer_size)) {
        $zarafa_innodb_log_buffer_size = 32;
    }
    if (!is_numeric($zarafa_max_allowed_packet)) {
        $zarafa_max_allowed_packet = 16;
    }
    if (!is_numeric($zarafa_query_cache_size)) {
        $zarafa_query_cache_size = 8;
    }
    if ($zarafa_innodb_log_file_size > 2000) {
        $zarafa_innodb_log_file_size = 2000;
    }
    $mysql = new mysqlserver();
    $VARIABLES = $mysql->SHOW_VARIABLES();
    $read_buffer_size = $ZarafTuningParameters["read_buffer_size"];
    if (!is_numeric($read_buffer_size)) {
        $read_buffer_size = $VARIABLES["read_buffer_size"] / 1024 / 1000;
    }
    $read_rnd_buffer_size = $ZarafTuningParameters["read_rnd_buffer_size"];
    if (!is_numeric($read_rnd_buffer_size)) {
        $read_rnd_buffer_size = $VARIABLES["read_rnd_buffer_size"] / 1024 / 1000;
    }
    $sort_buffer_size = $ZarafTuningParameters["sort_buffer_size"];
    if (!is_numeric($sort_buffer_size)) {
        $sort_buffer_size = $VARIABLES["sort_buffer_size"] / 1024 / 1000;
    }
    $thread_stack = $ZarafTuningParameters["thread_stack"];
    if (!is_numeric($thread_stack)) {
        $thread_stack = $VARIABLES["thread_stack"] / 1024 / 1000;
    }
    $join_buffer_size = $ZarafTuningParameters["join_buffer_size"];
    if (!is_numeric($join_buffer_size)) {
        $join_buffer_size = $VARIABLES["join_buffer_size"] / 1024 / 1000;
    }
    $key_buffer_size = $ZarafTuningParameters["key_buffer_size"];
    if (!is_numeric($key_buffer_size)) {
        $key_buffer_size = $VARIABLES["key_buffer_size"] / 1024 / 1000;
    }
    $max_tmp_table_size = $ZarafTuningParameters["max_tmp_table_size"];
    if (!is_numeric($max_tmp_table_size)) {
        $max_tmp_table_size = $VARIABLES["max_tmp_table_size"] / 1024 / 1000;
    }
    $query_cache_size = $ZarafTuningParameters["query_cache_size"];
    if (!is_numeric($query_cache_size)) {
        $query_cache_size = $VARIABLES["query_cache_size"] / 1024 / 1000;
    }
    $html = "\n\t<div class=explain id='zarafa_mysql_tuning_text' style='font-size:18px'>{zarafa_mysql_tuning_text}</div>\n\t<div style='width:98%' class=form>\n\t<table style='width:100%'>\n\t<tR>\n\t\t<td class=legend style='font-size:22px'>{enable_tuning_mysql_server}:</td>\n\t\t<td>" . Field_checkbox_design("EnableZarafaTuning", 1, $EnableZarafaTuning, "EnableZarafaTuningCheck()") . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td colspan=2><div style='font-size:30px'>{threads}:</td>\n\t</tr>\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{read_buffer_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("read_buffer_size", $read_buffer_size, "font-size:22px;width:110px;padding:3px") . "&nbsp;M</td>\n\t</tr>\n\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{read_rnd_buffer_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("read_rnd_buffer_size", $read_rnd_buffer_size, "font-size:22px;width:110px;padding:3px") . "&nbsp;M</td>\n\t</tr>\n\t\n\t<tr>\t\n\t\t<td class=legend style='font-size:22px'>{sort_buffer_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("sort_buffer_size", $sort_buffer_size, "font-size:22px;width:110px;padding:3px") . "&nbsp;M</td>\n\t</tr>\t\n\t\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>thread_stack:</td>\n\t\t<td style='font-size:22px'>" . Field_text("thread_stack", $thread_stack, "font-size:22px;width:110px;padding:3px") . "&nbsp;M</td>\n\t</tr>\n\t\n\t<tr>\n\t\t<td colspan=2><hr></td>\n\t</tr>\t\n\t<tr>\n\t\t<td colspan=2><div style='font-size:30px'>{server}:</td>\n\t</tr>\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{key_buffer_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("key_buffer_size", $key_buffer_size, "font-size:22px;width:110px;padding:3px") . "&nbsp;M</td>\n\t</tr>\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>max_tmp_table_size:</td>\n\t\t<td style='font-size:22px'>" . Field_text("max_tmp_table_size", $max_tmp_table_size, "font-size:22px;width:110px;padding:3px") . "&nbsp;M</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{query_cache_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("query_cache_size", $query_cache_size, "font-size:22px;width:110px;padding:3px") . "&nbsp;M</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{max_allowed_packet}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("zarafa_max_allowed_packet", $zarafa_max_allowed_packet, "font-size:22px;width:90px") . "&nbsp;M</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{max_connections}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("zarafa_max_connections", $zarafa_max_connections, "font-size:22px;width:90px") . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\t\t\t\t\t\t\t\n\t<tr>\n\t\t<td colspan=2><hr></td>\n\t</tr>\t\n\t<tr>\n\t\t<td colspan=2><div style='font-size:30px'>INNODB:</td>\n\t</tr>\t\t\n\t\t\t\t\n<tr>\n\t\t<td class=legend style='font-size:22px'>{innodb_buffer_pool_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("zarafa_innodb_buffer_pool_size", $zarafa_innodb_buffer_pool_size, "font-size:22px;width:90px") . "&nbsp;M</td>\n\t\t<td width=1%>" . help_icon("{zarafa_innodb_buffer_pool_size}") . "</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{query_cache_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("zarafa_query_cache_size", $zarafa_query_cache_size, "font-size:22px;width:90px") . "&nbsp;M</td>\n\t</tr>\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{innodb_log_file_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("zarafa_innodb_log_file_size", $zarafa_innodb_log_file_size, "font-size:22px;width:90px") . "&nbsp;M</td>\n\t\t<td width=1%>" . help_icon("{zarafa_innodb_log_file_size}") . "</td>\n\t</tr>\t\n\t<tr>\n\t\t<td class=legend style='font-size:22px'>{innodb_log_buffer_size}:</td>\n\t\t<td style='font-size:22px'>" . Field_text("zarafa_innodb_log_buffer_size", $zarafa_innodb_log_buffer_size, "font-size:22px;width:90px") . "&nbsp;M</td>\n\t\t<td width=1%>" . help_icon("{zarafa_innodb_log_buffer_size}") . "</td>\n\t\t\n\t</tr>\t\n\n\t<tr>\n\t\t<td colspan=3 align=right><hr>" . button("{apply}", "ZarafaTunIngApply()", 30) . "</td>\n\t</tr>\t\n</table>\n</div>\n<script>\n\tfunction EnableZarafaTuningCheck(){\n\t\tdocument.getElementById('zarafa_innodb_buffer_pool_size').disabled=true;\n\t\tdocument.getElementById('zarafa_query_cache_size').disabled=true;\n\t\tdocument.getElementById('zarafa_innodb_log_file_size').disabled=true;\n\t\tdocument.getElementById('zarafa_innodb_log_buffer_size').disabled=true;\n\t\tdocument.getElementById('zarafa_max_allowed_packet').disabled=true;\n\t\tdocument.getElementById('zarafa_max_connections').disabled=true;\n\t\t\n\t\tdocument.getElementById('read_buffer_size').disabled=true;\n\t\tdocument.getElementById('read_rnd_buffer_size').disabled=true;\n\t\tdocument.getElementById('sort_buffer_size').disabled=true;\n\t\tdocument.getElementById('thread_stack').disabled=true;\n\t\t\n\t\tdocument.getElementById('key_buffer_size').disabled=true; \n\t\tdocument.getElementById('max_tmp_table_size').disabled=true; \n\t\tdocument.getElementById('query_cache_size').disabled=true;\n\t\t\n\t\tif(document.getElementById('EnableZarafaTuning').checked){\n\t\t\tdocument.getElementById('zarafa_innodb_buffer_pool_size').disabled=false;\n\t\t\tdocument.getElementById('zarafa_query_cache_size').disabled=false;\n\t\t\tdocument.getElementById('zarafa_innodb_log_file_size').disabled=false;\n\t\t\tdocument.getElementById('zarafa_innodb_log_buffer_size').disabled=false;\n\t\t\tdocument.getElementById('zarafa_max_allowed_packet').disabled=false;\n\t\t\tdocument.getElementById('zarafa_max_connections').disabled=false;\t\n\t\t\tdocument.getElementById('read_buffer_size').disabled=false;\n\t\t\tdocument.getElementById('read_rnd_buffer_size').disabled=false;\n\t\t\tdocument.getElementById('sort_buffer_size').disabled=false;\n\t\t\tdocument.getElementById('thread_stack').disabled=false;\t\n\t\t\tdocument.getElementById('key_buffer_size').disabled=false; \n\t\t\tdocument.getElementById('max_tmp_table_size').disabled=false; \n\t\t\tdocument.getElementById('query_cache_size').disabled=false;\n\t\t}\n\t\n\t}\n\tvar x_ZarafaTunIngApply= function (obj) {\n\t\tvar tempvalue=obj.responseText;\n\t\tif(tempvalue.length>3){alert(tempvalue);}\n\t\t\n\t\t}\t\n\t\n\tfunction ZarafaTunIngApply(){\n\t\tvar XHR = new XHRConnection();\n\t\tif(document.getElementById('EnableZarafaTuning').checked){\n\t\t\tXHR.appendData('EnableZarafaTuning',1);}else{XHR.appendData('EnableZarafaTuning',0);}\n\t\t\tXHR.appendData('zarafa_innodb_buffer_pool_size',document.getElementById('zarafa_innodb_buffer_pool_size').value);\n\t\t\tXHR.appendData('zarafa_query_cache_size',document.getElementById('zarafa_query_cache_size').value);\n\t\t\tXHR.appendData('zarafa_innodb_log_file_size',document.getElementById('zarafa_innodb_log_file_size').value);\n\t\t\tXHR.appendData('zarafa_innodb_log_buffer_size',document.getElementById('zarafa_innodb_log_buffer_size').value);\n\t\t\tXHR.appendData('zarafa_max_allowed_packet',document.getElementById('zarafa_max_allowed_packet').value);\n\t\t\tXHR.appendData('zarafa_max_connections',document.getElementById('zarafa_max_connections').value);\n\t\t\tXHR.appendData('key_buffer_size',document.getElementById('key_buffer_size').value); \n\t\t\tXHR.appendData('max_tmp_table_size',document.getElementById('max_tmp_table_size').value); \n\t\t\tXHR.appendData('query_cache_size',document.getElementById('query_cache_size').value);\n\t\t\tXHR.appendData('read_buffer_size',document.getElementById('read_buffer_size').value);\n\t\t\tXHR.appendData('read_rnd_buffer_size',document.getElementById('read_rnd_buffer_size').value);\n\t\t\tXHR.appendData('sort_buffer_size',document.getElementById('sort_buffer_size').value);\n\t\t\tXHR.appendData('thread_stack',document.getElementById('thread_stack').value);\n\t\t\tXHR.sendAndLoad('{$page}', 'POST',x_ZarafaTunIngApply);\n\t\n\t}\n\t\nEnableZarafaTuningCheck();\n</script>\n\t";
    echo $tpl->_ENGINE_parse_body($html);
}
Esempio n. 4
0
    die;
}
if ($argv[1] == '--rebuild-zarafa') {
    rebuild_zarafa();
    die;
}
if ($argv[1] == '--squid-events-purge') {
    squid_events_purge();
    die;
}
if ($argv[1] == '--mysqlcheck') {
    mysqlcheck($argv[2], $argv[3]);
    die;
}
$sock = new sockets();
$q = new mysqlserver();
$MysqlConfigLevel = $sock->GET_INFO("MysqlConfigLevel");
if (!is_numeric($MysqlConfigLevel)) {
    $MysqlConfigLevel = 0;
}
$EnableZarafaTuning = $sock->GET_INFO("EnableZarafaTuning");
if (!is_numeric($EnableZarafaTuning)) {
    $EnableZarafaTuning = 0;
}
$users = new usersMenus();
if ($users->ZARAFA_INSTALLED) {
    if ($EnableZarafaTuning == 1) {
        $MysqlConfigLevel = -1;
    }
}
if ($MysqlConfigLevel > 0) {
Esempio n. 5
0
function multi_start($ID)
{
    $q = new mysqlserver();
    $GLOBALS["MULTI"] = true;
    $GLOBALS["SHOWLOGONLYFOR"] = $ID;
    multi_monit($ID);
    multi_create_cache();
    $q->mysql_multi();
    echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID}..\n";
    $pidfile = "/var/run/mysqld/mysqld{$ID}.pid";
    echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID} PID:{$pidfile}..\n";
    $unix = new unix();
    if ($unix->process_exists($unix->get_pid_from_file($pidfile))) {
        echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID} already running...\n";
        return;
    }
    $chmod = $unix->find_program("chmod");
    $ini = new iniFrameWork("/etc/mysql-multi.cnf");
    $database_path = $ini->get("mysqld{$ID}", "datadir");
    if (is_file("{$database_path}/error.log")) {
        @unlink("{$database_path}/error.log");
    }
    echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID} database={$database_path}\n";
    $cmd = "{$chmod} 755 {$database_path}";
    exec($cmd, $results);
    $mysqld_multi = $unix->find_program("mysqld_multi");
    $cmd = "{$mysqld_multi} --defaults-file=/etc/mysql-multi.cnf start {$ID} --verbose --no-log 2>&1";
    if (is_file("{$database_path}/maria_log_control")) {
        @unlink("{$database_path}/maria_log_control");
    }
    if ($GLOBALS["VERBOSE"]) {
        echo "{$cmd}\n";
    }
    exec($cmd, $results);
    while (list($index, $ligne) = each($results)) {
        echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID} {$ligne}\n";
    }
    for ($i = 0; $i < 4; $i++) {
        sleep(1);
        if ($unix->process_exists(multi_get_pid($ID))) {
            sleep(1);
            break;
        }
    }
    if (!$unix->process_exists(multi_get_pid($ID))) {
        echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID} failed..\n";
    } else {
        $q = new mysql_multi($ID);
        $q->QUERY_SQL_NO_BASE("create user 'mysqld_multi'@'127.0.0.1' identified by 'mysqld_multi'");
        $q->QUERY_SQL_NO_BASE("create user 'mysqld_multi'@'localhost' identified by 'mysqld_multi'");
        $q->QUERY_SQL_NO_BASE("create user 'grant shutdown on *.* to mysqld_multi'");
        $q = new mysqlserver_multi($ID);
        $q->setssl();
    }
    if (is_file("{$database_path}/error.log")) {
        echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID} {$database_path}/error.log\n";
        $f = explode("\n", @file_get_contents("{$database_path}/error.log"));
        while (list($index, $ligne) = each($f)) {
            if (trim($ligne) == null) {
                continue;
            }
            if (preg_match("#^[0-9]+\\s+[0-9\\:]+\\s+(.+)#", $ligne, $re)) {
                $ligne = $re[1];
            }
            echo "Starting......: " . date("H:i:s") . " {$ligne}\n";
        }
    } else {
        echo "Starting......: " . date("H:i:s") . " Mysql instance id:{$ID} {$database_path}/error.log no such file\n";
    }
}