diff --git a/ansible/roles/mariadb/handlers/main.yml b/ansible/roles/mariadb/handlers/main.yml
index 95c6b9398177825c095dbe823436ad1a0d8cd64d..fb76c9643135249e1f623c6d98b23124eb0b5b2f 100644
--- a/ansible/roles/mariadb/handlers/main.yml
+++ b/ansible/roles/mariadb/handlers/main.yml
@@ -68,8 +68,14 @@
     - bootstrap_host is not defined or bootstrap_host != inventory_hostname
     - groups[mariadb_shard_group + '_port_alive_False'] is defined
     - inventory_hostname in groups[mariadb_shard_group + '_port_alive_False']
+    - groups[mariadb_shard_group + '_port_alive_False'].index(inventory_hostname) % 4 == item
     - kolla_action != "config"
   listen: restart mariadb
+  loop:
+    - 0
+    - 1
+    - 2
+    - 3
 
 - name: Ensure MariaDB is running normally on bootstrap host
   include_tasks: 'restart_services.yml'
diff --git a/releasenotes/notes/bug-1947485-d059864252fb1813.yaml b/releasenotes/notes/bug-1947485-d059864252fb1813.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..453a55f743681e0298b09b6c782d8ba3fed15c74
--- /dev/null
+++ b/releasenotes/notes/bug-1947485-d059864252fb1813.yaml
@@ -0,0 +1,7 @@
+---
+fixes:
+  - |
+    Fixes an issue with multinode MariaDB deployments which could fail
+    the playbook execution on WSREP check due to the new behaviour of
+    Galera 4.
+    `LP#1947485 <https://launchpad.net/bugs/1947485>`__.