Skip to content

Commit

Permalink
Add PITR Replication Strategy Support & Fix Same Memeber_ID (#42)
Browse files Browse the repository at this point in the history
Signed-off-by: SK Ali Arman <[email protected]>
  • Loading branch information
sheikh-arman authored Dec 5, 2024
1 parent df8b0b1 commit c5603b7
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 0 deletions.
1 change: 1 addition & 0 deletions init-script/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@

rm -rf /var/lib/mysql/lost+found
rm -rf /run-scripts/*
rm /var/lib/mysql/auto.cnf
cp /tmp/scripts/* /scripts
32 changes: 32 additions & 0 deletions scripts/copy-data.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash

ROOT_DIR="$ROOT_DIR"
TOTAL_DIR_TO_COPY="$TOTAL_DIR_TO_COPY"
DATA_DIR="$DATA_DIR"

if [ -z "$ROOT_DIR" ] || [ -z "$TOTAL_DIR_TO_COPY" ]; then
echo "ROOT_DIR and TOTAL_DIR_TO_COPY must be set."
exit 1
fi
Size1=$(du -s "$ROOT_DIR" | cut -f1)
echo "DATA DIRECTORY SIZE: ", $Size1
for (( i = 1; i <= $TOTAL_DIR_TO_COPY; i++ ));do
if [[ -d "$ROOT_DIR$i" ]];then
Size2=$(du -s "$ROOT_DIR$i" | cut -f1)
echo $Size1, " ", $Size2
if [[ "$Size1" == "$Size2" ]];then
continue
fi
fi
# not deleting any data
# because the sole purpose of this script is to copy the data
# rm -rf "$ROOT_DIR$i"/*
rm "$ROOT_DIR/mysql.sock"
cp -rvL "$ROOT_DIR/"* "$ROOT_DIR$i"/
if [[ $? -ne 0 ]]; then
echo "Error occurred while copying to $ROOT_DIR$i"
exit 1
fi
done

exit 0
15 changes: 15 additions & 0 deletions scripts/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,21 @@
# POD_IP_TYPE = Address type of POD_IP (one of IPV4, IPv6)

env | sort | grep "POD\|HOST\|NAME"
RECOVERY_DONE_FILE="/tmp/recovery.done"
if [[ "$PITR_RESTORE" == "true" ]]; then
while true; do
sleep 2
echo "Point In Time Recovery In Progress. Waiting for $RECOVERY_DONE_FILE file"
if [[ -e "$RECOVERY_DONE_FILE" ]]; then
echo "$RECOVERY_DONE_FILE found."
break
fi
done
fi

if [[ -e "$RECOVERY_DONE_FILE" ]]; then
rm $RECOVERY_DONE_FILE
fi

if [ "$POD_IP_TYPE" = "IPv6" ]; then
log "ERROR" "MySQL 5.7 is not supported on an IPv6 cluster."
Expand Down
19 changes: 19 additions & 0 deletions scripts/standalone-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

if [[ -z "$TOPOLOGY" ]]; then
RECOVERY_DONE_FILE="/tmp/recovery.done"
if [[ "$PITR_RESTORE" == "true" ]]; then
while true; do
sleep 2
echo "Point In Time Recovery In Progress. Waiting for $RECOVERY_DONE_FILE file"
if [[ -e "$RECOVERY_DONE_FILE" ]]; then
echo "$RECOVERY_DONE_FILE found."
break
fi
done
fi

if [[ -e "$RECOVERY_DONE_FILE" ]]; then
rm $RECOVERY_DONE_FILE
fi
fi

0 comments on commit c5603b7

Please sign in to comment.