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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下