原生mysql-到noshard(全量) mydumper myloader

原生MYSQL  迁移至  非分布式实例NOSHARD 示例: 
说明: 
#全量数据迁移 :
      mydumper&myloader
            1、mydumper&myloader是mysql社区开源的一款高性能逻辑备份恢复工具。
            2、TDSQL团队在开源的基础上做了适配性的修改 。(符合相关开源协议)
            
#增量数据同步
        利用MySQL主备同步迁移增量数据 (只能是原生mysql 到  tdsql noshard )
        
工具说明:只能用tdsql 自带的
            >>tdsqlinstall/mysqlagent/bin/myloader
            >>tdsqlinstall/mysqlagent/bin/mydumper

mydumper&myloader 运用场景:
         原生mysql     -  tdsql noshard
         原生mysql     -  tdsql shard (需提前创建好表,加shardkey)
         tdsql noshard -  tdsql noshard 
         tdsql noshard -  tdsql shard (需提前创建好表,加shardkey)
          tdsql shard  -  tdsql shard 

  

全量迁移 : 

./mydumper --host=ip --port=xxxx --user=xxxx --password=xxxx --events --routines --triggers --less-locking --ignore-sysdb=1 --chunk-filesize=1024 --outputdir=/tmp –complete-insert

说明:
        --ignore-sysdb=1  忽略心跳表 sysdb 的导出         
        –complete-insert  指生成插入语句时,带例名

./myloder --host=ip --port=xxxx --user=xxxx --password=xxxx –directory=/tmp --enable-binlog

#mydumper & myloader需使用TDSQL自带版本
>>tdsqlinstall/mysqlagent/bin/myloader
>>tdsqlinstall/mysqlagent/bin/mydumper

#注意metadata  不能要后缀名:需要手动更改  mv metadata.profile  metadata

  

示例:
1.创建导出文件的目录 :

mkdir -p /tmp/mydumper
cd /data/tdsql_run/4002/mysqlagent/bin
导出10.85.10.55 上面的原生mysql 数据:
./mydumper --host=10.85.10.55 --port=3306 --user=root --password=root --events --routines --triggers --less-locking --ignore-sysdb=1 --chunk-filesize=1024 --outputdir=/tmp/mydumper –complete-insert

2020-12-09 22:01:44] progress:0%
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2020-12-09 22:01:46] progress:100%
    
 #注意 :
         1.导出的路径为/tmp/mydumper  (好像/tmp/mydumper/也行),导入的路径为 /tmp/mydumper/
         2.导出导入日志分别在 /tmp/mydumper/目录下 dump_progress.info  ,  load_progress.info 
         3.导出原生mysql,用tdsql 的 mydumper 导源生mysql
            #如果metadata 里没有 master_log_file  和master_log_pos 是记录 
                这不影响导入到TDSQL中,但如果增量同步需要master_log_file  和master_log_pos信息
                [root@huyidb01 bin]# cat /tmp/mydumper/metadata     #用TDSQL的mydump 导出原生的原生mysql 。
                Started dump at: 2020-12-09 15:26:04
                Finished dump at: 2020-12-09 15:26:06
            #原因是源库没有开启bin log 
            #show variables like '%log_bin%';
            #vi   my.cnf   添加以下参数重启
               log_bin = /mysql/log/3306/binlog
               log_bin_index=/mysql/log/3306/binlog/BIN-LOG.index

  

2. 导入:到非分布式库: 如果不导入系统表 可以先删掉 rm -rf sys.*

./myloader --host=10.85.10.51 --port=15002 --user=huyi35 --password=huyi --directory=/tmp/mydumper/ --enable-binlog
[2020-12-09 22:15:49] progress:11%
[2020-12-09 22:15:49] progress:16%
[2020-12-09 22:15:49] progress:22%
[2020-12-09 22:15:49] progress:27%
[2020-12-09 22:15:49] progress:33%

  

3.检查表   #注意,如果源表没有主键,在导入的时候不会创建该表。  需要先手动更改表结果。在导入

 mysql -h 10.85.10.51 -P15002  -uhuyi35 -phuyi    


Database changed
MySQL [ ]>  use huyidb ; 
MySQL [huyidb]>   show tables ;
+-------------------+
| Tables_in_huyidb |
+-------------------+
| bm                |
| dd                |
| dq                |
| gj                |
| gw                |

  

原文地址:https://www.cnblogs.com/cqdba/p/14637370.html