30 public function SlaveNodeConnection($db_host, $db_name, $db_login, $db_password, $master_host=
false, $master_port=
false, $master_id = 1)
38 'DB_HOST' => $db_host,
39 'DB_NAME' => $db_name,
40 'DB_LOGIN' => $db_login,
41 'DB_PASSWORD' => $db_password,
47 $nodeDB = CDatabase::GetDBNodeConnection($node_id,
true);
48 $error = ob_get_contents();
51 catch (\
Bitrix\Main\DB\ConnectionException $e)
57 if (is_object($nodeDB))
60 $bSkipSecondTest =
false;
62 $rs = $nodeDB->Query(
'select CLIENT_ADDR,STATE,REPLAY_LAG,SYNC_STATE,REPLY_TIME from bx_cluster_stat_replication()',
true,
'', [
'fixed_connection' =>
true]);
69 if ($nodeDB->TableExists(
'b_cluster_dbnode') && !$bSkipSecondTest)
72 $uniqid = md5(mt_rand());
73 $DB->Query(
"UPDATE b_cluster_dbnode SET UNIQID='" . $uniqid .
"' WHERE ID=1",
false,
'', [
'fixed_connection' =>
true]);
74 $rs = $nodeDB->Query(
'SELECT UNIQID FROM b_cluster_dbnode WHERE ID=1',
true);
79 if (
$ar[
'UNIQID'] == $uniqid)
static GetByID($node_id, $arVirtNode=false)
MainNodeForReplication($arMasterNode)
static GetServerVariables($DB, $arVariables, $db_mask)
GetServerVariable($DB, $var_name)
SlaveNodeForMaster($nodeDB)
SlaveNodeForReplication($nodeDB)
SlaveNodeIsReplicationRunning($db_host, $db_name, $db_login, $db_password, $master_host=false, $master_port=false)
SlaveNodeConnection($db_host, $db_name, $db_login, $db_password, $master_host=false, $master_port=false, $master_id=1)
MainNodeCommon($arMasterNode)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)