zoukankan      html  css  js  c++  java
  • 原生mysql-到noshard(增量) mydumper myloader

    增量在前一章节的全量基础上实现的。

    创建增量(用超级权限,在主库是执行)  #增量同步只适用于 原生mysql 到 tdsql noshard 

    a.配置主从

    cd /data/tdsql_run/4002/percona-5.7.17/install
     ./jmysql.sh 4002
    
    >>change master to master_host='10.85.10.55',master_port=3306,
    master_user='root',master_password='root',master_log_file='binlog.000001',
    master_log_pos=154,MASTER_AUTO_POSITION = 0 for channel 'migrateconnection' ;  
    
    
    自动开启了进程 
    

      

    b.配置过滤掉sys库

    配置后,自动开启了进程 , 需要先停止才能更改过小虑。 但是我这里停了多次 ,才更改成功
    mysql> stop slave   for  Channel   'migrateconnection' 
    mysql> STOP SLAVE ;
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    
    mysql> show warnings ;
    +-------+------+----------------------------------------------------------------------------+
    | Level | Code | Message                                                                    |
    +-------+------+----------------------------------------------------------------------------+
    | Note  | 3084 | Replication thread(s) for channel 'migrateconnection' are already stopped. |
    +-------+------+----------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> CHANGE REPLICATION    FILTER REPLICATE_WILD_IGNORE_TABLE = ('mysql.%%')  ;     
    Query OK, 0 rows affected (0.00 sec)
    

      

    c.启动进程查持状态 

    #start slave  for  Channel   'migrateconnection'
    start slave                  等了一会儿 IO 进程才起来
    
    查看状态
    >>show slave statusG
    或show  slave status  for  Channel   'migrateconnection' G
    
    #STOP SLAVE IO_THREAD
    #STOP SLAVE SQL_THREAD
    #stop slave   for  Channel   'migrateconnection' 
    
    #START SLAVE IO_THREAD
    #START SLAVESQL_THREAD
    #start slave   for  Channel   'migrateconnection' 
    

      

    d.问题处理:

     1.主库没有按主从配置binlog ,gtid ,导致未同步
       2.主库没有开启自动提交 autocommit ,导致测试数据没同步
       3.未同步分析
         a.主库进行事务操作发,检查事务号是否有变更
               mysql>  show master statusG
                        *************************** 1. row ***************************
                                     File: binlog.000004
                                 Position: 954                                                <---------- 事务备提交后,检查是否有改变
                             Binlog_Do_DB: 
                         Binlog_Ignore_DB: 
                        Executed_Gtid_Set: 2884544a-e20f-11ea-b50e-000c2956b241:1-3            <----------
                        1 row in set (0.00 sec)
         b.从库检查当前SQL进程,IO进程,同时检查事务是否有变更
                    mysql> show  slave status  for  Channel   'migrateconnection' G
                    *************************** 1. row ***************************
                                   Slave_IO_State: Waiting for master to send event
                                      Master_Host: 10.85.10.55
                                      Master_User: root
                                      Master_Port: 3306
                                    Connect_Retry: 60
                                  Master_Log_File: binlog.000004
                              Read_Master_Log_Pos: 1264                            #主库Log_Pos   
                                   Relay_Log_File: relay-migrateconnection.000003
                                    Relay_Log_Pos: 357
                            Relay_Master_Log_File: binlog.000004
                                 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: mysql.%%                         #过滤忽略同步的的表
                                       Last_Errno: 0
                                       Last_Error: 
                                     Skip_Counter: 0
                              Exec_Master_Log_Pos: 1264
                                  Relay_Log_Space: 1837
                                  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: 513306
                                      Master_UUID: 2884544a-e20f-11ea-b50e-000c2956b241
                                 Master_Info_File: mysql.slave_master_info
                                        SQL_Delay: 0
                              SQL_Remaining_Delay: NULL
                          Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
                               Master_Retry_Count: 86400
                                      Master_Bind: 
                          Last_IO_Error_Timestamp: 
                         Last_SQL_Error_Timestamp: 
                                   Master_SSL_Crl: 
                               Master_SSL_Crlpath: 
                               Retrieved_Gtid_Set: 2884544a-e20f-11ea-b50e-000c2956b241:1-4        #已发现的事务id    
                                Executed_Gtid_Set: 21f2d026-3946-11eb-829e-000c29eab121:1-16662,   #从库同步执行的事务id
                    2884544a-e20f-11ea-b50e-000c2956b241:1-4,
                    6e9f519d-3946-11eb-8d07-000c2965c4bd:1-72224
                                    Auto_Position: 0
                             Replicate_Rewrite_DB: 
                                     Channel_Name: migrateconnection
                               Master_TLS_Version: 
                    1 row in set (0.00 sec)
     
    

      

    注意事项:

                      1. 增量同步 只能在 源生mysql  到 tdsql noshard  间进行
                      2.tdsql noshard  到 tdsql noshard  用多源同步 或 DCN 同步

    补充:

    #检查主备数据一致性: 
    使用pt-table-checksum工具来进行校验。
    方法:https://cloud.tencent.com/developer/article/1177904
    风险:可能会影响主机。
    
    #断开增量同步
    >>stop slave migrateconnection
    >>show slave statusG;//查看主备关系是否断开。
     
    关于增量数据同步:
        1.利用MySQL主备同步来获取增量数据
        2.先获取镜像点,新建的主备关系将从该镜像点开始同步
        3.Mydumper会产生一个metadata文件,其中记录了镜像点的信息。
    
    注意:
    1. 迁移时需要注意源实例的版本,原则上只支持低版本向高版本迁移。
    2. TDSQL不支持myisam引擎表的创建,需要在源端将引擎改为innodb
    3. 在创建主备同步关系时,需要显示指定channel名。
    

      

  • 相关阅读:
    避免因为Arcgis Server服务设置不当导致Oracle Process溢出的方法
    ArcSOC进程数不断增长导致oracle processes溢出原因分析
    PostgreSQL中的Toast Pointer
    SQLite中字段顺序和PAGE_SIZE对性能的影响
    PG数据库CPU和内存满负荷运转优化案
    ArcGIS Server浏览地图服务无响应原因分析说明
    PythonWeb全栈开发-虚拟环境搭建
    C 语言学习——错误处理
    C 语言学习——Valgrind 内存问题简述
    HTML学习--拖放API实现拖放排序
  • 原文地址:https://www.cnblogs.com/cqdba/p/14637398.html
Copyright © 2011-2022 走看看