diff options
author | root <root@vps-18a7a2b7.vps.ovh.ca> | 2024-01-23 07:11:52 -0500 |
---|---|---|
committer | root <root@vps-18a7a2b7.vps.ovh.ca> | 2024-01-23 07:11:52 -0500 |
commit | 22fcc5f6ca73bf68f2ac225f0da85fcb3c6a8de7 (patch) | |
tree | bbcc930a1be317da4749cb0668da5d009e66087b | |
parent | f7a4cd6b4bf04269a675c8856fe9625a1b7817c1 (diff) |
refactors
-rwxr-xr-x | src/mariadb-push-replica.sh | 94 |
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) | |||
36 | replica_host=${1:-$default_replica_host} | 36 | replica_host=${1:-$default_replica_host} |
37 | replication_user=replication | 37 | replication_user=replication |
38 | 38 | ||
39 | [ "$primary_host" ] | ||
40 | [ "$replica_host" ] | ||
41 | [ "$replication_password" ] | ||
42 | |||
43 | run_primary() | 39 | run_primary() |
44 | { | 40 | { |
45 | (set -x | 41 | (set -x |
@@ -199,23 +195,73 @@ END | |||
199 | done | 195 | done |
200 | } | 196 | } |
201 | 197 | ||
202 | set -e | 198 | check_input() |
203 | run_primary check_db | 199 | { |
204 | run_replica check_db | 200 | [ "$primary_host" ] |
205 | : showvars replica | 201 | [ "$replica_host" ] |
206 | : exit | 202 | [ "$replication_user" ] |
207 | 203 | [ "$replication_password" ] | |
208 | run_primary create_replication_user \ | 204 | dns_check_servers |
209 | "$replica_host" \ | 205 | } |
210 | "$replication_user" \ | 206 | |
211 | "$replication_password" | 207 | dns_check_servers() |
212 | run_primary create_backup | 208 | { |
213 | run_primary send_backup "$replica_host" | 209 | primary_ipv4=$(dig +short -ta "$primary_host") |
214 | run_replica restore_from_backup | 210 | replica_ipv4=$(dig +short -ta "$replica_host") |
215 | run_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 | |
219 | run_replica check_db | 215 | truncated_machineid_decimal_string_int32() |
220 | run_primary delete_backup | 216 | { |
221 | run_primary check_db | 217 | systemd-id128 machine-id | |
218 | sha256sum | | ||
219 | ( read -n8 && | ||
220 | printf '%u\n' 0x"$REPLY" ) | ||
221 | } | ||
222 | |||
223 | run_both() | ||
224 | { | ||
225 | set -e | ||
226 | r=0 | ||
227 | run_primary "$@" || r=$? | ||
228 | run_replica "$@" | ||
229 | return $r | ||
230 | } | ||
231 | |||
232 | set_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 | ||
238 | set global server_id = $chosen_id; | ||
239 | END | ||
240 | } | ||
241 | |||
242 | main() | ||
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 | |||
266 | main "$@" | ||
267 | exit $? | ||