数据库的读写分离数据库是怎么同步的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的读写分离数据库是怎么同步的相关的知识,希望对你有一定的参考价值。

mysql
最常用的主从复制就是读写分离的功能
数据有修改,会通过网络将执行的内容传输到从库,追加到从库的重做日志(replay-bin),然后再通过重做日志还原主库的操作以达到同步的效果
---------------------------------------
oracle
常用的读写分离方案有DG(备库可读)
操作写入archivelog,再通过网络传输到备库,备库再用archivelog还原数据,已到达同步的目的。
参考技术A 可以通过 触发器 同步

yii2的数据库读写分离配置

简介

数据库读写分离是在网站遇到性能瓶颈的时候最先考虑优化的步骤,那么yii2是如何做数据库读写分离的呢?本节教程来给大家普及一下yii2的数据库读写分离配置。

两个服务器的数据同步是读写分离的前提条件,但这不在yii2读写分离教程内,yii2的数据库读写分离配置,仅仅实现了在主库读写,在从库查询,那么我们首先要配置主从服务器的数据同步。详情查看linux数据库主从同步配置

配置

主从服务器数据库同步完成之后,我们就可以开始yii2的读写分离配置,官方也有这方面的文档,但说的并不清楚,也没有实际的例子,酱油君在这里加以完善。

1.打开我们的数据库配置文件commonconfigmain-local.php在db属性中做如下配置

‘db‘ => [
    ‘class‘ => ‘yiidbConnection‘,
    
    // 配置主服务器
    ‘dsn‘ => ‘mysql:host=192.168.0.1;dbname=hyii2‘,
    ‘username‘ => ‘root‘,
    ‘password‘ => ‘root‘,
    ‘charset‘ => ‘utf8‘,
    
    // 配置从服务器
    ‘slaveConfig‘ => [
        ‘username‘ => ‘root‘,
        ‘password‘ => ‘root‘,
        ‘attributes‘ => [
            // use a smaller connection timeout
            PDO::ATTR_TIMEOUT => 10,
        ],
        ‘charset‘ => ‘utf8‘,
    ],
    
    // 配置从服务器组
    ‘slaves‘ => [
            [‘dsn‘ => ‘mysql:host=192.168.0.2;dbname=hyii2‘],
        ],
],

如上配置就能实现yii2数据库读写分离的操作,很简单,只要一个配置就ok了,读写分离的功能由后台代码自动完成.调用者无须关心。

上面只是一个1主1从的配置,如果要一主多从,或者多主多从,参考此例以及官方文档即可完成。

來源:http://www.yii-china.com/doc/yii2-windows.html?id=284

以上是关于数据库的读写分离数据库是怎么同步的的主要内容,如果未能解决你的问题,请参考以下文章

数据库为啥要读写分离

什么是数据库的读写分离

mysql读写分离实现方式

数据库读写分离同步延时问题怎么解决?

为啥数据库读写分离能提高数据库的性能?

为啥数据库读写分离可以提高性能