gpt4 book ai didi

MySQL 常见数据拆分办法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章MySQL 常见数据拆分办法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在生产环境中,由于业务的增长或者业务的拆分,DBA经常需要拆库操作。那么我们常见的拆库手段有哪些呢?

我这里提供几种解决办法:

1. 使用mysqldump 把表逻辑倒出,然后再source 到其它地方 2. 使用xtrabackup 把表、或者库逻辑备份出,然后再recovery出一个实例 3. 使用MySQL自带的表空间转移(Transport)[这个需要MySQL 5.6.6 以上版本支持] 。

I: 先来看一下MySQL 的 Transport 表空间的特性吧 。

比如我们要把  tab_test1 从 db_A 移动到 db_B ,那么我们需要做这么一系列动作:

Step 1: use db_A; show create table tab_test1;(首先,拿到需要的表结构) Step 2: use db_B; create table tab_test1; alter tale tab_test1 discard tablespace;(discard tablespace 就是把ibd文件删掉,只留下.frm文件)(其次,到目标库删除掉idb文件) Step 4: use db_A; flush table test122 for export;(把相关表的内存数据写入到数据库) Step 5: 拷贝 tab_test1.ibd 文件到 db_B/   目录下;(操作系统层执行拷贝ibd文件操作) Step 6: use db_A; unlock tables; (源库上解锁表) Step 7: use db_B; alter table tab_test1 import tablespace;(目标库执行表空间导入) 。

执行完上边几个步骤,我们就完成了 在库之间迁移 某些个表的操作了.

II: 再来看一下 xtrabackup 导出部分表,以达到迁移目的 。

 Step 1: 我们需要使用xtrabackup 备份部分表 。

nohup perl /home/ddb/tmp/xtrabackup/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/xtrabackup/bin/xtrabackup_55 --user=root --password=123 --defaults-file=/home/my.cnf  --slave-info  --tables-file=/mnt/back_tables.txt /mnt/backup_1    Step 2:  应用日志,进行恢复操作 。

nohup perl /home/tmp/percona-xtrabackup-2.1.9-Linux-x86_64/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/percona-xtrabackup-2.1.9-Linux-x86_64/bin/xtrabackup_55 --export --apply-log --defaults-file=/home/node-1-1/backup-my.cnf /home/node-1-1/ > /tmp/r.log 2>&1 &   Step 3: 重新起实例,配置复制关系,只复制部分表 。

    my.cnf 文件配置: Replicate_Wild_Do_Table/Replicate_Wild_Ignore_Table   执行完上边几个步骤,我们就完成了表的迁移操作,并且新起了个实例,达到了分库的目的。   。

III:最后我们就看一下 mysqldump 的姿势吧 。

    额, 这个就不多啰嗦了吧, mysqldump 做的事情就是 一些逻辑的导出, 倒出来的数据我们是可以用人肉可见的。    这个需要注意的一点就是  --single-transcation 选项   关于以上几种办法,我们在实际工作中需要 考虑 服务器的资源、内存容量等, 需要结合实际情况来使用 合适的办法进行拆库操作.

最后此篇关于MySQL 常见数据拆分办法的文章就讲到这里了,如果你想了解更多关于MySQL 常见数据拆分办法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com