summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@vps-18a7a2b7.vps.ovh.ca>2024-02-14 12:57:16 -0500
committerroot <root@vps-18a7a2b7.vps.ovh.ca>2024-02-14 12:57:16 -0500
commitb7e0ee04a75958ece3deb1d9577812286391c9cb (patch)
treeb5a4f5284d780760a538c11efdec1cd567d9cade
parentfc787c8fb83821138915049e64c01eb4ad1060d7 (diff)
it so tight and it be workin to replicate n shit n keep up n verify that to the user with its output
-rwxr-xr-xsrc/mariadb-push-replica.sh92
1 files changed, 42 insertions, 50 deletions
diff --git a/src/mariadb-push-replica.sh b/src/mariadb-push-replica.sh
index 7d92859..d0c87b7 100755
--- a/src/mariadb-push-replica.sh
+++ b/src/mariadb-push-replica.sh
@@ -65,26 +65,6 @@ show_hostnames()
65 "$(uptime)" 65 "$(uptime)"
66} 66}
67 67
68check_db()
69{
70ls -lFC --color /var/lib/mysql
71mariadb -t "$@" <<.
72select
73 user()
74, @@hostname
75, @@server_id
76, @@gtid_slave_pos
77, @@sql_log_bin
78;
79select
80 @@hostname
81, schema_name as 'database'
82from
83 information_schema.schemata
84;
85.
86}
87
88create_backup() 68create_backup()
89{ 69{
90 mostly_silent_unless_error create_backup_verbose "$@" 70 mostly_silent_unless_error create_backup_verbose "$@"
@@ -326,32 +306,38 @@ END
326mariadb_enable_semi_sync() 306mariadb_enable_semi_sync()
327{ 307{
328 set -e 308 set -e
329 chosen_id=$(truncated_machineid_decimal_string_int32) 309 [ "$1" = off ] || set -- on
330 [ "$chosen_id" -gt 1 ] 310 mariadb -v --skip-reconnect -t <<.
331 mariadb -v --skip-reconnect -t <<END
332stop slave io_thread; 311stop slave io_thread;
333set global rpl_semi_sync_master_enabled = on; 312set global rpl_semi_sync_master_enabled = $1;
334set global rpl_semi_sync_slave_enabled = on; 313set global rpl_semi_sync_slave_enabled = $1;
314.
315 mariadb_show_vars_like 'rpl_%'
316}
335 317
336use information_schema; 318mariadb_show_vars_like()
319{
320 set -e
321 mariadb -v --skip-reconnect -t <<.
337select 322select
338 @@hostname 323 @@hostname
339, @@server_id 324, @@server_id
340; 325;
326use information_schema;
341select 327select
342 variable_name 328 variable_name
343, variable_value 329, variable_value
344from 330from
345 global_variables 331 global_variables
346where 332where
347 variable_name like 'rpl_%' 333 variable_name like '$1'
348; 334;
349END 335.
350} 336}
351 337
352mariadb_list_databases() 338mariadb_list_databases()
353{ 339{
354 list_databases >&2 340 show_all_databases >&2
355 mariadb --skip-reconnect -Bsss "$@" <<. 341 mariadb --skip-reconnect -Bsss "$@" <<.
356select 342select
357 schema_name 343 schema_name
@@ -440,15 +426,18 @@ save_array()
440 426
441mariadb_scan_databases() 427mariadb_scan_databases()
442{ 428{
429 set -- $(mktemp)
443 declare -g -a primary_dbs 430 declare -g -a primary_dbs
444 save_array primary_dbs from lines <( 431 save_array primary_dbs from lines <(
445 run_primary mariadb_list_databases </dev/null | 432 run_primary \
433 mariadb_list_databases </dev/null 2>"$1" |
446 sort -u 434 sort -u
447 ) 435 )
448 436
449 declare -g -a replica_dbs 437 declare -g -a replica_dbs
450 save_array replica_dbs from lines <( 438 save_array replica_dbs from lines <(
451 run_replica mariadb_list_databases </dev/null | 439 run_replica \
440 mariadb_list_databases </dev/null 2>>"$1" |
452 sort -u 441 sort -u
453 ) 442 )
454 443
@@ -456,6 +445,20 @@ mariadb_scan_databases()
456 save_array primary_dbs_not_on_replica from zfile <( 445 save_array primary_dbs_not_on_replica from zfile <(
457 subtract_arrays primary_dbs replica_dbs 446 subtract_arrays primary_dbs replica_dbs
458 ) 447 )
448 if [ ${#primary_dbs_not_on_replica[@]} -gt 0 ]
449 then
450 cat "$1" >&2
451 fi
452 rm -- "$1"
453}
454
455showmissing()
456{
457 if [ ${#primary_dbs_not_on_replica[@]} -gt 0 ]
458 then
459 printf "Missing on ${replica_host}: %s\n" \
460 "${primary_dbs_not_on_replica[@]}" >&2
461 fi
459} 462}
460 463
461choose_mariadbdump_target_databases() 464choose_mariadbdump_target_databases()
@@ -464,11 +467,7 @@ choose_mariadbdump_target_databases()
464 shift 467 shift
465 if [ $# = 0 ] 468 if [ $# = 0 ]
466 then 469 then
467 if [ ${#primary_dbs_not_on_replica[@]} -gt 0 ] 470 showmissing
468 then
469 printf "Missing on ${replica_host}: %s\n" \
470 "${primary_dbs_not_on_replica[@]}" >&2
471 fi
472 471
473 if [ "$SEND_ALL_MARIADB_DATABASES" ] 472 if [ "$SEND_ALL_MARIADB_DATABASES" ]
474 then 473 then
@@ -502,19 +501,12 @@ main()
502 set -e 501 set -e
503 check_input 502 check_input
504 503
505 run_both set_server_id 504 : run_both set_server_id
506 run_both mariadb_enable_semi_sync 505 : run_both mariadb_enable_semi_sync off
507
508 # run_primary check_db
509 # run_replica check_db
510 # showvars replica
511
512 # run_primary list_databases
513 # run_replica list_databases
514 506
515 mariadb_scan_databases 507 mariadb_scan_databases
516 choose_mariadbdump_target_databases to_replicate "$@" 508 choose_mariadbdump_target_databases databases "$@"
517 if [ ${#to_replicate[@]} -gt 0 ] 509 if [ ${#databases[@]} -gt 0 ]
518 then 510 then
519 run_replica mariadb_install_replication_credentials \ 511 run_replica mariadb_install_replication_credentials \
520 "$primary_host" \ 512 "$primary_host" \
@@ -527,8 +519,8 @@ main()
527 --apply-slave-statements \ 519 --apply-slave-statements \
528 --gtid \ 520 --gtid \
529 --single-transaction \ 521 --single-transaction \
530 --databases "${to_replicate[@]}" 522 --databases "${databases[@]}"
531 run_replica list_databases 523 run_replica show_all_databases
532 fi 524 fi
533 #run_replica mariadb <<< 'show slave status\G' 525 #run_replica mariadb <<< 'show slave status\G'
534 #run_primary mariadb <<< 'show master status\G' 526 #run_primary mariadb <<< 'show master status\G'
@@ -565,7 +557,7 @@ cleanup_after_test()
565 run_primary delete_backup || true 557 run_primary delete_backup || true
566} 558}
567 559
568list_databases() 560show_all_databases()
569{ 561{
570mariadb -t "$@" <<. 562mariadb -t "$@" <<.
571select 563select