MySQL迁移
先将MySQL数据迁移到cdh-slave02(192.168.100.47)节点,并由该节点接收后续提供192.168.100.41节点的MySQL数据库查询请求。
1. 备份数据库表结构
迁移 remain_result 和 user_new_login 两个库。
mysqldump -uroot -p --databases remain_result user_new_login -d --single-transaction \
--default-character-set=utf8 > /tmp/db_create_schema.sql
2. 导出用户表
因为平台节点不同,不是新集群CDH主节点,需要修改一部分用户数据,比如删除scm等用户。
mysqldump -uroot -p mysql user > /tmp/table_user.sql
3. 备份迁入节点用户表
mysqldump -uroot -p mysql user > /tmp/47user.sql
4. 导出数据
查看表大小,因为少了索引大小,会比实际小一些
mysql -uroot -p -e "select concat(round(sum(DATA_LENGTH/1024/1024),1),'M') \
from information_schema.tables where table_schema='user_new_login';"
暂时关闭自动提交
mysql –uroot –p –e "set autocommit=0;"
导出数据库
time mysqlpump -uroot -p -B user_new_login --default-character-set=utf8 \
--single-transaction --default-parallelism=10 > /tmp/db_user_new_login.sql
恢复自动提交
mysql –uroot –p –e " set autocommit=1;"
5. 拷贝数据
将数据传到迁入服务器
rsync -v /tmp/db_create_schema.sql root@192.168.100.47:/user/liujinhe/bak/
rsync -v /tmp/table_user.sql root@192.168.100.47:/user/liujinhe/bak/
rsync -v db_remain_result.sql root@192.168.100.47:/user/liujinhe/bak/
rsync -v /tmp/db_user_new_login.sql root@192.168.100.47:/user/liujinhe/bak/
6. 导入数据
创建库
mysql -uroot -p -e 'create database `remain_result` default character set utf8;'
查看mysql设置
mysql -uroot -p -e "show variables like 'max_allowed_packet';"
mysql -uroot -p -e "show variables like 'net_buffer_length';"
暂时关闭自动提交和binlog
mysql -uroot -p -e 'set sql_log_bin=OFF;'
mysql -uroot -p -e 'set autocommit=0;'
导入数据
现在只能单线程导入,比较慢
# 不显示过程
mysql -uroot -p remain_result < /user/liujinhe/bak/db_remain_result.sql
# 可以看到详细过程
mysql -uroot -p -e "source /user/liujinhe/bak/db_remain_result.sql;"
开启自动提交和binlog
mysql -uroot -p -e 'set autocommit=1;'
mysql -uroot -p -e 'set sql_log_bin=ON;'