文章目录
MySQL数据库迁移方面需要考虑的因素
1.MySQL数据库迁移方面要考虑的因素
数据库迁移在企业中也算是比较常见的工作,主要体现在以下几点:
- 需要从线上环境同步数据到预发布环境。
- 业务上云,在阿里云环境部署了新的MySQL实例,需要将数据迁移到阿里云的MySQL数据库。
- 新老服务器切换,淘汰一批MySQL服务器,新购买了性能很强的MySQL服务器,需要迁移数据。
- MySQL版本升级需要迁移数据。
- 平台架构中引入了新的技术,例如ES,将MySQL的数据迁移到ES中。
综上所述都是企业中常见的数据迁移工作。
在迁移中需要考虑选择什么工具进行迁移:
- 数据库与数据库之间的迁移,通常都是使用XBK、mysqldump进行数据迁移,迁移当天先还原全量数据,然后晚上停服,通过Binlog恢复当天产生的新数据,完成迁移
- idc数据库服务器迁移到阿里云环境,这时使用mysqldump或者是XBK性能都很低,因为要通过互联网传输,可以采用阿里云的DTS迁移工具,快速的进行数据迁移。
- 数据量很大的情况下,可以使用XBK进行备份还原,直接scp数据文件到目标数据。
- 数据迁移也可以使用主从复制的方案。
在迁移过程中还有很多非技术性问题需要考虑:
- 由于要做数据迁移,迁移过程中是不允许数据写入的,肯定是要发布停服通告,首先要确定此次迁移要花费的时间,然后综合性的评估,最后张贴停服公告。
- 如果迁移有问题,那么回退方案是什么?都要提前考虑好。
任何运维的工作,都分为技术性和非技术性,做好任何一项技术时,都要考虑一切困难发生的因素,减少失败的可能性,技术对于运维都不是难题,非技术性问题一定要好好琢磨。
2.MySQL5.6升级到5.7版本的方法
建议使用mysqldump备份低版本的数据,排除掉所有的系统库,然后将备份在高版本的数据库中还原,最后升级数据字典即可。
只能使用逻辑备份,因为多版本之间的系统结构不同。
3.MySQL迁移到其他数据库的方法
Oracle—>OGG—>MySQL
MySQL—>CSV—>MongoDB
MySQL—>JSON—>MongoDB
4.为什么要从XBK备份中还原某张表的数据
当人员误删除操作时,误删除库的可能性比较小,但是误删除某张表的概率是非常大的,如果误删了某张表,我们也用全备数据去还原,那么是得不偿失的,此时就建议我们从XBK备份中找到某张表,然后只针对这张表进行数据还原。
我们都知道XBK备份的就是数据文件,那么只需要将该表对应的数据文件从备份中找到,然后cp到数据目录即可完成还原。
5.从XBK备份中还原某张表的数据
1)模拟xscjb误删除
[root@mysql ~]# rm -rf /data/mysql/db_1/monday.*
或者
mysql> alter table monday discard tablespace;
2)从备份中找到xscjb的备份文件
[root@mysql ~]# ll /data/dbbackup/all_db_bak/all_bak_2022-07-04/db_1/monday.*
-rw-r----- 1 root root 8720 7月 4 11:44 /data/dbbackup/all_db_bak/all_bak_2022-07-04/db_1/xscjb.frm
-rw-r----- 1 root root 98304 7月 4 11:34 /data/dbbackup/all_db_bak/all_bak_2022-07-04/db_1/xscjb.ibd
3)将xscjb的备份文件还原到数据目录中
[root@mysql ~]# \cp /data/dbbackup/all_db_bak/all_bak_2022-07-04/db_1/monday.* /data/mysql/db_1/
[root@mysql ~]# chown -R mysql.mysql /data/mysql/db_1/
4)重新加载表空间文件
mysql> alter table monday import tablespace;
6.XtrBackup企业级备份参数
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --no-timestamp --xbstream=tar --user-memory=256M --parallel=2 /data/test/
--stream=tar
:开启流备份,备份成tar包。
--user-memory=256M
:为xbk分配256M的内存进行备份。
--parallel=8
:并发处理数,一般都是CPU核数的一半。