TT#78950 improve ngcp-update-db 3308 sync

* determine the master db node name to use
      for ngcp-sync-db master-slave replication restoration
      if the CENTRAL_DBHOST is set by default to db01 only.
      if the current nodename ends with "a" then db01a is used,
      otehrwise db01b is used as the master host. that is
      to make sure that during the upgrade the correct "side"
      is used to replicate the data from and avoid lossy
      statements that break replication.

Change-Id: I1a51bd0d975390d9269ef5208ce8275f9e055a1f
(cherry picked from commit 1cfafba736)
mr8.0
Kirill Solomko 5 years ago
parent e93d910ff1
commit c2c41ea08e

@ -253,6 +253,20 @@ if $RUN_SYNC_DB && ($NOT_REPLICATED_REV_APPLIED || [ -n "$AUTOMATED_INSTALL_MODE
if [ -n "$AUTOMATED_INSTALL_MODE" ] ; then
EXTRA_SYNC_DB_OPTS="--local-user=root --set-local-grants"
fi
# determine the preferred db node a or b if the default db01 is the constants
MASTER_NODE_PREF=""
if [ "$CENTRAL_DBHOST" == "db01" ] ; then
NODE_SIDE="a"
if [[ "$nodename" == *b ]] ; then
NODE_SIDE="b"
fi
MASTER_NODE_PREF="db01${NODE_SIDE}"
fi
if [ -n "$MASTER_NODE_PREF" ] ; then
EXTRA_SYNC_DB_OPTS="$EXTRA_SYNC_DB_OPTS --master-host $MASTER_NODE_PREF"
fi
# shellcheck disable=SC2086
if /usr/sbin/ngcp-sync-db --verbose --force --use-central-db --repl-mode "master-slave" --databases "${PRX_SYNC_DBS}" --ignore-tables "${PRX_IGNORE_TABLES}" --ssh-tunnel=33125 ${EXTRA_SYNC_DB_OPTS} --local-host=${LOCAL_DBHOST} --local-port=${LOCAL_DBPORT}; then
echo "Syncing 'not_replicated' statements from the central node."

Loading…
Cancel
Save