MySQL复制数据库
admin
2023-04-19 11:43:21
0

MySQL复制数据库的办法非常多。针对不同的场景,选择相应的办法。
在可以停止写入,不用保证数据一致性,需要速度的情况下,可以通过物理复制的办法。以下给出脚本:

#!/bin/bash
datadir=/data/mysql
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/mysql/bin

usage(){
echo -e "Usage: $0 db1 db2\nCopy db1 to db2.\nNote: if db2 exists,drop and recreate it."
exit 1
}
if [ $# -ne 2 ]; then usage; fi

[ -d ${datadir}/$2 ] && rm -rf ${datadir}/$2/*
mysql --login-path=recover -e "drop database if exists $2;create database $2;"
for i in `ls -1 ${datadir}/$1/ | grep .ibd | awk -F '.' '{print $1}'`
do
mysql --login-path=recover -e "create table $2.$i like $1.$i;ALTER TABLE $2.$i DISCARD TABLESPACE;flush tables $1.$i for export;system cp -pf ${datadir}/$1/$i.{ibd,cfg} ${datadir}/$2/; unlock tables;" 
mysql --login-path=recover -e "set foreign_key_checks=0;alter table $2.$i import tablespace;analyze table $2.$i;" 
done
rm -rf ${datadir}/*cfg
exit 0

具体实现可以参阅官方文档。

其中实现很简单,但过程发现了一些有意思的东西。
开始的时候,脚本中并没有[ -d ${datadir}/$2 ] && rm -rf ${datadir}/$2/*这一句。在第一次执行脚本没什么毛病。但是,当对源库修改后,再次执行,这个时候目标库锁定了。查看进程发现System lock,错误日志提示Orphan table encountered during DROP DATABASE. This is possible if 'db2/t1.frm' was lost。
MySQL复制数据库

MySQL复制数据库
这个MySQL服务不能正常shutdown,通过kill掉进程重启。
重启服务过后,仍然不能删除目标库。需要删除目标库目录下的所有文件,可删除目标库。

以上问题在5.6系列会发生,5.7和8.0系列并无此问题。

相关内容

热门资讯

终于明白“广西老友玩怎么装挂?... 您好:广西老友玩这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
玩家攻略科普“欢乐龙城9开挂神... 网上科普关于“欢乐龙城9有没有挂”话题很是火热,小编也是针对欢乐龙城9作*弊开挂的方法以及开挂对应的...
终于懂了“新九天牛牛可以开挂吗... 终于懂了“新九天牛牛可以开挂吗?”(太坑了果然有挂)您好,新九天牛牛这个游戏其实有挂的,确实是有挂的...
今日重大发现“新起点开挂神器?... 家人们!今天小编来为大家解答新起点透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很多...
【第一财经】“新皇豪炸/金/花... 网上科普关于“新皇豪炸/金/花有没有挂”话题很是火热,小编也是针对新皇豪炸/金/花作*弊开挂的方法以...
终于明白“广西老友玩到底是不是... 家人们!今天小编来为大家解答广西老友玩透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买...
今日重大发现“网易棋牌开挂器?... 您好:网易棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...
终于了解“人海牛牛可以开挂吗?... 有 亲,根据资深记者爆料人海牛牛是可以开挂的,确实有挂(咨询软件无需打开...
【第一财经】“蛮王炸/金/花开... 有 亲,根据资深记者爆料蛮王炸/金/花是可以开挂的,确实有挂(咨询软件无...
玩家攻略科普“友谊互娱辅助器?... 家人们!今天小编来为大家解答友谊互娱透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...