设为首页 收藏本站
查看: 954|回复: 0

[经验分享] mysql数据库迁移、多端口运行、innobackupex备份

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-7 13:49:24 | 显示全部楼层 |阅读模式
1、需求:由11服务器的mysql迁移至12服务器

对12服务器:
nc -l 12345|tar zxvf
对11服务器:
ldd /usr/local/mysql/bin/mysqld|xargs tar zcvf  so.tar.gz  //用ldd查看依赖库文件并且打包
scp so.tar.gz 192.168.1.12:/root//远程传送库文件
tar zcvf - mysql |nc 192.168.1.12 12345
对12服务器://上面我用到的是nc命令来传输,方法随意,能传就行
iptables -F
setenforce 0//注意关闭安全机制,才能保证文件传输
tar xf so.tar.gz//将lib64放置,这里我就不详细写了
mv mysql/ /usr/local///传输好了移动到usr目录
cd /usr/local/mysql/support-files/
cp my-medium.cnf /etc/my.cnf//复制中等配置文件
cp mysql.server /etc/init.d/mysqld//复制启动文件
ln -s  /usr/local/mysql/bin/* /usr/local/bin//复制mysql命令,当然用PAHT添加也行
cd /usr/local/mysql/scripts/
useradd -M -s /sbin/nologin mysql//创建mysql程序用户,才能数据初始化
./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql//数据初始化
service mysqld start//启动mysqld服务
ps aux|grep mysql
mysql -uroot -p//登录,用户名密码和11服务器一样,数据也一样




2、需求:一台mysql服务器启动多个端口的mysql

[iyunv@localhost ~]# service mysqld stop
[iyunv@localhost ~]# for i in {3306..3308};do cp /etc/my.cnf /etc/my${i}.cnf;done
//复制配置文件,名字为/etc/my3307.cnf
[iyunv@localhost ~]# mkdir -p  /www/mysqldata{3306..3308}
//制作数据目录
[iyunv@localhost /]# for i in {3306..3308};do /usr/local/mysql/scripts/mysql_install_db --datadir=/www/mysqldata$i --user=mysql --basedir=/usr/local/mysql;done
//对制作的数据目录初始化

[iyunv@localhost local]# vi /etc/my3307.cnf   //改两项:这里以3307为例
[mysqld]
port=3307//这项上面已经改了
socket=/tmp/mysql_3307.sock     //指定socket目录
datadir=/www/mysqldata3307/    //指定数据目录,如果不指定,则下面启动3307端口时候需要加--datadir=/www/mysqldata3307  --user=mysql
[client]
port        = 3307
socket      = /tmp/mysql_3307.sock
启动3307端口:(其他的类似)
mysqld_safe --defaults-extra-file=/etc/my3307.cnf &
进入mysql:
[iyunv@localhost local]# mysql -uroot -S /tmp/mysql_3307.sock (其实不用-root也可以登录)

关闭对应的mysqld服务:(方法很多,也可以用kill -9)
[iyunv@localhost local]# mysqladmin -uroot -S /tmp/mysql_3307.sock shutdown


3307的数据可以直接复制到3306:
[iyunv@localhost test]# cp aa.frm ../../mysqldata3306/test/   
//目前在mysqldata3307/test  下







3、需求:用innobackupex工具对数据进行备份

开启的是多端口模式,针对3306端口,配置文件是/etc/my3306.cnf   数据文件是/www/mysqldata3306
[iyunv@localhost ~]#yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL//安装依赖包
[iyunv@localhost ~]#rpm -ivh percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm  --nodeps
[iyunv@localhost tmp]# mkdir /home/mysqlbak/fullfile/aaa   //制作备份文件存放路径
[iyunv@localhost tmp]# innobackupex --user=root --slave-info  --socket=/tmp/mysql3306.sock --defaults-file=/etc/my3306.cnf /home/mysqlbak/fullfile/aaa > /dev/null//开始备份

备份前先关闭数据库,并且删除数据文件和日志文件(重命名就可以)
mysqladmin -uroot -S /tmp/mysql33036.sock shutdown   //关闭数据库
[iyunv@localhost www]# mv mysqldata3306 mysqldata3306.bak//删除原数据文件
[iyunv@localhost www]# mkdir mysqldata3306//制作空目录数据文件
[iyunv@localhost tmp]#  innobackupex --defaults-file=/etc/my3306.cnf --user=root --apply-log --rsync --use-memory /home/mysqlbak/fullfile/aaa/2017-03-06_13-08-44//应用日志,--use-memory选项可以加快恢复速度
[iyunv@localhost tmp]# innobackupex --defaults-file=/etc/my3306.cnf  --user=root --copy-back /home/mysqlbak/fullfile/aaa/2017-03-06_13-08-44 //拷贝到原数据文件下
[iyunv@localhost www]# chown -R mysql:mysql mysqldata3306//给权限,让mysql能够读取

从什么可以看出,恢复分为两个步骤,第1步是apply-log,为了加快速度,一般建议设置--use-memory,这个步骤完成之后,目录/backup/mysql/data/2017-03-06_13-08-44下的备份文件已经准备就绪。
第2步是copy-back,即把备份文件拷贝至原数据目录下。
恢复完成之后,一定要记得检查数据目录的所有者和权限是否正确。

常用选项:
--parallel=4 --throttle=400                      并行个数,根据主机配置选择合适的,默认是1个,多个可以加快备份速度。
--stream=tar                                       压缩类型,这里选择tar格式,可以加,可不加。加上文件就小一点,在备份的时候就已经打包好了



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-350421-1-1.html 上篇帖子: mysql存储引擎 下篇帖子: 简述mysql半同步复制—semisync 数据库 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表