日志库需要重构,但是单个日志库太大(10G甚至100G以上)。使用mysqldump备份不现实,可以使用
rename
操作,把数据表迁移到一个新的备份库中,速度快且不用丢数据。
- sakila:旧数据库
- new_sakila:新数据库(备份)
检查
操作前检查是否有程序占用,确保连接数据库的程序已经退出,不然操作会等待锁有可能导致卡死。
show processlist;
操作
#创建新存放数据库
mysql -h127.0.0.1 -P3306 -uUSERNAME -pPASSWORD -e 'create database if not exists new_sakila'
#获取旧数据的所有表
table_list=$( mysql -h127.0.0.1 -P3336 -uroot -pmhtx123123 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='sakila'")
#将旧数据库的表和数据全部迁移到新的数据库
for table in $table_list
do
mysql -h127.0.0.1 -P3306 -uUSERNAME -pPASSWORD -e "rename table sakila.$table to new_sakila.$table"
done
以上流程最好先经过测试,数据库请谨慎操作。