• pt-online-schema-change在线修改脚本


      pt-online-schema-change在线修改脚本

      经过几次在测试环境中使用,发现5.6和5.7可以正常使用。mysql8.0.18版本中,竟然无法使用,感到惊讶。难道mysql8.0.18强大到无需再用这个外围工具了吗?反过来说过,mysql8.0.18确实在很多ddl中可以在线操作了。

     

    [root@bj-db-manage scripts]# cat dbtest.oneline_ddl_.sh 
    #!/bin/bash
    source /etc/profile 
    Db="dbtest"
    Tab="t2"
    # pre
    Master_Host="172.16.0.100"
    Backup_Host="172.16.0.101"
    
    # prod
    #Master_Host="10.10.0.100"
    #Backup_Host="10.10.0.105"
    
    Dump_Command="/usr/bin/mysqldump"
    Sql_Operators="add index idx_sale_uid (sale_uid);"
    
    Charset="utf8mb4"
    User="username"
    Passwd="xxxxx"
    Tool="/usr/bin/pt-online-schema-change"
    Base_Dir="/data/backup"
    Data_Dir="${Base_Dir}/data/$(date +%F)"
    Log_Dir="${Base_Dir}/logs"
    Log_File="${Log_Dir}/${Db}.log"
    [[ -d "$Data_Dir" ]] || mkdir -p $Data_Dir
    File=${Data_Dir}/${Db}-${Tab}_$(date +%F_%H_%M).sql
    echo -e "$(date) 开始备份表 $Table"
    "${Dump_Command}" -u$User -p$Passwd -h $Backup_Host --default-character-set=$Charset --skip-tz-utc --single-transaction --master-data=2 --set-gtid-purged=OFF $Db $Tab > $File
    if [ $? -eq 0 ];then
      ls -lth "${File}"
      $Tool --user=$User --password=$Passwd -h $Master_Host --critical-load="Threads_running=200"  --no-check-replication-filters --no-check-unique-key-change D=$Db,t=$Tab --charset=$Charset --alter="
    "${Sql_Operators}"  
    " --execute >> $Log_File 2>> $Log_File
    else
            echo "备份失败,退出修改程序"
            exit
    fi
  • 相关阅读:
    NC_6_TREE_MAX_PATH
    NC_12_reConstructBinaryTree
    NC_15_levelOrder
    NC_7_MAXPROFIT
    NC_9_HAS_PATH_SUM
    NC_8_BINARYTREE_SUMPATH
    NC_13_MAX_DEPTH
    IDEA的基本使用:让你的IDEA有飞一般的感觉
    Java获取当前系统事件System.currentTimeMillis()方法 ,获取当前时间戳10位 1665291145 转为时间字符串 yyyMMdd
    JAVA中计算两个日期时间的差值竟然也有这么多门道
  • 原文地址:https://www.cnblogs.com/bjx2020/p/11799898.html
Copyright © 2020-2023  润新知