- Модуль: cluster
- Путь к файлу: ~/bitrix/modules/cluster/classes/mysql/dbnode_check.php
- Класс: CClusterDBNodeCheck
- Вызов: CClusterDBNodeCheck::SlaveNodeForReplication
function SlaveNodeForReplication($nodeDB)
{
global $DB;
$result = array();
$main_server_id = intval($this->GetServerVariable($DB, "server_id"));
$node_server_id = intval($this->GetServerVariable($nodeDB, "server_id"));
$is_ok = $node_server_id > 0 && $main_server_id != $node_server_id;
if($is_ok)
{
$rsNodes = CClusterDBNode::GetList(array(), array(
"=SERVER_ID" => $node_server_id,
"!=MASTER_ID" => false,
));
$is_ok2 = !is_array($rsNodes->Fetch());
}
else
{
$is_ok2 = true;
}
$result["server_id"] = array(
"IS_OK" => $is_ok && $is_ok2? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::ERROR,
"MESSAGE" => GetMessage("CLU_SERVER_ID_MSG", array("#server-id#" => $node_server_id)),
"WIZ_REC" => ($is_ok? "": GetMessage("CLU_SERVER_ID_WIZREC1"))." "
.($is_ok2? "": GetMessage("CLU_SERVER_ID_WIZREC2"))." "
.GetMessage("CLU_SERVER_ID_WIZREC")
,
);
$master_max_allowed_packet = $this->GetServerVariable($DB, "max_allowed_packet");
$slave_max_allowed_packet = $this->GetServerVariable($nodeDB, "max_allowed_packet");
$is_ok = $slave_max_allowed_packet >= $master_max_allowed_packet;
$result["max_allowed_packet"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::WARNING,
"MESSAGE" => GetMessage("CLU_MAX_ALLOWED_PACKET_MSG"),
"WIZ_REC" => GetMessage("CLU_MAX_ALLOWED_PACKET_WIZREC"),
);
$master_version = $this->GetServerVariable($DB, "version");
$slave_version = $this->GetServerVariable($nodeDB, "version");
$is_ok = version_compare($master_version, $slave_version) <= 0;
$result["slave_version"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::ERROR,
"MESSAGE" => GetMessage("CLU_VERSION_MSG", array(
"#slave-version#" => $slave_version,
"#master-version#" => $master_version,
)),
"WIZ_REC" => GetMessage("CLU_VERSION_WIZREC"),
);
$relay_log = $this->GetServerVariable($nodeDB, "relay_log");
$is_ok = $relay_log <> '';
$result["relay_log"] = array(
"IS_OK" => $is_ok? CClusterDBNodeCheck::OK: CClusterDBNodeCheck::WARNING,
"MESSAGE" => GetMessage("CLU_SLAVE_RELAY_LOG_MSG"),
"WIZ_REC" => GetMessage("CLU_RELAY_LOG_WIZREC"),
);
return $result;
}