summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@vps-18a7a2b7.vps.ovh.ca>2024-01-23 07:11:52 -0500
committerroot <root@vps-18a7a2b7.vps.ovh.ca>2024-01-23 07:11:52 -0500
commit22fcc5f6ca73bf68f2ac225f0da85fcb3c6a8de7 (patch)
treebbcc930a1be317da4749cb0668da5d009e66087b
parentf7a4cd6b4bf04269a675c8856fe9625a1b7817c1 (diff)
refactors
-rwxr-xr-xsrc/mariadb-push-replica.sh94
1 files changed, 70 insertions, 24 deletions
diff --git a/src/mariadb-push-replica.sh b/src/mariadb-push-replica.sh
index 69b9edf..ab83ada 100755
--- a/src/mariadb-push-replica.sh
+++ b/src/mariadb-push-replica.sh
@@ -36,10 +36,6 @@ primary_host=$(hostname --fqdn)
36replica_host=${1:-$default_replica_host} 36replica_host=${1:-$default_replica_host}
37replication_user=replication 37replication_user=replication
38 38
39[ "$primary_host" ]
40[ "$replica_host" ]
41[ "$replication_password" ]
42
43run_primary() 39run_primary()
44{ 40{
45 (set -x 41 (set -x
@@ -199,23 +195,73 @@ END
199 done 195 done
200} 196}
201 197
202set -e 198check_input()
203run_primary check_db 199{
204run_replica check_db 200 [ "$primary_host" ]
205: showvars replica 201 [ "$replica_host" ]
206: exit 202 [ "$replication_user" ]
207 203 [ "$replication_password" ]
208run_primary create_replication_user \ 204 dns_check_servers
209 "$replica_host" \ 205}
210 "$replication_user" \ 206
211 "$replication_password" 207dns_check_servers()
212run_primary create_backup 208{
213run_primary send_backup "$replica_host" 209 primary_ipv4=$(dig +short -ta "$primary_host")
214run_replica restore_from_backup 210 replica_ipv4=$(dig +short -ta "$replica_host")
215run_replica enable_replication \ 211 echo "primary: $primary_host $primary_ipv4"
216 "$primary_host" \ 212 echo "replica: $replica_host $replica_ipv4"
217 "$replication_user" \ 213}
218 "$replication_password" 214
219run_replica check_db 215truncated_machineid_decimal_string_int32()
220run_primary delete_backup 216{
221run_primary check_db 217 systemd-id128 machine-id |
218 sha256sum |
219 ( read -n8 &&
220 printf '%u\n' 0x"$REPLY" )
221}
222
223run_both()
224{
225 set -e
226 r=0
227 run_primary "$@" || r=$?
228 run_replica "$@"
229 return $r
230}
231
232set_server_id()
233{
234 set -e
235 chosen_id=$(truncated_machineid_decimal_string_int32)
236 [ "$chosen_id" -gt 1 ]
237 mariadb --skip-reconnect -t <<END
238set global server_id = $chosen_id;
239END
240}
241
242main()
243{
244 set -e
245 check_input
246 run_both set_server_id
247 run_both check_db
248 : showvars replica
249
250 run_primary create_replication_user \
251 "$replica_host" \
252 "$replication_user" \
253 "$replication_password"
254 run_primary create_backup
255 run_primary send_backup "$replica_host"
256 run_replica restore_from_backup
257 run_replica enable_replication \
258 "$primary_host" \
259 "$replication_user" \
260 "$replication_password"
261 run_replica check_db
262 run_primary delete_backup
263 run_primary check_db
264}
265
266main "$@"
267exit $?