精华内容
下载资源
问答
  • 但从数据库中的任何更改不会影响主数据库,这篇文章将帮助你实现双向复制。(即,无论是主机还是从机的更改都将影响这两个服务器)。背景你能参考Aadhar Joshi的这篇文章实现主从复制,或者您可以按照以下简单的步骤:...

    简介

    我知道有很多文章和指南介绍在互联网上实现主-从复制。在主-从复制中,主机影响从机。但从数据库中的任何更改不会影响主数据库,这篇文章将帮助你实现双向复制。(即,无论是主机还是从机的更改都将影响这两个服务器)。

    背景

    你能参考Aadhar Joshi的这篇文章实现主从复制,或者您可以按照以下简单的步骤:

    参考一下:

    在机器A配置主机(192.168.1.30)

    在机器B配置从机(192.168.1.29)

    我们可以使用下面的步骤来实现这一点

    步骤1:机器A设置主机

    在主机中打开配置文件 , 默认文件位置为C:\Program Files\MySQL\MySQL Server 5.0\my.ini

    在服务端部分用[mysqld]替换[mysqld]

    server-id=1

    log-bin=mysql-bin

    innodb_flush_log_at_trx_commit=1

    sync_binlog=1

    binlog_do_db= demo

    port=3306

    保存配置文件然后关闭

    重启mysql服务使其生效。

    Step 2 : 机器B设置从机 :

    在从机中打开mysql配置文件,默认位置为C:\Program Files\MySQL\MySQL Server 5.0\my.ini

    在服务端部分用下面代码替换[mysqld]

    [mysqld]

    server-id=2

    log-bin=mysql-bin

    innodb_flush_log_at_trx_commit=1

    sync_binlog=1

    保存配置文件,关闭

    重启mysql服务使之生效。

    where :

    server-id=1 →服务的唯一标识. 在主从中必须不同。

    log-bin=mysql-bin →要在InnoDB复制设置中使用事务,保证最好的持久性和一致性, 你应该使用 innodb_flush_log_at_trx_commit=1 and sync_binlog=1.

    binlog_do_db= demo →要复制的数据库

    port=3306 →默认数据库端口

    Step 3 : 主机中创建用户

    打开mysql命令行

    mysql> GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%' IDENTIFIED BY 'replication';

    现在我们用这个命令‘show master status'来确定当前二进制日志文件的文件名和位置。记住这个细节!在我们的事例中得到以下输出:

    mysql> show master status;

    +------------------+----------+--------------+------------------+

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +------------------+----------+--------------+------------------+

    | mysql-bin.000153 | 106 | | |

    +------------------+----------+--------------+------------------+

    1 row in set (0.00 sec)

    继续:mysql> FLUSH PRIVILEGES;

    选择数据库 :mysql> USE newdatabase;

    锁数据库防止任何新的更改:FLUSH TABLES WITH READ LOCK;

    Step 4: 连接主从 :

    打开mysql命令行

    停止从机 : Stop slave;

    执行命令

    mysql> CHANGE MASTER TO

    -> MASTER_HOST='192.168.1.30',

    -> MASTER_USER='replicator',

    -> MASTER_PASSWORD='replication',

    -> MASTER_LOG_FILE='mysql-bin.000153',

    -> MASTER_LOG_POS=106;

    4. 重启从机开始复制: Start Slave;

    同样可以点 Master - Slave Replication.

    实现双向复制的方法

    第一步: 在从机创建主机用户

    打开从机的mysql命令行 (192.168.1.29)

    mysql> GRANT REPLICATION SLAVE ON *.* TO 'master_replicator'@'%' IDENTIFIED BY 'master';

    现在我们用这个命令‘show master status'来确定当前二进制日志文件的文件名和位置。记住这个细节!在我们的事例中得到以下输出:

    show master status;

    +------------------+----------+--------------+------------------+

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +------------------+----------+--------------+------------------+

    | mysql-bin.000153 | 106 | | |

    +------------------+----------+--------------+------------------+

    1 row in set (0.00 sec)

    继续:mysql> FLUSH PRIVILEGES;

    选择数据库 :mysql> USE newdatabase;

    锁数据库防止任何新的更改:FLUSH TABLES WITH READ LOCK;

    Step 2: 用主机用户连接从机(192.168.1.30):

    在主机上打开mysql命令行

    停止从机 : Stop slave;

    执行命令

    mysql> CHANGE MASTER TO

    -> MASTER_HOST='192.168.1.29',

    -> MASTER_USER='master_replicator',

    -> MASTER_PASSWORD='master',

    -> MASTER_LOG_FILE='mysql-bin.000153',

    -> MASTER_LOG_POS=106;

    4. 重启从机开始复制 : Start Slave;下面命令检查系统状态 :

    SHOW SLAVE STATUS\G;

    你可以看到 192.168.1.30:

    mysql> SHOW SLAVE STATUS\G;

    *************************** 1. row ***************************

    Slave_IO_State: Waiting for master to send event

    Master_Host: 192.168.1.29

    Master_User: slave_user

    Master_Port: 3306

    Connect_Retry: 60

    Master_Log_File: mysql-bin.000013

    Read_Master_Log_Pos: 98

    Relay_Log_File: PC-relay-bin.000074

    Relay_Log_Pos: 235

    Relay_Master_Log_File: mysql-bin.000013

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    Replicate_Do_DB: demo

    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: 98

    Relay_Log_Space: 235

    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

    1 row in set (0.01 sec)

    ERROR:

    No query specified

    感兴趣的方面

    现在你能做些数据库操作,像插入 删除 更新 删表 截断等,也可以检查数据库是否正常工作。

    重点记住:

    1. 在主机和从机中server_Id 必须不同

    2. 验证日志文件是正确的设置

    3. 用这些命令检查

    SHOW SLAVE STATUS\G;

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    Slave_IO_State: Waiting for master to send event

    以上就是本文的全部内容了,希望大家能够喜欢。

    请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持!

    展开全文
  • MySQL双向复制(主主模式)环境:A: 192.168.1.1 没有数据B: 192.168.1.2 没有数据在A的[mysqld]字段下增加:auto-increment-increment = 2 (增长值) A上就会 1,3,5,7这样增长auto-increment-offset = 1 (初始值)在...

    MySQL双向复制(主主模式)

    环境:

    A: 192.168.1.1    没有数据

    B: 192.168.1.2    没有数据

    在A的[mysqld]字段下增加:

    auto-increment-increment = 2 (增长值) A上就会 1,3,5,7这样增长

    auto-increment-offset = 1    (初始值)

    在B的[mysqld]字段下增加:

    auto-increment-increment = 2  (增长值) B上就会2,4,6,8这样增长

    auto-increment-offset = 2      (初始值)

    因为是双向备份,可能产生主键重复等问题,添加这两个参数防止主键重复

    注意:server-id = 1 改成 server-id = 2

    重启数据库

    在A上

    mysql> grant replication slave on *.* to 'beifen'@'192.168.1.2' identified by '123'; 创建 beifen用户,密码设置为123  并授权给192.168.1.2使用。

    c407f04a6f35f939047897b4fb35a05c.png

    在B上

    mysql> grant replication slave on *.* to 'beifen'@'192.168.1.1' identified by '123'; 创建 beifen用户,密码设置为123  并授权给192.168.1.1使用。

    bea78bcdf60715bb38fc57f812176dd2.png

    在A上:

    查询主数据库的状态,并记下File和Position的值,

    在B上

    在A上:

    mysql>change master to master_host=’192.168.1.2’,master_user=’beifen’,master_password=’123’,master_log_file=’mysql-bin.000016’ ,master_log_pos=106;

    在B上:

    mysql>change master to master_host=’192.168.1.1’,master_user=’beifen’,master_password=’123’,master_log_file=’mysql-bin.000010’ ,master_log_pos=257;

    在A .、B上分别执行

    启动slave同步

    mysql > start slave;

    在A、B上分别检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。

    mysql > show slave status\G0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • MySQL 支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引 以跟踪日志循环。这些日志可以记录发送到从服务器的更新...

    MySQL 支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其

    它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索

    引 以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接

    主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。 从

    服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

    请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你

    必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的

    更新之间的冲突。

    单向复制有利于健壮性、速度和系统管理:

    · 主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到

    从服务器作为份。

    · 通 过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的

    客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负

    荷。但 修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同

    步。如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。

    · 使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务

    器。在备份过程中主服务器可以继续处理更新。

    MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾、备份、恢复、负载均

    衡等都是有极大帮助

    rhel6  master:192.168.0.64  slave:192.168.0.97

    mysql 的单向复制

    注: mysql 数据库的版本,两个数据库版本要相同,或者 slave 比 master 版本高!

    在 master slave 上安装mysql 软件

    yum install mysql mysql-server -y

    master server配置

    1)创建同步帐户,并给予权限

    mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO smart@'192.168.0.97' IDENTIFIED BY 'westos';

    mysql>Flush privileges;

    2 )配置 /etc/my.cnf 配置文件

    在[mysqld]下添加一下参数

    log-bin=mysql-bin        #启动二进制日志系统

    binlog-do-db=test        #二进制需要同步的数据库名

    binlog-do-db=westos      #必须为1到232–1之间的一个正整数值。如果想同步多个数据库,则需在下一行再写。

    server-id=1              #主 server-id 要比 从 server-id 小

    binlog-ignore-db=mysql   #避免同步 mysql 用户配置,以免不必要的麻烦

    3 )service mysqld restart

    slave server 配置

    1 )配置 /etc/ my.cnf 文件

    在[mysqld]下添加一下参数

    server-id=2               #从服务器 ID 号,不要和主 ID 相同,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。可以认为server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务器实例。

    2)service mysqld  restart

    检测

    在master上用下面的命令查看

    mysql> show master status;

    +---------------------+-----------+----------------+--------------------+

    | File

    | Position

    | Binlog_Do_DB | Binlog_Ignore_DB

    |

    +---------------------+-----------+----------------+--------------------+

    | mysql-bin.000001

    |

    98

    | test

    | mysql

    |

    +---------------------+-----------+----------------+--------------------+

    记录File和Position的值,下面会用到。

    在slave上执行以下命令:

    mysql> slave stop;

    Query OK, 0 rows affected (0.00 sec)

    mysql> change master to master_host='192.168.0.64', master_user='smart',

    master_password='westos', master_log_file='mysql-bin.000001',

    master_log_pos=98;

    Query OK, 0 rows affected (0.28 sec)

    mysql> slave start;

    Query OK, 0 rows affected (0.00 sec)

    mysql> show slave status\G;   #在显示的信息中查看以下两行是否都是yes。如果IO 为no,则表明slave 连接 master 有问题,需检查连接的用户名和密码。如果SQL 为no,则表明你的SQL语句有问题。

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    如果都是yes,表示从库的I/O,Slave_SQL线程都正确开启.表明数据库正在同步。你也可以通过在master server上的test库中添加数据,看slave server是否同步,建议使用phpmyadmin,比较方便。

    注:当做双向同步时,需确保数据的一致性,先在mysql的配置文件添加同步的库,重启mysql,然后在两主机分别 show  slave  stutas\G; 查看 IO 和SQL 是否都是yes,然后在任意一台主机新建数据库,则另一台就会同步过来。

    mysql 双向复制

    slave server配置

    1 )修改 /etc/my.cnf 文件

    log-bin=mysql-bin             #启动二进制日志系统

    binlog-do-db=test设           #置同步数据库名

    binlog-ignore-db=mysql        #避免同步mysql用户配置,以免不必要的麻烦

    2)重新启动 mysql 服务,创建一个同步专用账号

    service mysqld restart

    mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO smart@'192.168.0.64'

    IDENTIFIED BY 'westos';

    mysql>Flush privileges;

    master server配置:

    mysql -uroot -pwestos

    change master to master_host='192.168.0.97',master_user='smart',master_password='westos',master_log_file='mysql-bin.000012',master_log_pos=106;

    Mysql主从不同步解决:

    1、由于binlog日志带多删除了几个后发发现不同步

    mysql> show slave status\G;

    Slave_IO_Running: No

    Slave_SQL_Running: Yes

    查看报错日志为

    [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file',

    解决方式

    从服务器配置:

    主服务器查看

    mysql> show master status;

    +------------------+----------+--------------+------------------+

    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +------------------+----------+--------------+------------------+

    | mysql-bin.000005 |      106 |              |                  |

    +------------------+----------+--------------+------------------+

    1 row in set (0.00 sec)

    从服务器设置

    mysql> change master to master_host='192.168.0.10',master_user='replication',master_password='replication',master_log_file='mysql-bin.000003',master_log_pos=106;

    Query OK, 0 rows affected (0.03 sec)

    mysql>stop slave;

    mysql>start slave;

    主服务器配置

    从服务器上查看

    mysql> show master status;

    +------------------+----------+--------------+------------------+

    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +------------------+----------+--------------+------------------+

    | mysql-bin.000005 |      106 |              |                  |

    +------------------+----------+--------------+------------------+

    1 row in set (0.00 sec)

    主服务器配置

    mysql> change master to master_host='192.168.0.11',master_user='replication',master_password='replication',master_log_file='mysql-bin.000005',master_log_pos=106;

    Query OK, 0 rows affected (0.03 sec)

    mysql>stop slave;

    mysql>start slave;

    在查看slave状态ok解决。

    展开全文
  • 我的主系统ubuntu20.04,虚拟机win...1.双向设置 可参考:https://blog.csdn.net/try17875864815/article/details/104956011 在虚拟机win10系统中: 2.增强设置 在虚拟机中,找到‘我的电脑’ -> ‘CD驱动.

    安装win10虚拟机:

    使用virtualbox安装虚拟机教程参考:https://blog.csdn.net/lqbz456/article/details/102627309

    安装后,可能不能启动,按照提示操作即可。

    还不行的话,试一下

    sudo apt update

    sudo apt upgrade

    然后reboot重启,必须重启上边的内核升级才能生效。

    实现双向复制:

    我的主系统ubuntu20.04,虚拟机win10.

    在主系统ubuntu20.04中:

    1.双向设置

    可参考:https://blog.csdn.net/try17875864815/article/details/104956011

    在虚拟机win10系统中:

    2.增强设置

    在虚拟机中,找到‘我的电脑’  -> ‘CD驱动器:VirtualBox Guest Additions'

    找到其中的“VBoxWindowsAddtions-amd64”,双击安装即可。

    展开全文
  • mysql 双向复制

    2021-01-19 01:52:13
    4、设置双向同步 修改B服务器的my.cnf,添加 log-bin=/var/log/mysql/updatelog binlog-do-db=test binlog-ignore-db=mysql 重启MySQL,创建一个MySQL帐号为同步专用 GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* ...
  • 实时双向复制工具DRC

    2021-07-15 22:01:24
    项目用于数据双向复制和数据订阅,使用场景如下: 要点说明: 跨机房的 Mysql 数据复制完全通过 DRC 来完成 还有很多业务团队通过 DRC 来实现数据订阅 目前饿了么100%的跨机房数据复制,90%的数据订阅都通过DRC...
  • 关于DRCDRC(Data Replication Center)是唯品会自研的MySQL双向复制方案,主要应用场景是数据库双向复制、单向复制。目前DRC在唯品会还未正式使用,正在逐步验证,功能仍在完善中,目前可能存在一些未知问题,如果你...
  • GoldenGate双向复制配置

    2021-02-01 04:10:04
    先进入goldengate软件安装目录,以SYSDBA身份登录oracle执行以下脚本,执行脚本过程中,需要输入的用户全部是ogg,安装模式为INI一、双向复制节点2配置:1)添加附加的redolog信息DBLOGIN USERID ogg, PASSWORD ogg...
  • 配置主从双向复制 分别在主数据库与从数据库执行以下命令 show master status; 在主数据库执行以下命令 change master to master_host='从数据库IP', master_user='root', master_password='从数据库密码', master_...
  • 构建Oracle双向复制是一个十分复杂的过程,我写这个文档的目的是尽量有条理地列出所需做的工作,帮助DBA更有效的建设流复制环境构建Oracle双向复制是一个十分复杂的过程,我写这个文档的目的是尽量有条理地列出...
  • 但从数据库中的任何更改不会影响主数据库,这篇文章将帮助你实现双向复制。(即,无论是主机还是从机的更改都将影响这两个服务器)。本文包括:主机配置从机配置建立主-从复制建立双向复制背景你能参考Aadhar Joshi的这篇...
  • GoldenGate配置(二)之双向复制配置 环境: Item Source System Target System Platform Red Hat Enterprise Linux Server release 5.4 Red Hat Enterprise Linux Server release 5.4 Hostname gc1 gc2 Database ...
  • MySQL 双向复制

    2021-01-19 01:52:14
    实现双向复制的方法第一步: 在从机创建主机用户打开从机的mysql命令行 (192.168.1.29)mysql> GRANT REPLICATION SLAVE ON . TO 'master_replicator'@'%' IDENTIFIED BY 'master';现在我们用这个命令‘show master...
  • MySQL双向复制

    2021-02-02 19:33:19
    本文包括:主机配置从机配置建立主-从复制建立双向复制背景按照以下简单的步骤:参考一下:在机器A配置主机(192.168.1.30)在机器B配置从机(192.168.1.29)我们可以使用下面的步骤来实现这一点步骤1:机器A设置主机在...
  • 不使用数据泵完成Oracle-Oracle的双向复制。操作系统:redhat as 4.5oracle version:10.2.0.1源端ip: 172.17.61.131 rhel131目标端ip:172.17.61.132 rhel132目标:将scott.test1表从源端可以复制到目标端,并且目标...
  • DRC介绍饿了么的 Data Replicate Center(DRC)项目用于数据双向复制和数据订阅,使用场景如下:要点说明:跨机房的 Mysql 数据复制完全通过 DRC 来完成还有很多业务团队通过 DRC 来实现数据订阅目前饿了么100%的跨...
  • 有,近日,向日葵远程控制软件更新了Windows客户端9.0.3,优化了同步剪贴板功能,远程桌面时,支持富文本复制粘贴,即本地主机可直接将异地主机中的文本直接复制粘贴使用,甚至连格式图片也一并带上。即...
  • 通过MySQL主主:进行MySQL双向同步数据库HA的配置部署MySQL主主双向主从复制 M-M配置node-1它有两种身份:身份1: node-1的主。 身份2: node-2的从。两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外...
  • MySQL从3.23版本起就已经内置了复制(Replication)的功能,我们可以配置成master-slave模式,也可以配置为master-master模式。方法很简单,这里就master-master的配置简单的记录下来,我这里测试环境是mysql 5.1.31,...
  • do-table=tablename #只复制某些表(可用匹配符) replicate-wild-do-table=tablename% #只复制某个库 replicate-do-db=dbname #只复制某些库 replicte-wild-do-db=dbname% #不复制某个表 replicate-ignore-table=...
  • 4、设置双向同步 修改B服务器的my.cnf,添加 log-bin=/var/log/mysql/updatelog binlog-do-db=test binlog-ignore-db=mysql 重启MySQL,创建一个MySQL帐号为同步专用 GRANT REPLICATION SLAVE,RELOAD,SUPER, ON *.* ...
  • 引言Nacos的注册发现和配置中心的源码基本录完了,还有一块是不同集群之间的同步。zk同步到Nacos集群,nacos集群之间做多活需要数据复制等。那本文就先看下如何使用它,进而后面文章分...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,367
精华内容 41,346
关键字:

双向复制图