Skip to content


在线迁移ucenter数据库

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

Posted in Mysql, 技术.

Tagged with , .


No Responses (yet)

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.