数据库迁移在企业中也算是比较常见的工作,主要体现在以下几点:
综上所述都是企业中常见的数据迁移工作。
在迁移中需要考虑选择什么工具进行迁移:
在迁移过程中还有很多非技术性问题需要考虑:
任何运维的工作,都分为技术性和非技术性,做好任何一项技术时,都要考虑一切困难发生的因素,减少失败的可能性,技术对于运维都不是难题,非技术性问题一定要好好琢磨。
建议使用mysqldump备份低版本的数据,排除掉所有的系统库,然后将备份在高版本的数据库中还原,最后升级数据字典即可。
只能使用逻辑备份,因为多版本之间的系统结构不同。
Oracle—>OGG—>MySQL
MySQL—>CSV—>MongoDB
MySQL—>JSON—>MongoDB
当人员误删除操作时,误删除库的可能性比较小,但是误删除某张表的概率是非常大的,如果误删了某张表,我们也用全备数据去还原,那么是得不偿失的,此时就建议我们从XBK备份中找到某张表,然后只针对这张表进行数据还原。
我们都知道XBK备份的就是数据文件,那么只需要将该表对应的数据文件从备份中找到,然后cp到数据目录即可完成还原。
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;
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核数的一半。