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.