1.情况:
现有服务器数台。
A:新DB server
B:旧DB server
C:多台APP server
由于机房问题导致C不能连接B,现在将B的ucenter数据库迁至A机(A和B的mysql版本一致)
注意:使用直接拷迁贝方式,迁移时会影响在线业务的使用
2.准备工作
A机使用phpmyadmin创建C机程序所需用户,并刷新权限
下载并修改C机程序的相关数据库配置文件
B机修改my.cnf,开启query log,如果数据库迁移后程序依然往这里写,可以进行补救
log = /opt/mysql/var/query_log.log
reload B机 mysql
/opt/mysql/bin/mysql reload
3.开始迁移
在B机上打开2个ssh客户端。
在1客户端上锁定B机数据库,此时访问有写请求的程度时会出错长时间不响应,或404错误
锁表可能会有写丢失,关闭mysql后再拷靠谱点。
/opt/mysql/bin/mysql -uroot -p
#输入root密码
mysql>FLUSH TABLES WITH READ LOCK;
执行锁定后,另一个客户端开始打包
cd /opt/mysql/var
tar cf ucenter.tar ucenter
#移至可以下载目录
mv ucenter.tar /opt/lampp/htdocs/sns/
4.下载解压并启用新数据库
A机,下载数据库并解压
cd /opt/mysql/var
wget -c http://i.c1gstudio.com/ucenter.tar
tar xf ucenter.tar
mv ucenter.tar ..
让数据库生效
/opt/mysql/bin/mysql reload
5.更新数据库配置文件
C机上机并更新程序配置文件
6.检查迁移情况
通过phpmyadmin查看更新情况
正常情况下A机ucenter不断更新
7.解锁
B机,释放锁
mysql>UNLOCK TABLES;
这时B机的ucenter库应该不再有更新。
7.清理文件
迁移已完成,按需要进行清理
B机
删除mysql旧账号
关闭query log
#log = /opt/mysql/var/query_log.log
删除ucenter数据库,reload B机 mysql
rm -rf /opt/mysql/var/discuz
/opt/mysql/bin/mysql reload
删除数据库打包文件
rm /opt/lampp/htdocs/sns/ucenter.tar
A机 删除打包文件
rm /opt/mysq/discuz.tar
No Responses (yet)
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.