Ⅰ： 前言 大早上收到了阿里云告警短信，原因可能是阿里云账户的AccessKey ID 泄露 [scode type="share"]AccessKey ID 只存在于公司git仓库，本地电脑，公司阿里云服务器中 具体哪里泄露暂不清楚 另外这个是个人阿里云账号，并未用于公司实际业务中 但是公司另外一台阿里云服务器遭遇勒索病毒，服务器内文件全部被加密，造成生产服务宕机 数据库使用RDS，同服务器分开，暂时不受影响，但服务器需重新部署，部分服务配置文件需要重新编写[/scode] Ⅱ： 未雨绸缪 公司另一台服务器内部部署数据库，并且有正式环境项目部署，为避免数据丢失，增加外部备份 Ⅲ：实际执行 编写脚本 #!/bin/bash # 设置备份目录和文件名 backup_dir="/path/to/backup" filename="${backup_dir}/db_backup_$(date +%Y%m%d).sql" # 备份数据库到指定文件 mysqldump -h 远程IP -u user -p PASSWOED DATABASE_NAME > "$filename" # 删除一周前的备份文件 find "$backup_dir" -name "db_backup_*" -type f -mtime +7 -exec rm {} \; 脚本看起来什么问题 实际执行报错Unknown table 'COLUMN_STATISTICS' in information_schema (1109) mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'qc' AND TABLE_NAME = 'app_version_controller';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109) Ⅳ：解决方案 # 修改脚本 增加--column-statistics=0 mysqldump --column-statistics=0 -h 远程IP -u user -p PASSWOED DATABASE_NAME > "$filename"
Lock wait timeout exceeded; try restarting transaction
起因 @transaction.atomic def post(): try: s1 = transaction.savepoint() raise except Exception: transaction.savepoint_rollback(s1) 现象 数据库死锁 猜测是因为 debug 调试时 没有走到下面的 transaction.savepoint_rollback(s1) 导致锁未释放? 查看数据库锁情况 select * from information_schema.innodb_trx; 干掉 trx_mysql_thread_id kill trx_mysql_thread_id;