简介
好久没有写过博客了,水一下,公司总有很多数据库需要同步来同步去,然后临时使用的,有的项目线上关闭了,但是数据库没有删除,所以这些数据库就变成了薛定谔的数据库,可能不删除一辈子都不会被用到,一删除第二天就有人在群里吼了
操作
对于这种现象,我创建了一个脚本
#!/bin/bash
# 定义数据库用户名和密码
DB_USER=""
DB_PASS=""
DB_HOST=""
DB_PORT=""
DB_NAME=""
NEW_DB=arc_${DB_NAME}
# 创建目标数据库(如果不存在)
mysql -u${DB_USER} -p${DB_PASS} -h ${DB_HOST} -P ${DB_PORT} -e "CREATE DATABASE IF NOT EXISTS \`$NEW_DB\`"
# 获取源数据库的所有表名
# 获取源数据库的所有表名,并将其赋值为一个列表
list_table=$(mysql -u${DB_USER} -p${DB_PASS} -h ${DB_HOST} -P ${DB_PORT} --batch --skip-column-names -e \
"SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA='$DB_NAME'")
# 遍历表名并重命名表
for table in $list_table; do
echo "Processing table: $table"
mysql -u${DB_USER} -p${DB_PASS} -h ${DB_HOST} -P ${DB_PORT} -e "RENAME TABLE \`$DB_NAME\`.\`$table\` TO \`$NEW_DB\`.\`$table\`"
if [ $? -eq 0 ]; then
echo "Successfully renamed table: $table"
else
echo "Failed to rename table: $table" >&2
fi
done
首先,创建一个归档数据库,然后把所有的表都移动到这个归档数据库中,然后等上个3个月,如果没人在群里bb,那么就可以直接删除这个归档数据库了,如果有人bb,那么就把数据库从归档数据库移到原来的数据库中
欢迎关注我的博客www.bboy.app
Have Fun