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系列并无此问题。

相关内容

热门资讯

荣耀首款自研耳夹式耳机官宣即将... 快科技5月13日消息,日前,荣耀首席营销官关海涛宣布,荣耀全场景团队自研首款耳夹式耳机马上上市,并称...
谷歌推出Googlebooks... IT之家 5 月 13 日消息,2026 年 I/O 开发者大会下周(5 月 19~20 日)召开之...
自控所推动GNC专业智能化升级 来源:滚动播报 (来源:中国航空报) 本报讯 5月6日,航空工业自控所召开 GNC+AI关键技术研发...
华电电力申请数据库访问方法专利... 国家知识产权局信息显示,华电电力科学研究院有限公司申请一项名为“数据库访问方法、装置、设备及介质”的...
苏州率先打造数据流通利用新范式 数据,作为第五大生产要素 具有流动性强、非消耗性、非均质性等特点 苏州率先打造数据流通利用新范式 夯...
伊媒披露伊美新一轮谈判5个先决... 当地时间5月12日,据伊朗法尔斯通讯社援引知情人士消息报道,伊朗对与美国新一轮谈判提出的5个先决条件...
英国将向霍尔木兹海峡多国护航行... 当地时间12日,总台记者从英国国防部获悉,英国将向在霍尔木兹海峡执行任务的多国护航行动提供无人机、战...
强化技术引领场景培育政策保障 ... 5月11日,省长叶建春就脑机接口技术与产业创新工作开展专题调研。他强调,脑机接口是培育未来产业发展新...
上海交大王如竹教授领衔撰写的“... 4月30日,国际制冷学会(IIR,International Institute of Refrig...
非人类身份蔓延:智能体AI真正... 长期以来,企业依赖服务账户、API密钥、OAuth令牌等各类非人类身份凭证,使不同服务能够在数字环境...