`
libg
  • 浏览: 58591 次
  • 性别: Icon_minigender_1
  • 来自: 河北邯郸
社区版块
存档分类
最新评论

mysql-syn-数据库单项同步(主/从)

阅读更多

 

这几天在网上查找了许多资料,几乎全部是雷同的信息,经过一番测试作出如下结论,经过本人测试。

 

主从单向数据同步

1、数据库版本
    主数据库/从数据库    版本号5.0.24a

2、分别修改(主从)mysql安装目录-根目录下的配置文件【my.ini】

3、我的测试环境是这样的
    主数据库机器ip地址:192.168.1.120
    从数据库机器ip地址:192.168.1.119

4、主/从机器中的配置细节如下

    0)、start.
    1)、按照官方的提法主/从数据库配置文件my.ini中的server-id = (num)的值不能相同即可。
    2)、修改主数据库配置文件my.ini文件找到[mysqld]标识符(建议在添加以下代码之前首先创建号要同步的数据库),键入以下代码
        log-bin=mysql-testsyn-bin    #--主库二进制日志文件名的前缀(会在data目录中出现)
        binlog-do-db=syntest        #--要同步的数据库
        server-id = 1            #--serverid和从库不同即可
    3)、步骤2)执行完毕后重启mysql服务,root用户登录执行以下命令
        1、创建用户syntest.拥有replication slave权限
            grant replication slave on *.* to "syntest"@"192.168.1.%" identified by 'syntest' with grant option;
        2、在设置syntest用户 增删改查,等权限。
    4)、查看主库状态,使用mysql自带命令行
        show master status;
        +---------------------------------+----------+------------------+------------------------+
        | File                                    | Position | Binlog_Do_DB | Binlog_Ignore_DB |
        +---------------------------------+----------+------------------+------------------------+
        | mysql-testsyn-bin.000003 |      640 | syntest           |                               |
        +---------------------------------+----------+------------------+------------------------+
        1 row in set (0.01 sec)

        根据提示可以看出,
            file=表示同步使用的索引文件(文件后最默认是从000001开始)
            position=偏移量
            Binlog_Do_DB=备份的数据库
            Binlog_Ignore_DB=忽略的数据库
        经过测试、如果从步骤 2)-3)配置完后当执行步骤4)时如果没有结果说明配置失败.
    5)、修改从数据库配置文件my.ini文件找到[mysqld]标识符(建议在添加以下代码之前首先创建号要同步的数据库),键入以下代码
        server-id = 2            #--serverid和主库不同即可
        master-host = 192.168.1.120    #--主机ip地址
        master-user = syntest        #--主机登录用户名
        master-password = syntest    #--主机登录密码
        master-port = 3306        #--主机端口
        master-connect-retry = 5    #--重试间隔时间(秒)
        replicate-do-db = syntest    #--同步db
    6)、步骤5)执行完毕后重启mysql服务,root用户登录执行命令
        show SLAVE status;
    7)、执行以下代码
        stop slave;
        start slave;
    8)、在主数据库中创建一张表(需要使用代码的方式创建表),在看从数据库.
    9)、end.

 

5、如何正确的使用同步,以下是测试到的步骤(同仁如有其它测试结果请一并贴出来 )
    1)、主从配置完后需要测试
        1、查看data目录下的(*.err)文件如果没有出现[ERROR]字符说明通信成功,从数据库中data目录.
        2、主从库中分别创建一张一模一样的表,注意第一次创建测试是否已通信成功,不能使用MySQL-Front等工具创建,不吃这一套;得用代码创建.
        3、与步骤2同时在写一个insert添加语句执行。
        4、查看以上2-3步骤皆为在主库中执行,于此同时查看从书库,如果有一模一样的数据则说明通信成功.
    2)、主/从双方的库中表保持一致,此时创建一张“临时表”作为测试是否通信.
        在保持一致的同时从库中表的内容不能与主表中的内容不一致
        【
            例如:test表在主从中同时出现,id字段将从1开始,地址从表中已经有了一条记录,说明占用了id为1值,此时在主库中表test添加一条记录
            id同时也是1,这时就通信失败了,由于数据库表字段唯一标识因此导致通信失败,则1、删除从表中的记录;2、必须重启服务,才能挽救通信.
        】
    3)、如果主从库中的配置---配置完成在启动mysql服务之前先删除data目录中的日志等文件,除了“目录”,“ibdata1”文件外其余全部删除.
    4)、在通信测试未成功之前不能使用工具创建表,添加记录等操作,第一次必须使用代码的形式来创建执行;通信成功后方可使用工具执行.
    5)、一旦通信成功切忌双方中data目录中的文件不能随意打开,原因:“由于mysql服务一旦启动则会自动根据设定的时间通信,如果打开索引等文件则就占用了IO流操作,固因此
        服务会自动终止通信(需要重启才能拯救).



6、同步实现大概的流程(同仁如有其它不同的看法与流程图,敬请贴出来交流 )

    1、主/从双方修改配置文件,通过某种通信两台机器知道谁是“主”,谁是“从”.
    2、查找“主”方是否配置成功,使用代码 show MASTER status;所返回的结果中记录了关于同步时所使用到的索引文件;根据log-bin=[文件前缀名称].00001,每重启一次则后面的编号会自动加一.
    3、“从”数据库机器mysql服务启动时根据配置信息找到主数据库,将会根据“主” show master status中的file字段信息,生成4个文件分别如下:
        第一次配置成功启动:
            *-relay-bin.000001(*号代表本机的“计算机名称”)
            *-relay-bin.index
            master.info
            relay-log.info
        第二次启动
            *-relay-bin.000001后面的编号会变
        以上提到的文件作用流程如下:
            1、“从”服务器启动mysql服务时,根据配置文件信息找到“主”服务器,根据 show master status 中的file字段信息首先创建master.info文件,记录了关于
            链接“主”服务器的参数配置信息,其中最主要的一条是:“以字段file的值”记录,
            2、其次创建relay-log.info文件,其中主要是记录以master.info文件中“以字段file的值”的一个关联.于此同时记录该文件与*-relay-bin.index文件的关联
            3、再次通过文件*-relay-bin.index中的记录在创建具体操作文件就是:(*-relay-bin.000001)索引文件.
            4、每次通信会将“主”服务器上的索引文件内容当下来存放在*-relay-bin.00000num索引文件中,同时,执行“主”最近更新的数据,到“从”服务器中.
    4、最简单的理解就是:
        1、“主”服务器启动后生成索引文件,用于记录对数据库更新的sql语句.
        2、“从”服务器启动后会根据“主”服务器上的索引文件生成本地索引文件,用于记录从“主”服务器上当下来的数据.
        3、“从”服务器根据设定的时间间隔从“主”服务器上抓取数据,然后在执行,最后成为本地数据.
    5、如图:
        流程图    /查看“流程图”目录.
        ... ...


        本流程图是根据以上实现步骤的实现,总结出自己对数据同步的流程图,同志们方可参考,如有不对的地方,请与我来信(594131528@qq.com),如果可以的话,提出修改建议等。。。谢谢合作。

感兴趣者请查看附件、其中包含了本人的理解,在测试中遇到了那些问题,等等。。。

 

  • 大小: 60.2 KB
分享到:
评论
1 楼 MrPengPeng 2010-06-30  
写的 太详细了 !太棒了 !连流程图都有 ! 赞

相关推荐

    YS-SYN6288语音合成配套资料.rar

    YS-SYN6288是一款基于文本到语音(TTS)技术的语音合成芯片,广泛应用于各种嵌入式系统中,如智能家居、车载导航、教育设备等。该压缩包文件"YS-SYN6288语音合成配套资料.rar"包含了与这款芯片相关的驱动源码,适用...

    YS-SYN6288语音合成配套资料(0908)

    YS-SYN6288是一款常见的语音合成芯片,广泛应用于各种语音播报系统、电子教育设备、智能家居产品等。这个配套资料包(0908版本)通常包含了与该芯片相关的详细技术文档、开发工具、示例代码以及可能的音频样本,帮助...

    AFX-syn.rar_syn delphi

    这种工具通常用于网络安全检测,检查系统是否存在SYN(同步)攻击漏洞或其他网络安全隐患。 在网络安全中,SYN攻击是TCP连接建立过程中的一个常见攻击手段。攻击者通过发送大量的SYN请求,但不回应确认信息,导致...

    threaded-syn-port-scanner-2.0.zip_connect_syn port

    《多线程与网络编程:理解“threaded-syn-port-scanner-2.0”工具》 在IT领域,端口扫描是网络安全和系统管理的重要技术之一,它可以帮助我们了解网络上服务的状态和开放的端口。"threaded-syn-port-scanner-2.0....

    carry-syn.rar_Carry_同步载波MATLAB_载波同步_载波同步 matlab_载波同步·

    标题“carry-syn.rar_Carry_同步载波MATLAB_载波同步_载波同步 matlab_载波同步·”暗示了这个压缩包包含的是一个使用MATLAB编写的载波同步算法实现。MATLAB是一种广泛用于数值计算、符号计算、数据分析以及图形可视...

    1991-2023年股价同步性SYN-股价信息含量,年度数据

    到SYN为公司i的年度股价同步性,SYN越大表明股价同步性越高。 R2_1、R2 _2、R2_3分别对应模型(1)、模型(2)、模型(3)计算得到的拟合优度R2 SYN1、SYN2、SYN3分别对应模型(1)、模型(2)、模型(3)计算得到...

    java-syn.zip_Java syn_Java syn锁_java同步锁syn_java锁 syn_syn同步事务锁

    Java 同步锁是Java多线程编程中的关键概念,用于确保多个线程在访问共享资源时能够有序、安全地进行。在这个主题中,我们将详细探讨Java中的同步机制,包括同步方法、同步代码块、synchronized关键字以及其背后的...

    同步电机变频起动仿真-syn_huf2.mdl

    同步电机变频起动仿真-syn_huf2.mdl 本帖最后由 gzlsqmatlab 于 2012-8-27 21:13 编辑 这是我最近做的一个仿真,拿出来跟大家分享一下,值得说明的是,定子电流仿真结果不是特别好。

    near-syn:命令实用程序从NEAR区块链的Rust合约生成README

    近同步 near-syn是一个库和命令行实用程序,可简化NEAR平台的合同开发。 near-syn软件包包含两个命令行实用程序: near-ts从Rust源文件生成TypeScript绑定。 near-doc从Rust源文件生成Markdown文档。 安装 安装...

    前端项目-syn.zip

    在压缩包内的"syn-master"目录中,很可能是Syn库的源代码或者示例项目。这将包含合成事件库的实现细节,如事件创建、事件处理函数绑定、事件冒泡模拟等。开发者可以通过查看源码学习其工作原理,或者直接在自己的...

    syn.exe --(HUC SYN Flood Tool V0.2)

    软件说明: 在命令提示符下运行,只支持NT/2000/XP/03系统 中国红客联盟(HUC) 在鼎盛时期的DDOS作品 上传只为学习之用,禁止用于非法途径!

    全协议网络攻击负载脚本(ARP-SYN-DNS-..).)_ChaosNoctis.zip

    全协议网络攻击负载脚本(ARP-SYN-DNS-..).)_ChaosNoctis

    asyn_syn_fifo.pdf

    7. Verilog代码片段分析:从文件内容中可以看出,提供了同步FIFO和异步FIFO的Verilog代码实现。这些代码片段展示了FIFO设计的关键部分,比如生成读写地址的模块、FIFO空满控制模块、存储器模块等。每个模块都有其...

    STC15W4K32S4-SYN6288语音合成.pdf

    STC15W4K32S4-SYN6288语音合成.pdf

    多变化的TCP-SYN攻击

    如果发动SYN攻击的源地址和物理地址不变,容易受防火墙拦截,不能实现真正意义上的SYN攻击。通过对程序的修改实现IP和MAC地址的同时改变从而可以通过防火墙实现攻击!!!

    ACO-OFDM-CE-Syn-paper

    ACO_OFDM_CE_Syn_paper 存储论文 “Joint Synchronization and Channel Estimation of ACO-OFDM Systems with Simplified Transceiver ” 的 LaTeX 文件

    Buck STM32源代码 Syn-buck

    Buck STM32源代码 Syn-buckBuck STM32源代码 Syn-buckBuck STM32源代码 Syn-buckBuck STM32源代码 Syn-buckBuck STM32源代码 Syn-buckBuck STM32源代码 Syn-buckBuck STM32源代码 Syn-buckBuck STM32源代码 Syn-...

    SYN股价同步性/股价信息含量数据计算Stata代码(附原始数据和2000-2021年结果)

    股价同步性 1、计算说明 不同参考文献计算股价同步性有不同方法,以下计算三种常用的方法 第一种参考文献 中国的证券分析师能够提高资本市场股价同步性和股价信息含量的经验证据(朱红军) 第二种参考文献 信息...

    3_syn_keep属性注意事项(1).docx

    在 FPGA 设计中,`syn_keep` 是一个重要的属性,用于指示综合工具在优化过程中保留特定的网路(nets)或信号(signals),确保它们的名字在综合后保持不变。这通常用于解决某些特殊需求,如调试、IP 集成或者与其他...

    变频器说明书大全系列-SYN.rar

    变频器说明书大全系列-SYN.rar 这个压缩包文件主要包含了有关变频器的详细技术资料,特别是SYN系列的变频器。SYN系列变频器是一种广泛应用在工业自动化领域的设备,它主要用于调节电机的转速和功率,以实现节能、...

Global site tag (gtag.js) - Google Analytics