mysql如何主从同步?
一、使用完全备份文件恢复单个表----innobackupex--apply-log --export导出表信息 .exp.cfg
discardtablespace删除表空间 .ibd
importtablespace 导入表空间
/gamedb
drop tablet1;
1 按照源表结构创建表t1createtablet1(id int);
2 从备份文件里导出表信息
#innobackup--userroot--password abc123--databases="库名列表"
--apply-log --export/gamedbbak
3 删除表空间
mysql>> 4 把导出的表信息 拷贝的对应的数据库目录下
#cd/gamedbbak/gamedb
#cpt1.{exp,ibd,cfg}/var/lib/mysql/gamedb/
#ls /var/lib/mysql/gamedb/t1.
#chownmysql:myql /var/lib/mysql/gamedb/t1.
5 导入表空间 > 6select fromt1;
+++++++++++++++++++++++++++++++++++++++
二、主从同步
2.1 什么是主从同步: 让其他的数据库服务器自动同步正在提供服务的数据库服务器上 的数据。
2.2 配置mysql主从同步结构
主数据库服务器的配置:
1 添加授权用户 grantreplication slaveon.*to slaveuser@"192.168.4.12" > 2 启用binlog日志
3 重启数据库服务
4 查看日志信息 mysql> showmaster status;
从数据库服务器的配置:
1 验证主库提供的授权用户
2 修改配置文件指定server_id并重启数据库服务
3 使用本机的数据库管理员登录,指定主库信息。
mysql> showslave status;
mysql> change mastertomaster_host="192.168.4.11",
master_user="slaveuser",
master_password="123456",
master_log_file="master11.000001",
master_log_pos=154;
mysql>startslave;
mysql>showslave status\G;
slave_IO_Running: Yes
slave_SQL_Running: Yes
测试主从同步配置:
1 在主库服务器上添加访问数据的用户
2 在客户端使用授权用户连接主库,产生的数据在从库本机也能够查看的到。
+++++++++++++++++++++++++++++++++
从数据库目录下多出文件
master.info
主机名-relay-bin.000000中继日志文件
主机名-relay-bin.index
relay-log.info
++++++++++++++++++++++++++
主从同步工作原理
mysql> stopslave ;
mysql> changemasterto选项=“值”;
mysql> start slave;
++++++++++++++++++++++++++++++++++++
主从同步结构模式
一主一从
一主多从
主从从
主主结构(互为主从)
+++++++++++++++++++++++++++++++++++
主从同步常用配置参数:
#vim /etc/my.cnf
选项=值
:wq
#systemctl restart
主库配置文件里(对应所有的从都有效)
只允许同步的库 binlog_do_db=库名1,库名2,库名n
不允许同步的库 binlog_ignore_db=库名1,库名2,库名n
从库配置文件里(只对本机有效)
只同步的库replicate_do_db=库名1,库名2,库名n
只不同步的库 replicate_ignore_db=库名1,库名2,库名n
级联复制log_slave_updates
+++++++++++++++++++++++++++++++++++
三、数据读写分离 maxscale软件 +一主一从
3.1 什么读写分离:把客户端访问数据时的查询请求select 和写insert 给不同的数据库服务器处理。
client 254 mysql-h192.168.4.15-uyaya99-p123456 |
15
代理主机---> systemctl stop mysqld
|
| |
192.168.4.11 192.168.4.12
写 读
主 从
1 配置一主一从结构
2 配置代理主机
2.1
a 装包
b 、修改配置文件:
指定数据库服务器、指定监控的数据库服务器 ,指定读写在那些主机之间执行、
定义管理服务 、读写分离服务使用的端口、管理服务使用的端口
4006 4009
c、根据配置文件设置,在数据库服务器上添加对应的授权用户
grantreplication slave ,replication clienton.to scalemon@"%" >
grantselecton mysql.* to maxscale@"%" > d、在代理主机上测试授权用户
#whichmysql
#yum-y install mariadb
#mysql-h192.168.4.11-uscalemon-p123456
#mysql-h192.168.4.11-umaxscale-p123456
#mysql-h192.168.4.12-uscalemon-p123456
#mysql-h192.168.4.12-umaxscale-p123456
e、启动服务
#maxscale-f/etc/maxscale.cnf( 停止服务 pkill-9 maxscale)
#netstat-utnalp| grep maxscale
2.2 测试配置
A\ 在代理服务器本机访问管理服务
15#maxadmin-uadmin-pmariadb-P4009
maxscale> listservers
B 在客户端254主机 访问代理服务器存储数据或查询数据
#which mysql
#yum-yinstall mariadb
#mysql -h192.168.4.15-P4006-uyaya99-p123456
++++++++++++++++++++++++++++++++++++
四、mysql服务的优化
五mysql高可以集群 (mysql-mmm+ 主从同步)11-14 15
#yum-yinstallperl-*
页:
[1]