• Модуль: cluster
  • Путь к файлу: ~/bitrix/modules/cluster/classes/mysql/dbnode_check.php
  • Класс: CClusterDBNodeCheck
  • Вызов: CClusterDBNodeCheck::SlaveNodeIsReplicationRunning
function SlaveNodeIsReplicationRunning($db_host, $db_name, $db_login, $db_password, $master_host=false, $master_port=false)
{
	global $DB;

	$node_id = "v99";
	CClusterDBNode::GetByID($node_id, array(
		"ACTIVE" => "Y",
		"STATUS" => "ONLINE",
		"DB_HOST" => $db_host,
		"DB_NAME" => $db_name,
		"DB_LOGIN" => $db_login,
		"DB_PASSWORD" => $db_password,
	));

	ob_start();
	$nodeDB = CDatabase::GetDBNodeConnection($node_id, true);
	$error = ob_get_contents();
	ob_end_clean();

	if(is_object($nodeDB))
	{
		//Check if replication is runnung
		$rs = $nodeDB->Query("show slave status");
		$ar = $rs->Fetch();

		if($ar && $ar["Slave_IO_State"] <> '')
		{
			if($ar["Master_Host"] == $master_host && $ar["Master_Port"] == $master_port)
				return $nodeDB;
			else
				return GetMessage("CLU_RUNNING_SLAVE");
		}
		else
		{
			return false;
		}
	}
	else
	{
		return $error;
	}
}