mysql-idb文件批量恢复多库的数据

该博文提供了一个shell脚本,用于批量恢复MySQL数据库中多个表的数据。前提条件是表结构已经存在。脚本首先获取所有非系统库的数据库列表,然后遍历每个数据库及其表,使用discard和import tablespace命令进行数据恢复。同时,文中还解释了如何处理包含特殊字符的数据库名称,并给出了bash数组操作的示例。
摘要由CSDN通过智能技术生成

#前提是表结构是存在的

shell文件

#!/bin/bash
base_dir=$(cd `dirname $0`; pwd)
user='mysql'
sql_e="mysql -N -uroot -p123456"
#得到所有的数据库,除去'information_schema|mysql|performance_schema|sys'这四个库
db_s=($(${sql_e} -e 'SHOW DATABASES;' | egrep -v 'information_schema|mysql|performance_schema|sys'))
#需要恢复的库地址
mysql_dir='/mnt/mysql/mysql57/data'
#idb文件备份的地址
back_dir='/mnt/mysql/bk/'
for (( i=0; i<${#db_s[@]}; i++ ))
do
  tables_list=($(${sql_e} -e "SELECT table_name FROM information_schema.tables WHERE table_schema=\"${db_s[i]}\";"))
  db_name=${db_s[i]}
  for (( table=0; table<${#tables_list[@]}; table++ ))
  do
    ${sql_e} -e "alter table \`${db_s[i]}\`.${tables_list[table]} discard tablespace;"
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值