Mysql 多主一从数据备份
Mysql 多主一从数据备份
概述
对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库中的数据一致。
这样做有如下几点好处:
- 可以做灾备,其中一个坏了可以切换到另一个。
- 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。 对于异地热备,尤其适合灾备。
MySQL 主从复制的方式
1 Master 数据库操作的任何数据库的时候,都会将操作记录写入到biglog日志文件当中
2 Slave 数据库通过网络获取到主数据库的日志文件,写入本地日志系统 ,然后一条条的将数据库事件在数据库中完成
3 Slave 重做中继日志中的事件,将 Master 上的改变反映到它自己的数据库中,所以两端的数据是完全一样的。

环境
操作系统:CentOS
MySQL版本:mysql-5.6.26 (主从两者数据库版本必须保持一致)
Master1 配置
1 开启binlog日志功能
vim /etc/my.cnf
server-id=6
log-bin=mysql-bin
2 重启mysql 登陆并授权
mysql -uroot -p123456
grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456';
ip地址为slave服务器的ip地址
3 查看日志状态
show master status;
Master2 配置
1 开启binlog日志功能
vim /etc/my.cnf
server-id=8
log-bin=mysql-bin
2 重启mysql 登陆并授权
mysql -uroot -p123456
grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456';
ip地址为slave服务器的ip地址
3 查看日志状态
show master status;
Slave 配置
1 修改配置文件 (注意 slave的默认数据库启动的端口必须关闭 service mysql stop)
vim /etc/my.cnf
[mysqld]
binlog-ignore-db=mysql
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=mysql-relay-bin
log_slave_updates=1
[mysqld_muliti]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
user=root
password=123456
[mysqld6]
port=3306
datadir=/home/mysql/data6
pid-file=/home/mysql/data6/mysql.pid
socket=/home/mysql/data6/mysql.sock
user=mysql
server-id=7
[mysqld8]
port=3307
datadir=/home/mysql/data8
pid-file=/home/mysql/data8/mysql.pid
socket=/home/mysql/data8/mysql.sock
user=mysql
server-id=7
2 初始化生成目录
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data6 &
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data8 &
3 修改目录权限
chown -R mysql /home/mysql/data6
chown -R mysql /home/mysql/data8
4 启动服务
mysqld_multi --defaults-file=/etc/my.cnf start 6
mysqld_multi --defaults-file=/etc/my.cnf start 8
5 登录测试(并分别做授权)
mysql -P 3306 -S /home/mysql/data6/mysql.sock
mysql> change master to master_host='10.211.55.6', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120;
mysql> start slave;
mysql -P 3307 -S /home/mysql/data8/mysql.sock
mysql> change master to master_host='10.211.55.8', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120;
mysql> start slave;
ok 就这样 完成了
Mysql 多主一从数据备份的更多相关文章
- MySQL 分区表原理及数据备份转移实战
MySQL 分区表原理及数据备份转移实战 1.分区表含义 分区表定义指根据可以设置为任意大小的规则,跨文件系统分配单个表的多个部分.实际上,表的不同部分在不同的位置被存储为单独的表.用户所选择的.实现 ...
- mysql用户授权及数据备份恢复
用户授权与权限撤销 修改数据库管理员从本机登陆的密码测试: mysqladmin -hlocalhost -uroot -p password "新密码" Enter passwo ...
- MySQL(四)数据备份与还原
数据备份与还原: 备份:将当前已有的数据或者记录保留 还原:将已经保留的数据恢复到对应的表中 为什么要做备份还原: 1.防止数据丢失:被盗.误操作 2.保护数据的记录 数据备份还原的方式很多:数据表备 ...
- 两种适用于中小量数据的mysql数据备份
近来项目的业务量开始大了,感觉如果数据不周期性地备份一下,很可能会出现问题,虽然我每天都有阿里云的自动快照,上网找了一下方法,找到两种相对简单而又适合中小项目或者中小公司的数据备份策略,以下都是数据库 ...
- MySQL 数据备份与还原
一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...
- 转 MySQL 数据备份与还原
MySQL 数据备份与还原 原贴:http://www.cnblogs.com/kissdodog/p/4174421.html 一.数据备份 1.使用mysqldump命令备份 mysqldum ...
- mysql innobackupex xtrabackup 大数据量 备份 还原
大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 一.Xtrabackup介绍 1, ...
- MySQL基础之第16章 数据备份与还原
16.1.数据备份 16.1.1.使用 mysqldump 命令备份 mysqldump [OPTIONS] database [tables]mysqldump [OPTIONS] --databa ...
- mysql innobackupex xtrabackup 大数据量 备份 还原(转)
原文:http://blog.51yip.com/mysql/1650.html 作者:海底苍鹰 大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推 ...
随机推荐
- poj2082单调栈
本来实在做后缀数组的题目的,不巧,碰到了pku3415这题,需要用到单调栈来维护,但是之前又没有学习过单调栈这方面的知识,于是水了几题....... 题意:给你一些连续的小矩形,高宽不定,求最大的矩形 ...
- CentOS minimal 版安装图形界面的步骤分享,中文语言包
1.连接网络: CentOS minimal.iso安装好后,进入终端,默认是不开网络的, 首先启用网卡, 自动获取ip. ifconfig eth0 up dhclient eth0 这时候再 if ...
- spark读取本地文件
/** * Read a text file from HDFS, a local file system (available on all nodes), or any * Hadoop-supp ...
- HTTP Status 404–/webDemo/hello
现在用一排很小的字写出来,我真是个大傻逼
- Linux crontab 实现每秒执行
Linux crontab 实现每秒执行 linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执 ...
- 数学 - SGU 118. Digital Root
Digital Root Problem's Link Mean: 定义f(n)为n各位数字之和,如果n是各位数,则n个数根是f(n),否则为f(n)的数根. 现在给出n个Ai,求出A1*A2*…*A ...
- 使用javascript操作cookies的实例
<script> //写cookies函数 作者:翟振凯 function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值 { var Days ...
- VMware ESXi 启动时提示引导错误:不是VMware引导槽。找不到管理程序(bank6 not a vmware boot bank no hypervisor found)
VMware ESXi 启动时提示引导错误: bank6 not a vmware boot bank no hypervisor found 大概中文意思是:不是VMware引导槽.找不到管理程序. ...
- Python之并行
http://www.open-open.com/news/view/1c0179b/
- php -- 魔术方法 之 判断属性是否存在或为空:__isset()
属性重载:当访问一个不存在或者权限不够的属性的时候,能够触发一系列的魔术方法,就叫做属性重载 __isset($name):当使用 isset()函数或者empty()函数 判断属性是否存在或者是否为 ...