迁移上云,一般涉及到应用系统及数据库系统,其中数据库系统的迁移是最麻烦的。应用系统的迁移一般采用重新部署或磁盘物理迁移方式,但数据库的迁移方式很多,不同的场景有不同的迁移方式。一般数据库迁移方式有物理、逻辑迁移两种方式,对数据库的迁移讲究中断业务时间最短、数据零丢失。前面,我们讲过到mysqldump进行逻辑迁移,今天我们试一下不同的物理数据迁移方式。
最野蛮的办法,直接copy磁盘的数据库目录
1、在mysql中将需要备份的数据库进行加锁(并实现内存数据落盘),避免备份中出现写操作。
MariaDB [(none)]> flush tables with read lock;
2、进入linux的数据库保存目录,查看数据库文件是否存在
[root@localhost mysql]# cd /var/lib/mysql/mx
[root@localhost mx]# ls
db.opt mx.frm mx.MYD mx.MYI
3、直接将数据库目录copy至根目录下
[root@localhost mx]# cd ..
[root@localhost mysql]# cp -r mx /
4、删除原数据库目录
[root@localhost mysql]# rm mx -rf
5、进行数据物理还原
[root@localhost mysql]# cp /mx ./ -r
6、务必将数据库目录的主人设置为mysql
chown -R mysql:mysql /var/lib/mysql/mx
7、在mysql中将数据库解锁
MariaDB [none]>unlock tables;
8、检查数据是否恢复正常
MariaDB [mx]> select * from mx;
+------+
| id |
+------+
| 123 |
+------+
1 row in set (0.00 sec)
采用物理备份的方式有优点:数据快,缺点:只支持MyIsam的数据库引擎且必须是数据库的同版本,备份过程中将中断业务。