61 lines
2.1 KiB
PHP
61 lines
2.1 KiB
PHP
# ==== Purpose ====
|
|
#
|
|
# Extract the epoch values from SHOW ENGINE NDB STATUS.
|
|
#
|
|
# ==== Usage ====
|
|
#
|
|
# --source include/get_ndb_epochs.inc
|
|
# --echo $ndb_latest_epoch
|
|
# --echo $ndb_latest_trans_epoch
|
|
# --echo $ndb_latest_received_binlog_epoch
|
|
# --echo $ndb_latest_handled_binlog_epoch
|
|
# --echo $ndb_latest_applied_binlog_epoch
|
|
#
|
|
# ==== Parameters ====
|
|
#
|
|
# $ndb_status_binlog_row
|
|
# The row number of the output of SHOW ENGINE NDB STATUS
|
|
# last was seen.
|
|
# No need to set explictly, but used between sourcing this
|
|
# include file several times, since it is highly probable
|
|
# (but not certain) that same row number also applies next
|
|
# time.
|
|
|
|
if (!$ndb_status_binlog_row)
|
|
{
|
|
let $ndb_status_binlog_row = 1;
|
|
}
|
|
|
|
# Try two times, in case the row number of binlog state changes
|
|
# between two invocations of SHOW ENGINE NDB STATUS.
|
|
let $attempts= 2;
|
|
while ($attempts)
|
|
{
|
|
let $q= query_get_value(SHOW ENGINE NDB STATUS, Status, $ndb_status_binlog_row);
|
|
if ( `SELECT '$q' = 'No such row'` )
|
|
{
|
|
dec $attempts;
|
|
if (!$attempts)
|
|
{
|
|
echo ERROR IN TEST: No binlog row found in SHOW ENGINE NDB STATUS;
|
|
die ERROR IN TEST: No binlog row found in SHOW ENGINE NDB STATUS;
|
|
}
|
|
# row will be increased to 1 further down
|
|
let $ndb_status_binlog_row = 0;
|
|
}
|
|
if (`SELECT INSTR('$q', 'latest_epoch=')`)
|
|
{
|
|
let $attempts = 0 ;
|
|
}
|
|
if ($attempts)
|
|
{
|
|
inc $ndb_status_binlog_row;
|
|
}
|
|
}
|
|
|
|
let $ndb_latest_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_epoch=')), ',', 1), '=', -1)`;
|
|
let $ndb_latest_trans_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_trans_epoch=')), ',', 1), '=', -1)`;
|
|
let $ndb_latest_received_binlog_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_received_binlog_epoch=')), ',', 1), '=', -1)`;
|
|
let $ndb_latest_handled_binlog_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_handled_binlog_epoch=')), ',', 1), '=', -1)`;
|
|
let $ndb_latest_applied_binlog_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_applied_binlog_epoch=')), ',', 1), '=', -1)`;
|