Build verified: 1.2.2-1 nightly
[root@localhost centos7]# cat gitversionInfo.txt
server commit:
137b9a8
engine commit:
b3a7559
1. installed MariaDB Server 10.3.14, set it as replication master
2. created InnoDB table repdb.orders
3. installed ColumnStore 1.2.4-1 (nightly build), set it as replication Slave
4. created ColumnStore table repdb.orders
5. created InnoDB tables in MariaDB server and verified tables were replicated to ColumnStore
6. inserted rows into repdb.orders in MariaDB Server
7. verified inserted row was not replicated (Expected, Columnstore.xml not yet setup)
8. added <ReplicationEnabled>Y</ReplicationEnabled> and restarted ColumnStore
9. inserted rows into repdb.orders in MariaDB Server
10. verified inserted row was replicated
After replication has been setup, tables can be setup as the following:
1. stop replication slave in ColumnStore (stop slave)
2. reset replication slave in ColumnStore (reset slave)
3. create InnoDB table in MariaDB Server
4. create ColumnStore table in ColumnStore
5. "CHANGE MASTER TO" in ColumnStore
6. start slave in ColumnStore (start slave)
7. insert rows in master
8. verify inserted rows in slave
Notes:
On Master
MariaDB [repdb]> CREATE USER 'replication_user'@'%' IDENTIFIED BY 'bigs3cret';
Query OK, 0 rows affected (0.000 sec)
MariaDB [repdb]> GRANT REPLICATION SLAVE ON . TO 'replication_user'@'%';
Query OK, 0 rows affected (0.001 sec)
MariaDB [repdb]> show master status;
--------------------------------------------------------+
File |
Position |
Binlog_Do_DB |
Binlog_Ignore_DB |
--------------------------------------------------------+
--------------------------------------------------------+
1 row in set (0.000 sec)
On Slave:
update /etc/hosts file
10.0.0.15 repmaster
MariaDB [repdb]> CHANGE MASTER TO
-> MASTER_HOST='repmaster',
-> MASTER_USER='replication_user',
-> MASTER_PASSWORD='bigs3cret',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='master1-bin.000001',
-> MASTER_LOG_POS=2452,
-> MASTER_CONNECT_RETRY=10;
Query OK, 0 rows affected (0.023 sec)
MariaDB [repdb]> start slave;
Query OK, 0 rows affected (0.002 sec)
MariaDB [repdb]> show slave status\G;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: repmaster
Master_User: replication_user
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: master1-bin.000001
Read_Master_Log_Pos: 2452
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 557
Relay_Master_Log_File: master1-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 2452
Relay_Log_Space: 860
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: No
Gtid_IO_Pos:
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: conservative
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Slave_DDL_Groups: 1
Slave_Non_Transactional_Groups: 0
Slave_Transactional_Groups: 1
1 row in set (0.001 sec)
Patch adds a MariaDB replication option which can be enabled using the following in the SystemConfig section of Columnstore.xml:
<ReplicationEnabled>Y</ReplicationEnabled>
For QA:
1. Create a MariaDB server with an InnoDB table
2. Create a ColumnStore 1UM setup with a ColumnStore table of the same/similar schema
3. Configure slave-ids and enable binlog on the MariaDB server
4. Use CHANGE MASTER TO on the ColumnStore UM to enable replication
5. Do a few DML statements.
There may be issues with multi-UM setups for now. Improvements for this will come later, this is why it is a hidden option for now.