资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MySQL数据库迁移详细步骤2015-01-02 00:40:04标签:mysql数据库迁移原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http:/sofar.blog.51cto.com/353572/1598364=一、背景简介=1、问题描述由于机房搬迁,需要对后台DB服务器进行迁移,同时为了保证在数据迁移过程中,对线上业务不造成影响,并能够做到秒级切换。如果我们采用普通的逻辑备份,比如:mysqldump,会存在锁表的情况,显然不可取。因此我们采取基于物理备份的方案,备份工具选型为:xtrabackup。2、系统环境IP地址系统版本MySQL版本角色172.17.138.239SUSE Linux Enterprise Server 10 (x86_64)5.0.26旧环境(临时主)10.217.121.196CentOS 6.3 (x86_64)5.0.27新环境(主)10.217.121.216CentOS 6.3 (x86_64)5.0.27新环境(从)(1)、由于当前的mysql版本太旧,故备份工具推荐选择xtrabackup-2.0.8的版本;(2)、由于当前的系统环境太旧,官方提供的xtrabackup二进制版本无法运行,故需进行源码编译。3、编译要求(1)、需要安装cmake依赖库;(2)、需要下载一份mysql-5.1.59的源码包,放在percona-xtrabackup-2.0.8目录下;(3)、libtool的版本不能高于2.4。=二、xtrabackup编译安装=1、编译安装cmakehttp:/wwwNaNake.org/files/v2.8/cmake-2.8.10.tar.gz# tar -xvzf cmake-2.8.10.tar.gz# cd cmake-2.8.10# ./bootstrap -prefix=/usr/local# gmake -jobs=grep processor/proc/cpuinfo | wc -l# gmake install2、编译安装xtrabackuphttp:/www.percona.com/downloads/XtraBackup/XtraBackup-2.0.8/binary/Linux/x86_64/percona-xtrabackup-2.0.8-587.tar.gz# tar xvzf percona-xtrabackup-2.0.8.tar.gz# cd percona-xtrabackup-2.0.8#将mysql-5.1.59源码包下载到percona-xtrabackup-2.0.8目录下,无需解压http:/downloads.mysql.com/archives/get/file/mysql-5.1.59.tar.gz# ./utils/build.shinnodb50注意:以上标注部分,需要与当前的MySQL主版本对应上,如果有不明白的,可以参考以下信息。# cat BUILD.txt# vim ./utils/build.sh# cp innobackupex /usr/local/bin/# cd src# cp xbstream xtrabackup_51 /usr/local/bin/# cd /usr/local/bin/# ln -s innobackupex innobackupex-1.5.1# ln -s xtrabackup_51 xtrabackup=三、DB数据备份=1、一些常用用法#如果在从端运行的话innobackupex -user=root -defaults-file=/etc/my.cnf-slave-info-no-timestamp /data/mysql_backup#如果在主端运行的话innobackupex -user=root -defaults-file=/etc/my.cnf -no-timestamp /data/mysql_backup#如果在主端运行并压缩传输到远程服务器的话innobackupex -user=root -defaults-file=/etc/my.cnf -no-timestamp -stream=tar /data/mysql_backup |gzip | ssh root10.133.33.85 cat - /data/mysql_backup.tgz注意:我们本次的备份,直接在主DB(172.17.138.239)上进行,因为xtrabackup不会锁表,对业务不造成影响,也会为后续的主从关系建立带来便利。2、备份步骤由于本地服务器的磁盘空间所剩不多,所以本次备份采用压缩传输到远程服务器的方式。但为了更好地描述在本次备份中遇到的问题,我们先采用本地模式。# innobackupex -user=root -defaults-file=/etc/my.cnf -no-timestamp /data/mysql_backup注意:如上报错信息,主要是因为“/etc/my.cnf”配置文件里没有指定basedir、datadir参数设置,导致xtrabackup找不到。# ps aux | grep mysqld注意:根据以上信息,我们需要将以下参数添加到配置文件中(/etc/my.cnf):basedir=/usr/local/services/mysql-5.0.26datadir=/usr/local/services/mysql-5.0.26/var# innobackupex -user=root -defaults-file=/etc/my.cnf -no-timestamp /data/mysql_backup注意:出现这种错误信息,是因为备份目录“/data/mysql_backup”已经存在,主要是由前一次操作引起的。因为xtrabackup要求备份目录事先不能存在,需要在执行时才会自动创建。如果我们将数据备份到本地的话(前提是服务器磁盘空间足够多),执行以下命令即可:# rm -rf /data/mysql_backup# innobackupex -user=root -defaults-file=/etc/my.cnf -no-timestamp /data/mysql_backup在恢复的时候,将本地的备份数据rsync同步到远程服务器,然后采用xtrabackup进行恢复即可。但考虑到本地磁盘空间不足,故本次数据迁移,我们采用压缩传输到远程服务器的备份方式(此种方法比较慢_),执行以下命令即可:innobackupex -user=root -defaults-file=/etc/my.cnf -no-timestamp -stream=tar /data/mysql_backup | gzip | ssh root10.217.121.196 cat - /data/mysql_backup.tgz#本地服务器上的备份信息输出#远程服务器上的文件信息注意:以上数据备份时间可能会比较长,推荐放在深夜进行,第二天来恢复_=四、DB数据恢复=1、安装mysql-5.0.27环境http:/cdn.mysql.com/archives/mysql-5.0/mysql-5.0.27.tar.gz# /usr/sbin/groupadd mysql# /usr/sbin/useradd mysql -g mysql -s /sbin/nologin# mkdir -p /data/dbdata/data,binlog,relaylog,otherlog /var/run/mysql# chown -R mysql:mysql /data/dbdata /var/run/mysql# cd /usr/local/src# tar xvzf mysql-5.0.27.tar.gz# cd mysql-5.0.27# ./configure -prefix=/usr/local/mysql -datadir=/data/dbdata/data -enable-thread-safe-client -enable-assembler -enable-local-infile -with-charset=utf8 -with-collation=utf8_general_ci -with-extra-charsets=all -with-unix-socket-path=/var/run/mysql/mysql.sock -without-debug -with-embedded-server -with-big-tables# make -jobs=grep processor/proc/cpuinfo | wc -l# make install# cp ./support-files/mysql.server /etc/init.d/mysqld# chmod +x /etc/init.d/mysqld# chkconfig -add mysqld# chkconfig mysqld on#
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号