mnagy
April 27, 2020, 3:16pm
1
Hello,
I’ve set up REPLICATION of a few database in my DEV cluster to my DR DEV cluster. When I look at the database status on the DR MemSQL Studio page, I’m seeing ONLINE - IMPACTED
Is this expected behavior from studio?
Within MemSQL it looks healthy:
memsql> select * from MV_DISTRIBUTED_DATABASES_STATUS;
±-----------------------------±---------------±--------±-------±------------±-----------±--------±-----------±--------------±--------+
| database_name | num_partitions | summary | online | replicating | recovering | pending | transition | unrecoverable | offline |
±-----------------------------±---------------±--------±-------±------------±-----------±--------±-----------±--------------±--------+
| cluster_13878949897310538896 | 0 | offline | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| adt_store | 8 | healthy | 8 | 8 | 0 | 0 | 0 | 0 | 0 |
| rh_test | 8 | healthy | 8 | 8 | 0 | 0 | 0 | 0 | 0 |
| hl7 | 8 | healthy | 8 | 8 | 0 | 0 | 0 | 0 | 0 |
±-----------------------------±---------------±--------±-------±------------±-----------±--------±-----------±--------------±--------+
david
April 28, 2020, 3:13pm
2
Studio is expecting this partition be synchronously replicated. Studio reads this from the following query:
SELECT
DATABASE_NAME AS databaseName,
NUM_PARTITIONS AS numPartitions,
REMOTE_NAME != "" AS drReplica,
IS_SYNC AS syncReplicated
FROM
INFORMATION_SCHEMA.DISTRIBUTED_DATABASES
Because IS_SYNC is true for this partition, Studio expects it to be synchronously replicated.
Studio checks whether a partition is being synchronously replicated or not via this query:
SELECT
HOST AS host,
PORT AS port,
DATABASE_NAME AS databaseName,
ORDINAL AS ordinal,
ROLE AS role,
IS_OFFLINE AS isOffline,
STATE AS syncState
FROM
INFORMATION_SCHEMA.DISTRIBUTED_PARTITIONS
If STATE is not "sync", then Studio will consider this partition be incorrectly replicated (it should be “sync”).
To help us debug this issue, can you send us the output of the 2 queries above?
mnagy
April 28, 2020, 3:32pm
3
David, I’ve attached both for the primary and dr site.
From the Primary Site
> memsql> SELECT
> -> DATABASE_NAME AS databaseName,
> -> NUM_PARTITIONS AS numPartitions,
> -> REMOTE_NAME != "" AS drReplica,
> -> IS_SYNC AS syncReplicated
> -> FROM
> -> INFORMATION_SCHEMA.DISTRIBUTED_DATABASES;
> +--------------+---------------+-----------+----------------+
> | databaseName | numPartitions | drReplica | syncReplicated |
> +--------------+---------------+-----------+----------------+
> | rh_test | 8 | 0 | 1 |
> | adt_store | 8 | 0 | 1 |
> | hl7 | 8 | 0 | 1 |
> | crca_dm | 8 | 0 | 1 |
> +--------------+---------------+-----------+----------------+
> 4 rows in set (0.01 sec)
>
> memsql> SELECT
> -> HOST AS host,
> -> PORT AS port,
> -> DATABASE_NAME AS databaseName,
> -> ORDINAL AS ordinal,
> -> ROLE AS role,
> -> IS_OFFLINE AS isOffline,
> -> STATE AS syncState
> -> FROM
> -> INFORMATION_SCHEMA.DISTRIBUTED_PARTITIONS;
> +----------------------------+------+--------------+---------+--------+-----------+-----------+
> | host | port | databaseName | ordinal | role | isOffline | syncState |
> +----------------------------+------+--------------+---------+--------+-----------+-----------+
> | CH-D-MEM-SQL1 | 3306 | rh_test | 0 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 1 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | rh_test | 2 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 3 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | rh_test | 4 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 5 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | rh_test | 6 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 7 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 0 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | rh_test | 1 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 2 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | rh_test | 3 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 4 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | rh_test | 5 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | rh_test | 6 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | rh_test | 7 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 0 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 1 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 2 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 3 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 4 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 5 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 6 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 7 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 0 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 1 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 2 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 3 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 4 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 5 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | adt_store | 6 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | adt_store | 7 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 0 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 1 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 2 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 3 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 4 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 5 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 6 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 7 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 0 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 1 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 2 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 3 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 4 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 5 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | hl7 | 6 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | hl7 | 7 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 0 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 1 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 2 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 3 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 4 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 5 | Master | 0 | |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 6 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 7 | Master | 0 | |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 0 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 1 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 2 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 3 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 4 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 5 | Slave | 0 | sync |
> | CH-D-MEM-SQL2 | 3306 | crca_dm | 6 | Slave | 0 | sync |
> | CH-D-MEM-SQL1 | 3306 | crca_dm | 7 | Slave | 0 | sync |
> +----------------------------+------+--------------+---------+--------+-----------+-----------+
> 64 rows in set (0.00 sec)
>
>
> From the DR Site
>
> memsql> SELECT
> -> DATABASE_NAME AS databaseName,
> -> NUM_PARTITIONS AS numPartitions,
> -> REMOTE_NAME != "" AS drReplica,
> -> IS_SYNC AS syncReplicated
> -> FROM
> -> INFORMATION_SCHEMA.DISTRIBUTED_DATABASES;
> +------------------------------+---------------+-----------+----------------+
> | databaseName | numPartitions | drReplica | syncReplicated |
> +------------------------------+---------------+-----------+----------------+
> | cluster_13878949897310538896 | 0 | 1 | 0 |
> | adt_store | 8 | 1 | 1 |
> | rh_test | 8 | 1 | 1 |
> | hl7 | 8 | 1 | 1 |
> +------------------------------+---------------+-----------+----------------+
> 4 rows in set (0.02 sec)
>
> memsql> SELECT
> -> HOST AS host,
> -> PORT AS port,
> -> DATABASE_NAME AS databaseName,
> -> ORDINAL AS ordinal,
> -> ROLE AS role,
> -> IS_OFFLINE AS isOffline,
> -> STATE AS syncState
> -> FROM
> -> INFORMATION_SCHEMA.DISTRIBUTED_PARTITIONS;
> +----------------------------+------+--------------+---------+--------+-----------+-----------+
> | host | port | databaseName | ordinal | role | isOffline | syncState |
> +----------------------------+------+--------------+---------+--------+-----------+-----------+
> | MI-D-MEM-SQL1 | 3306 | adt_store | 0 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 1 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | adt_store | 2 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 3 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | adt_store | 4 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 5 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | adt_store | 6 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 7 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 0 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | adt_store | 1 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 2 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | adt_store | 3 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 4 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | adt_store | 5 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | adt_store | 6 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | adt_store | 7 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 0 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 1 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 2 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 3 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 4 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 5 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 6 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 7 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 0 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 1 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 2 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 3 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 4 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 5 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | rh_test | 6 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | rh_test | 7 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 0 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 1 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 2 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 3 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 4 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 5 | Master | 0 | |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 6 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 7 | Master | 0 | |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 0 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 1 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 2 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 3 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 4 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 5 | Slave | 0 | async |
> | MI-D-MEM-SQL2 | 3306 | hl7 | 6 | Slave | 0 | async |
> | MI-D-MEM-SQL1 | 3306 | hl7 | 7 | Slave | 0 | async |
> +----------------------------+------+--------------+---------+--------+-----------+-----------+
> 48 rows in set (0.02 sec)
david
April 29, 2020, 5:42pm
4
Thanks for the query outputs! That led us to the core issue here: Studio has a bug where it thinks DR replicas can be synchronously replicated but they can’t. We’ll fix this, thanks again.
1 Like
We just published a new Studio Version, 1.9.6, which includes a fix for this situation.
https://docs.memsql.com/v7.0/release-notes/memsql-studio-release-notes/#2020-05-06-version-1-9-6
The relevant entry is: “Stops warning users about an incorrect replication type on slave partitions for databases marked as replicas”
Thanks once more for reporting this issue!