mysql基于replication实现最简单的M-S主从复制

什么是replicationmysql

Replication能够实现数据从一台数据库服务器(master)复制到一到多台数据库服务器。sql

默认状况下,属于异步复制,所以无需维持长链接。数据库

经过配置,你能够复制全部的库或者某几个库,甚至库中的某几个表服务器

Replication原理app

Master将数据库的改变写入二进制日志,salve同步这些数据库日志,并根据这些日志进行数据操做。异步

Replication用途ide

Fail over故障切换性能

Backup sever备份服务rest

High performance 高性能 写在master,读在salve,实现读写分离日志

配置replication

最简单的M-S

一、salve是经过MySQL链接登陆到master上面来读取二进制日志,所以须要在master上给salve配置相应的权限。

Grant  replication salve on *.* To ‘ ’@’’  identified by ‘’;

Flush privileges

二、在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

三、制做一个master的完整备份,而且执行prepare;

# innobackupex  --user = dba password=beifen /var/lib/ (备份目录)生成原始备份

生成备份目录的日志

#innobackkupex --use-memory=500m --apply-log /var/lib/(备份目录)

四、将备份拷贝至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

 

五、在salve上配置sever_id,表示服务器

#vi /etc/my.cnf

[mysqld]

Sercer-id=2

#service mysql restart

六、查看并记录二进制日志中的positionID

In salve

#cd /var/lib/mysql

#cat xtrabackup_binlog_info

Host2_bin.000001 120

七、配置salve Replication.

In slave

Change master to 

MASTER_HOST=’masterip’

MASTER_USER=’’

MASTER_PASSWORD=’’

MASTER_LOG_FILE=’Host2_bin.000001’,

MASTER_LOG_POS=120;

八、启动REPlication 并检查结果

In Slave

>Start slave

>Show slave status \G;

相关文章
相关标签/搜索