【MySQL 系列】MYSQL主从热备份
来源:互联网 发布:0基础学编程 知乎 编辑:程序博客网 时间:2024/04/30 01:57
一、在Master不离线的前台下,去作复制的所有操作
回忆基本步骤:
1、前提:Master打开了二进制日志文件,并且设定server-id=1
2、在Master建立从服务连接所需要的帐号,权限: replication slave
3、多种方法实现Master数据的备份,该些数据都是在从服务器上恢复。备份之前记录主服务器上正在使用二进制日志文件的名字和POS
方法:
使用meb企业备份工具,自动实现记录二进制相关信息
此种备份方法需要安装一个软件 meb ,软件默认安装在 /opt 目录下,安装过程略
备份前在 my.cnf 中增加如下参数 (show variables like 'innodb%' )
innodb_data_home_dir = /data/mysql #指定 datadir路径
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data/mysql #指定日志路径,一般同datadir路径相同
innodb_log_files_in_group = 2
innodb_log_file_size = 5242880
log-bin = mysql
方法2:
锁定所有表,记录二进制日志文件的信息。通过系统命令备份数据到从服务器。
方法3:
mysqldump做备份,通过相关参数可以上工具在热备的同时记录二进制日志文件的信息
--master-data --lock-all-tables --single-transaction
建立帐号
mysql> grant replication slave on *.* to slave@'%' identified by '123';
mysql> flush privileges;
二、使用meb去备份Master的数据
# mkdir /backup
# cd /opt/mysql/meb-3.5/
# ./bin/innobackup --user=root --password=123 --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup --socket=/data/mysqld.sock /etc/my.cnf /backup --slave-info
.....
ibbackup: A copied database page was modified at 44233.
ibbackup: Scanned log up to lsn 46136. 《---
ibbackup: Was able to parse the log up to lsn 46136.
innobackup: Backup created in directory '/backup/2011-05-19_15-21-21'
innobackup: MySQL binlog position: filename 'mysqld-binlog.000003', position 1662 《----
110519 15:21:55 innobackup: innobackup completed OK!
三、搭建从服务器Slave1
1、安装mysql服务器端,并且设定好参数,运行起来
[mysqld]
datadir=/data
user=mysql
socket=/data/mysqld.sock
innodb_data_home_dir=/data
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/data
innodb_log_files_in_group=2
innodb_log_file_size=5242880
innodb_flush_log_at_trx_commit=1
log-bin=/data/mysqld-binlog
sync_binlog=1
server-id=2 ##### 必须比自己的Master要大
pid-file=/data/mysqld.pid
log-error=/data/mysqld.err
2、获得Master的备份数据,然后恢复
1)在Master恢复数据(meb 是在备份上直接恢复,不会影响正在运行任何数据)
Master # ./bin/innobackup --apply-log --user=root --password=123 --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup --socket=/data/mysqld.sock /etc/my.cnf /backup/2011-05-19_15-21-21/
2)把恢复好的数据拷贝到从服务器的数据目录
注意:强烈建议数据目录路径保持一致
Master # tar cvf master-data.tar ./2011-05-19_15-21-21/
Master # scp master-data.tar 10.1.1.19:~/
Slave1 # tar xvf master-data.tar
Slave1 # mv 2011-05-19_15-21-21/* /data
Slave1 # chown -R mysql:mysql /data
3、启动,设定Master的相关信息,用于连接Master的
# service mysql start
mysql> change master to
-> master_host='10.1.1.18',
-> master_user='slave',
-> master_password='123',
-> master_log_file='mysqld-binlog.000003',
-> master_log_pos=1662 ;
4、启用slave的相关线程
mysql> start slave;
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
回忆基本步骤:
1、前提:Master打开了二进制日志文件,并且设定server-id=1
2、在Master建立从服务连接所需要的帐号,权限: replication slave
3、多种方法实现Master数据的备份,该些数据都是在从服务器上恢复。备份之前记录主服务器上正在使用二进制日志文件的名字和POS
方法:
使用meb企业备份工具,自动实现记录二进制相关信息
此种备份方法需要安装一个软件 meb ,软件默认安装在 /opt 目录下,安装过程略
备份前在 my.cnf 中增加如下参数 (show variables like 'innodb%' )
innodb_data_home_dir = /data/mysql #指定 datadir路径
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data/mysql #指定日志路径,一般同datadir路径相同
innodb_log_files_in_group = 2
innodb_log_file_size = 5242880
log-bin = mysql
方法2:
锁定所有表,记录二进制日志文件的信息。通过系统命令备份数据到从服务器。
方法3:
mysqldump做备份,通过相关参数可以上工具在热备的同时记录二进制日志文件的信息
--master-data --lock-all-tables --single-transaction
建立帐号
mysql> grant replication slave on *.* to slave@'%' identified by '123';
mysql> flush privileges;
二、使用meb去备份Master的数据
# mkdir /backup
# cd /opt/mysql/meb-3.5/
# ./bin/innobackup --user=root --password=123 --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup --socket=/data/mysqld.sock /etc/my.cnf /backup --slave-info
.....
ibbackup: A copied database page was modified at 44233.
ibbackup: Scanned log up to lsn 46136. 《---
ibbackup: Was able to parse the log up to lsn 46136.
innobackup: Backup created in directory '/backup/2011-05-19_15-21-21'
innobackup: MySQL binlog position: filename 'mysqld-binlog.000003', position 1662 《----
110519 15:21:55 innobackup: innobackup completed OK!
三、搭建从服务器Slave1
1、安装mysql服务器端,并且设定好参数,运行起来
[mysqld]
datadir=/data
user=mysql
socket=/data/mysqld.sock
innodb_data_home_dir=/data
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/data
innodb_log_files_in_group=2
innodb_log_file_size=5242880
innodb_flush_log_at_trx_commit=1
log-bin=/data/mysqld-binlog
sync_binlog=1
server-id=2 ##### 必须比自己的Master要大
log-slave-updates #####
pid-file=/data/mysqld.pid
log-error=/data/mysqld.err
2、获得Master的备份数据,然后恢复
1)在Master恢复数据(meb 是在备份上直接恢复,不会影响正在运行任何数据)
Master # ./bin/innobackup --apply-log --user=root --password=123 --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup --socket=/data/mysqld.sock /etc/my.cnf /backup/2011-05-19_15-21-21/
2)把恢复好的数据拷贝到从服务器的数据目录
注意:强烈建议数据目录路径保持一致
Master # tar cvf master-data.tar ./2011-05-19_15-21-21/
Master # scp master-data.tar 10.1.1.19:~/
Slave1 # tar xvf master-data.tar
Slave1 # mv 2011-05-19_15-21-21/* /data
Slave1 # chown -R mysql:mysql /data
3、启动,设定Master的相关信息,用于连接Master的
# service mysql start
mysql> change master to
-> master_host='10.1.1.18',
-> master_user='slave',
-> master_password='123',
-> master_log_file='mysqld-binlog.000003',
-> master_log_pos=1662 ;
4、启用slave的相关线程
mysql> start slave;
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- 【MySQL 系列】MYSQL主从热备份
- mysql主从热备份
- mysql主从热备份
- MySQL master 热备份 开启 主从复制
- mysql主从备份--双机热备
- 实现MySQL数据库主从热备份
- MySql 主从热备份工作原理
- mysql主从热备
- linux系统下实现MySQL主从热备份
- Linux:mysql数据库的热备份,主从数据库搭建
- 学一点 mysql 双机异地热备份—-mysql主从,主主备份原理及实践
- mysql 双机异地热备份,快速理解mysql主从,主主备份原理及实践
- 学一点 mysql 双机异地热备份—-mysql主从,主主备份原理及实践
- 学一点 mysql 双机异地热备份—-mysql主从,主主备份原理及实践
- mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
- mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
- mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
- mysql 双机异地热备份—-mysql主从,主主备份原理及实践
- 2013应届生求助
- (W3C学习笔记)WWW 初级教程
- IOS中8位图的颜色处理
- Python爬取图片
- ItemizedOverlay Demo Example OverlayItem Overlay
- 【MySQL 系列】MYSQL主从热备份
- java高并发解决方案
- git 两个给力的应用场景
- 看源码学C++运算符重载
- (W3C学习笔记)HTML 初级教程
- C#之基础篇
- PhysX的导入导出:从Max插件到左手系引擎
- C ++ 函数后面加throw()的作用
- (W3C学习笔记)CSS 初级教程