seo程序员:关于服务器MYsql最新文字
seo优化 2018-10-05 10:32www.1681989.comseo排名
周六的时候去国内一个大型的交易网站面试,面试过程十分顺利,不过由于工作的时间和上班的2个多小时的路程让我可能不得不放弃这份工作。
在面试的过程中,对方的面试官提出了一个关于mysql在线扩容的问题。由于该网站的业务都是强事务的,所以对于锁的要求非常敏感,当时抛出整个问题的时候考虑到了nodb的hotbackup,由于不是免费的,也就没有说,不过,昨天回来后发现了一个可以替代整个东西的东西,也符合当时的要求,也就算有增加了一个经验吧。
一下是关于xtrabackup的相关内容。
1、业务目标
在读写分离的状况下在线增加一个备机,要求业务不中断并且没有不良好的用户体验
2、基本架构
数据库做读写分离,使用一主多从方式,数据库版本为5.1
注在Mysql5.6中已经支持基于GTID的主从复制,可以不是用pos号进行从库的复制,只需要还原掉最新的备份就可以了。
3、使用的软件版本是1.6,不过现在最新的已经是2.0了,比较大,支持的很好
4、安装
wget http://.percona./downloads/XtraBackup/LATEST/source/percona-xtrabackup-2.1.8.tar.gz
解压和安装都不用多说,解压后把里面的文件拷贝到/usr/local/b里面去
使用的办法
下面的内容是从别的地方拷贝的,因为懒得打字了
1.主DB,线上数据正常写入的我实施备份
mysql> sert to a select from a;
[root@client101 backup]# nobackupex --user=root --password=kongzhong --defaults-file=/etc/my.f --port=3306 --database=log /tmp/backup/ >/tmp/backup/noback.log 2>&1
# 备份完成后,可以查看备份文件目录下, xtrabackup_blog_fo 此文件会记录主上的日志和position号
[root@client101 2014-02-22_07-43-36]# cat xtrabackup_blog_fo
2.将备份文件压缩,并传送到从DB2(192.168.1.103)上,用于在上面进行还原
[root@client101 backup]# tar zcvf log.tar 2014-02-22_07-43-36
[root@client101 backup]# scp log.tar 192.168.1.103:/tmp/
3.从DB2上,解压刚才的备份,并用于恢复
[root@client103 tmp]# tar -xf log.tar
# 应用日志,保证数据一致
[root@client103 tmp]# nobackupex --apply-log /tmp/2014-02-22_07-43-36/
# 停mysql
[root@client103 mysql]# /etc/it.d/mysqld s
# mysql数据目录下的所有文件移到/tmp/mysqlbackup/下,不然,恢复有问题
# [这里建议只复制数据文件,不建议复制(日志,索引,nodb共享表空间,nodb日志文件,慢日志等)]
[root@client103 mysql]# mv /var/lib/mysql/ /tmp/mysqlback
# 恢复数据
[root@client103 mysql]# nobackupex --copy-back /tmp/2014-02-22_07-43-36/
# 将原数据库的内容复制mysql数据目录(这里就是我认为这个软件不好的地方,大家也可以给点建议)
[root@client103 mysqlback]# mv /tmp/mysqlbac k/ /var/lib/mysql/
# 将数据目录的权限修改为mysql权限
[root@client103 mysql]# chown mysql. /var/lib/mysql/
# 启动数据库
[root@client103 mysql]# /etc/it.d/mysqld start
# 验证数据的一致性5418272(主上的行)
mysql> select count() from a;
+----------+
| count() |
+----------+
| 5418272 |
+----------+
4.将从DB2的主机指向主DB1
# 刚才回复后,会有个文件xtrabackup_blog_pos_nodb --> 此文件记录了备份时日志文件和pos号
[root@client103 mysql]# cat xtrabackup_blog_pos_nodb
/var/lib/mysql/mysql-101-b.000008 2423
# 建立主从关系
mysql> change master to master_host='192.168.1.101',
-> master_user='slave',
-> master_password='slave',
-> master_log_file='mysql-101-b.000008',
-> master_log_pos=2423;
# 开启同步
mysql> start slave;
# 查看同步状态
mysql> show slave status\G;
5.此时如果都为yes,则主从则建立完毕!大家可自行测试
在面试的过程中,对方的面试官提出了一个关于mysql在线扩容的问题。由于该网站的业务都是强事务的,所以对于锁的要求非常敏感,当时抛出整个问题的时候考虑到了nodb的hotbackup,由于不是免费的,也就没有说,不过,昨天回来后发现了一个可以替代整个东西的东西,也符合当时的要求,也就算有增加了一个经验吧。
一下是关于xtrabackup的相关内容。
1、业务目标
在读写分离的状况下在线增加一个备机,要求业务不中断并且没有不良好的用户体验
2、基本架构
数据库做读写分离,使用一主多从方式,数据库版本为5.1
注在Mysql5.6中已经支持基于GTID的主从复制,可以不是用pos号进行从库的复制,只需要还原掉最新的备份就可以了。
3、使用的软件版本是1.6,不过现在最新的已经是2.0了,比较大,支持的很好
4、安装
wget http://.percona./downloads/XtraBackup/LATEST/source/percona-xtrabackup-2.1.8.tar.gz
解压和安装都不用多说,解压后把里面的文件拷贝到/usr/local/b里面去
使用的办法
下面的内容是从别的地方拷贝的,因为懒得打字了
1.主DB,线上数据正常写入的我实施备份
mysql> sert to a select from a;
[root@client101 backup]# nobackupex --user=root --password=kongzhong --defaults-file=/etc/my.f --port=3306 --database=log /tmp/backup/ >/tmp/backup/noback.log 2>&1
# 备份完成后,可以查看备份文件目录下, xtrabackup_blog_fo 此文件会记录主上的日志和position号
[root@client101 2014-02-22_07-43-36]# cat xtrabackup_blog_fo
2.将备份文件压缩,并传送到从DB2(192.168.1.103)上,用于在上面进行还原
[root@client101 backup]# tar zcvf log.tar 2014-02-22_07-43-36
[root@client101 backup]# scp log.tar 192.168.1.103:/tmp/
3.从DB2上,解压刚才的备份,并用于恢复
[root@client103 tmp]# tar -xf log.tar
# 应用日志,保证数据一致
[root@client103 tmp]# nobackupex --apply-log /tmp/2014-02-22_07-43-36/
# 停mysql
[root@client103 mysql]# /etc/it.d/mysqld s
# mysql数据目录下的所有文件移到/tmp/mysqlbackup/下,不然,恢复有问题
# [这里建议只复制数据文件,不建议复制(日志,索引,nodb共享表空间,nodb日志文件,慢日志等)]
[root@client103 mysql]# mv /var/lib/mysql/ /tmp/mysqlback
# 恢复数据
[root@client103 mysql]# nobackupex --copy-back /tmp/2014-02-22_07-43-36/
# 将原数据库的内容复制mysql数据目录(这里就是我认为这个软件不好的地方,大家也可以给点建议)
[root@client103 mysqlback]# mv /tmp/mysqlbac k/ /var/lib/mysql/
# 将数据目录的权限修改为mysql权限
[root@client103 mysql]# chown mysql. /var/lib/mysql/
# 启动数据库
[root@client103 mysql]# /etc/it.d/mysqld start
# 验证数据的一致性5418272(主上的行)
mysql> select count() from a;
+----------+
| count() |
+----------+
| 5418272 |
+----------+
4.将从DB2的主机指向主DB1
# 刚才回复后,会有个文件xtrabackup_blog_pos_nodb --> 此文件记录了备份时日志文件和pos号
[root@client103 mysql]# cat xtrabackup_blog_pos_nodb
/var/lib/mysql/mysql-101-b.000008 2423
# 建立主从关系
mysql> change master to master_host='192.168.1.101',
-> master_user='slave',
-> master_password='slave',
-> master_log_file='mysql-101-b.000008',
-> master_log_pos=2423;
# 开启同步
mysql> start slave;
# 查看同步状态
mysql> show slave status\G;
5.此时如果都为yes,则主从则建立完毕!大家可自行测试
上一篇:百度推广和SEO优化技巧
下一篇:html代码seo上升到网站运营怎么做
网站seo
- 洛扎企业官网搭建公司:提升品牌形象与网络实
- 北京百度快照排名怎么把网站排名在百度首页
- 湖南seo网站排名关键词优化如何提升销售额和销
- 打造企业形象的利器:金塔企业官网搭建公司
- 提升平舆百度快照排名的全面指南
- 浙江企业网站优化怎样做网站排名
- 云南整站优化:提升网站价值的关键
- 西藏新手做seo怎么做发展潜力如何
- 提升扬州网站排名优化的有效策略
- 中山建站公司有哪些:全面解析与推荐
- 长寿百度关键词SEO:提升你的网站排名技巧
- 寻找优质服务的秘诀:库车会SEO的网站建设公司
- 兴义企业网站优化:提升网站可见性的策略与方
- 威海优化关键词排名推广:提升您网站流量的有
- 松原建站公司:助力企业数字化转型的最佳选择
- 罗甸企业官网搭建公司:助力企业数字化转型