mysql基于replication实现最简单的M-S主从复制
2016-03-15 00:00
901 查看
摘要: mysql基于replication实现最简单的M-S主从复制,当然也可以在此基础上进行扩展
什么是replication
Replication可以实现数据从一台数据库服务器(master)复制到一到多台数据库服务器。
默认情况下,属于异步复制,因此无需维持长连接。
通过配置,你可以复制所有的库或者某几个库,甚至库中的某几个表
Replication原理
Master将数据库的改变写入二进制日志,salve同步这些数据库日志,并根据这些日志进行数据操作。
Replication用途
Fail over故障切换
Backup sever备份服务
High performance 高性能 写在master,读在salve,实现读写分离
配置replication
最简单的M-S
1、salve是通过MySQL连接登录到master上面来读取二进制日志,因此需要在master上给salve配置相应的权限。
Grant replication salve on *.* To ‘ ’@’’ identified by ‘’;
Flush privileges
2、在master上需要打开二进制日志,并标示sever_id
Sever_id用于表示唯一主机,数字取值范围1-2^32-1
#vi /etc/my.cnf
[mysqld]
Log_bin #打开二进制日志
Binlog_format=now #指定当前二进制格式以row记录,增加性能
Sync-binlog=1
Server-id=1 #设定sever_id
#service mysql restart
3、制作一个master的完整备份,并且执行prepare;
# innobackupex --user = dba password=beifen /var/lib/ (备份目录)生成原始备份
生成备份目录的日志
#innobackkupex --use-memory=500m --apply-log /var/lib/(备份目录)
4、将备份拷贝至slave,并放入数据文件目录
In master:
#scp -r /var/lib/backup/(二进制文件) salveip(salve的ip): /var/lib/backup
In slave:
#cd /var/lib/backup/(文件)
#mv * /var/lib/mysql
#chmod -R mysql.mysql /var/lib/mysql
5、在salve上配置sever_id,表示服务器
#vi /etc/my.cnf
[mysqld]
Sercer-id=2
#service mysql restart
6、查看并记录二进制日志中的positionID
In salve
#cd /var/lib/mysql
#cat xtrabackup_binlog_info
Host2_bin.000001 120
7、配置salve Replication.
In slave
Change master to
MASTER_HOST=’masterip’
MASTER_USER=’’
MASTER_PASSWORD=’’
MASTER_LOG_FILE=’Host2_bin.000001’,
MASTER_LOG_POS=120;
8、启动REPlication 并检查结果
In Slave
>Start slave
>Show slave status \G;
什么是replication
Replication可以实现数据从一台数据库服务器(master)复制到一到多台数据库服务器。
默认情况下,属于异步复制,因此无需维持长连接。
通过配置,你可以复制所有的库或者某几个库,甚至库中的某几个表
Replication原理
Master将数据库的改变写入二进制日志,salve同步这些数据库日志,并根据这些日志进行数据操作。
Replication用途
Fail over故障切换
Backup sever备份服务
High performance 高性能 写在master,读在salve,实现读写分离
配置replication
最简单的M-S
1、salve是通过MySQL连接登录到master上面来读取二进制日志,因此需要在master上给salve配置相应的权限。
Grant replication salve on *.* To ‘ ’@’’ identified by ‘’;
Flush privileges
2、在master上需要打开二进制日志,并标示sever_id
Sever_id用于表示唯一主机,数字取值范围1-2^32-1
#vi /etc/my.cnf
[mysqld]
Log_bin #打开二进制日志
Binlog_format=now #指定当前二进制格式以row记录,增加性能
Sync-binlog=1
Server-id=1 #设定sever_id
#service mysql restart
3、制作一个master的完整备份,并且执行prepare;
# innobackupex --user = dba password=beifen /var/lib/ (备份目录)生成原始备份
生成备份目录的日志
#innobackkupex --use-memory=500m --apply-log /var/lib/(备份目录)
4、将备份拷贝至slave,并放入数据文件目录
In master:
#scp -r /var/lib/backup/(二进制文件) salveip(salve的ip): /var/lib/backup
In slave:
#cd /var/lib/backup/(文件)
#mv * /var/lib/mysql
#chmod -R mysql.mysql /var/lib/mysql
5、在salve上配置sever_id,表示服务器
#vi /etc/my.cnf
[mysqld]
Sercer-id=2
#service mysql restart
6、查看并记录二进制日志中的positionID
In salve
#cd /var/lib/mysql
#cat xtrabackup_binlog_info
Host2_bin.000001 120
7、配置salve Replication.
In slave
Change master to
MASTER_HOST=’masterip’
MASTER_USER=’’
MASTER_PASSWORD=’’
MASTER_LOG_FILE=’Host2_bin.000001’,
MASTER_LOG_POS=120;
8、启动REPlication 并检查结果
In Slave
>Start slave
>Show slave status \G;
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复