mysql的数据迁移

mysql的数据迁移大致可分为两种:

1.通过mysqldump工具备份数据,然后导入到新的数据库中

导出:

mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db(备份所有数据库)

mysqldump -uroot -p test > /backup/mysqldump/test.db(备份指定数据库)

mysqldump -uroot -p mysql db event > /backup/mysqldump/2table.db  备份指定数据库指定表(多个表以空格间隔)

mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db(备份指定数据库排除某些表)

以上语句加上--single-transaction参数可解决锁表问题。(该参数仅适用于InnoDB引擎。)

导入:

mysqladmin -uroot -p create db_name

mysql -uroot -p db_name < /backup/mysqldump/db_name.db

2.通过Xtrabackup工具实现数据迁移

#安装yum仓库

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm

#安装Percona XtraBackup

yum install percona-xtrabackup-24

2.1完全备份

xtrabackup --user=root --password=centos --backup  --target-dir=/backup/fullback

拷贝到远程主机:scp  -r /backup/fullback x.x.x.x:/backup/fullback

以下步骤在备份主机执行

2.2准备备份

xtrabackup --prepare --target-dir=/backup/fullback

2.3.恢复全备

systemctl stop mysqld

rm -rf  /var/lib/mysql/*(删除所有数据库的数据文件,不然会报错)

xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/backup/fullback

chown -R mysql:mysql /var/lib/mysql

systemctl start mysqld

 

 

 

 

posted @ 2020-11-05 15:56  高冷的小羊  阅读(1082)  评论(0)    收藏  举报