MYSQL正式环境主从复制(不锁表,不停服务)
参考URL:
http://rfyiamcool.blog.51cto.com/1030776/1016636/
原因源于其实以前环境是有MYSQL主从复制的,且最开始主从复制之间是OK的。
但由于日志长得太多,同步来不急,磁盘空间满了之后,失了很多记录。所以必须重新作主从,但主已不能被影响了。
~~~~~~~~~~~~~~~~~~~~~~~~
那就用XTRABACKUP吧,,阿里RDS也是用这个工作来作一些备份恢复的。
基于上,理想了思路,多参考几个网上文章就可以开始啦。。
但数据库太多,备份和COPY到从机器上都花了不少时间,幸运的是到晚上两点左右,总算搞定。
那下一步,就是优化MYSQL主性能,以及MYSQL从的滞后问题啦。
~~~~~~~~~~~~~~~~
http://blog.csdn.net/hw_libo/article/details/38316721
http://segmentfault.com/a/1190000002575399
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最好,要先RESET MASTER一下,再开始弄哈。。。这样,就样空间对接刚刚好。
。。。。。。。。。。。。。。。。。。。。。。。
安装xtrabackup:
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
这个是64位的。
32位的地址是:
http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm
如果装了这个套装之后却找不到innobackupex命令。。。就。。。:
http://www.percona.com/software/percona-xtrabackup/downloads/
mkdir /data/backup -p
确保在my.cnf中存在[mysqld]
并且在[mysqld]后面存在 datadir = ....
[root@localhost ~]# innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf /data/backup
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Inc 2009-2012. All Rights Reserved.
。。。。
innobackupex: Backup created in directory '/data/backup/2012-04-19_10-46-32'
innobackupex: MySQL binlog position: filename 'log_bin.000027', position 2973624
120419 10:46:53 innobackupex: completed OK!
最后输出 completed OK! 表示备份成功了。
可以看到在备份myisam类型表的时候,还是会锁表~~ innodb就不会锁表。哼。
备份好的文件保存在 /data/backup目录中,比如:
/data/backup/2012-04-19_10-46-32/
[root@localhost ~]# ls /data/backup/2012-04-19_10-46-32/
backup-my.cnf ibdata1 mysql shipincon test xtrabackup_binary xtrabackup_binlog_info xtrabackup_checkpoints xtrabackup_logfile
备份日志:
刚刚备份好的数据文件,并不是直接可用的。大概是处于一种数据库挂掉的状态~~~,
细节不讲了,要用日志对其进行恢复:
[root@localhost ~]# innobackupex --apply-log /data/backup/2012-04-19_10-46-32/
这个过程与数据库挂掉之后重启mysqld时的自动修复过程差不多。
把数据复制到从服务器:
$ scp -r /data/backup/2012-04-19_10-46-32/ root@newslave:/data/
关闭从服务器并切换数据:
$ /etc/init.d/mysql stop
$ cd /data
$ mv mysql mysql_old
$ mv 2012-04-19_10-46-32 mysql
修改my.cnf, 给它一个独一无二的server_id。
一个比较好的办法是用服务器的IP地址,把其中的.去掉即可。
然后启动mysqld:
$ /etc/init.d/mysql start
最后change master。
与mysqldump备份的步骤比起来,这次我们没有flush tables with read lock,
也没有show master status来获取日志文件名和座标。
因为xtrabackup完成备份之后,自动保存了这些信息。
$ cat /data/mysql/xtrabackup_binlog_info
log_bin.000027 2973624
mysql> CHANGE master to-> master_user=’rep’,-> master_password=’rep’,
-> master_host=’10.20.30.40′,
-> master_log_file=’log_bin.000027′,
-> master_log_pos= 2973624;
然后 start slave 即可。
推荐利用xtrabackup实现从服务器的部署~ 速度真的很快~
MYSQL正式环境主从复制(不锁表,不停服务)的更多相关文章
- MySQL中select * for update锁表的范围
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...
- MySQL中select * for update锁表的问题
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...
- mysql查询更新时的锁表机制分析
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(t ...
- mysql中kill掉所有锁表的进程
--mysql中kill掉所有锁表的进程 --------------------------------2014/05/20 在数据库的管理中,我们经常会碰到锁表的问题,看一下进程列表. mysql ...
- mysql查询更新时的锁表机制分析(只介绍了MYISAM)
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(t ...
- MySQL Online DDL导致全局锁表案例分析
MySQL Online DDL导致全局锁表案例分析 我这边遇到了什么问题? 线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃 ...
- 转 MySQL中的行级锁,表级锁,页级锁
对mysql乐观锁.悲观锁.共享锁.排它锁.行锁.表锁概念的理解 转载. https://blog.csdn.net/puhaiyang/article/details/72284702 实验环境 ...
- [数据库事务与锁]详解五: MySQL中的行级锁,表级锁,页级锁
注明: 本文转载自http://www.hollischuang.com/archives/914 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的 ...
- MySQL中select * for update锁表的问题(转)
由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料 ...
随机推荐
- Mvc中DropDownList 和DropDownListFor的常用方法
Mvc中DropDownList 和DropDownListFor的常用方法 一.非强类型: Controller:ViewData["AreId"] = from a in rp ...
- 【H5开发基础】移动端1像素边框问题的解决方案
自从乔帮主提出retina屏以来.可练就了不少前端兄弟的像素眼,有强迫症的伙伴们日子可就煎熬了.为了画出真正的1像素边框,前端猿们也是受尽各浏览器的虐待了. 关于什么是移动端1像素边框问题,先上两张图 ...
- Android Spinner列表选择框
Spinner Spinner是一个下拉列表,通常用于选择一系列可选择的列表项,它可以使用适配器,也可以直接设置数组源. 1.直接设置数组源 在res/values/strings.xml中设置数组源 ...
- python使用正則表達式
python中使用正則表達式 1. 匹配字符 正則表達式中的元字符有 . ^ $ * + ? { } [ ] \ | ( ) 匹配字符用的模式有 \d 匹配随意数字 \D 匹配随意非 ...
- 编译lua版本问题
Compile++ thumb : game_shared <= main.cppjni/hellocpp/main.cpp: In function 'void Java_org_cocos ...
- 配置NTP时间服务器
一.安装ntp软件 1.检查是否安装了ntp相关包. rpm -qa | grep ntp 2.安装ntp软件. yum -y install ntp 二.参数讲解 ignore :关闭所有的 NT ...
- SVN Git 设置忽略目录 大全
eclipse中SVN设置 用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在, ...
- MyKTV项目,走起!
MyKTV项目,走起! 第一部分:这个项目对于新手来说有一点难度,但是当你理清类之间的关系和怎样去实现功能后就会感觉轻松很多. 话不多说,先上类图: 接着是数据库表间关系: 本项目要实现以下功能: 明 ...
- nginx添加缓存
nginx的具体逻辑是什么样的? 分布式session spring session redis过滤器 有4种方案: 一直访问一台 //如果这台机器垮掉了,怎么办? session同步 序列化传输 / ...
- IIS7.5 提示未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序
在WIN7 X64平台IIS7.5,使用Asp.net连接access数据库时候,提示:未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序. 说明: 执行当前 Web 请求 ...