我在Azure上使用Mariadb将多个被分片的数据库整合到一台服务器上

首先,从注意事项开始

2019/03/05時点では、Azure Database for MariaDB はpreviewです。

12月にはGAされているみたいです。@cherubim1111 さんありがとうございます!

https://blogs.technet.microsoft.com/mssvrpmj/2018/12/21/announcing-the-general-availability-of-azure-database-for-mariadb/

ただ、サポートリクエストを作る画面から見るとpreviewと表記されています…

ドキュメントには記載がないので出来なくなるかもしれません…orz

正式にサポートされると正直嬉しい。

关于 “多源复制”

一般来说,当提到复制时,我们通常会想到一个主服务器和多个从服务器的配置。但是,“多源复制”则可以实现多个主服务器和一个从服务器的逆向配置。抱歉,这只是一个大致的解释。

スクリーンショット 2019-03-05 15.29.14.png

根据模式和数据的不同,即使在分片数据库中,只要将ID进行哈希分配,就可以合并数据。

设定步骤

    • !!MariaDBとMySQLでは設定方法が違うので注意してください!!

 

    設定的にAuzre Database for MySQLではマルチソースは動かないと思います。

常规方法

MySQL [(none)]> SET @@default_master_connection='SERVER_NAME';
MySQL [(none)]> CHANGE MASTER TO 
  MASTER_HOST='xxx.xxx.xxx.xxx', 
  MASTER_PORT=3306, 
  MASTER_USER='repl', 
  MASTER_PASSWORD='password', 
  MASTER_LOG_FILE='mysql-bin.000001', 
  MASTER_LOG_POS=xxxxxx;

在MariaDB中,
设置@@default_master_connection=’SERVER_NAME’非常重要。
如果没有这个设置,就无法进行正常的复制。

在Azure上的操作
在Azure平台上的步骤
通过Azure进行的方法
在Azure中的操作方式
使用Azure的方法

MySQL [(none)]> SET @@default_master_connection='SERVER_NAME';
MySQL [(none)]> CALL mysql.az_replication_change_master('xxx.xxx.xxx.xxx', 'repl', 'password', 3306, 'mysql-bin.000001', xxxxxx, '');
MySQL [(none)]> CALL mysql.az_replication_start;

在Azure上,由于通常的方法无法进行复制,因此需要调用Azure提供的过程。

    • Azure上でのレプリケーション設定方法については以下から

https://docs.microsoft.com/ja-jp/azure/mariadb/howto-data-in-replication

请注意!

    • インスタンスの再起動を実行するとレプリケーションが止まってしまいます。

正確には、複数動いているレプリケーションスレッドのうち1本だけは動きます。
stopしてstartしてもレプリケーションは再開されません。removeして再度登録して直してください。

レプリケーションが止まった時点のポジションを控えて再度レプリケーションを組むと再開できます。

感觉

虽然还处于预览阶段,但只要能使用多个数据源,我觉得还是有选择Azure Database for MariaDB的空间的。此外,在其他云平台上无法将MariaDB作为PaaS进行提供,目前只能选择Azure,因此希望保留可供像开源软件一样的人使用的功能…呼唤一下,祈祷中( ˘ω˘)

广告
将在 10 秒后关闭
bannerAds