• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Nobody

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

使用AWS DMS迁移数据,大概核对数据是否相同

#!/bin/bash
echo "script start...."
Source='/data/dba/mysql8/bin/mysql -uadmin_dba -ppassword -h xxx '
Target='/data/dba/mysql8/bin/mysql -uadmin_dba -ppassword  -h xxxxx '

# show databases 过滤出数据库名
echo $Source
dbs=`$Source -e  "show databases \G" 2> /dev/null | grep "Database:"|grep -Ev " (awsdms_control|information_schema|mysql|sys|performance_schema)"| awk '{print $2}'`
echo $dbs
for db in $dbs
do
    #echo $db;
    # 过滤出有表名那一行
    tables=`$Source  -e "use $db;show tables \G" 2> /dev/null |grep "Tables_in_$db:"| awk '{print $2}'`
    for table in $tables
    do
        # 过滤表名
        num1=`$Source -e "select count(*) from $db.$table;" 2> /dev/null | grep [0-9]`
        num2=`$Target -e "select count(*) from $db.$table;" 2> /dev/null | grep [0-9]`
        echo $db.$table
        if [ $num1 != $num2 ]
        then
            echo "error===============================error"
        else
            echo "source: $num1 target: $num2:::OK!!!"
        fi
    done
done

posted on 2024-08-27 16:22  A_Nobody  阅读(21)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3