环境:两台centos环境,安装mysql(mariadb)
web网站的优化:
缓存技术 数据库缓存 redis
文件缓存 图片 fastdfs
负载均衡 nginx
数据库主从备份,读写分离
图解:
在工作中,为了防止数据损坏,使用主从备份这种架构(复制集),为了满足mysql的性能要求,为了提高吞吐量使用复制集之后还可搭建读写分离去提高性能。
搭建主从
在master(主机名) 和slave(从机名) 都需要操作安全向导
mysql_secure_installation
systemctl restart mariadb 重启服务
mysql -u root -p 使用密码登陆
关闭主从防火墙和安全模式
systemctl stop firewalld
setenforce 0
slave 操作
systemctl restart mariadb
mysql -uroot -p
create database OurBlog charset=utf8;
exit
将刚导入的sql文件导入到salve库中
mysql -h localhost -u root -p111111 OurBlog < /opt/OurBlog.sql
修改配置文件
master配置文件
vi /etc/my.cnf
增加代码
server-id=1
log_bin=mysql-bin?
binlog-do-db=OurBlog
binlog-ignore-db=mysql
保存文件
重启 mariadb
slave修改
修改配置文件
vi /etc/my.cnf
增加下面代码
server-id=2
log_bin=mysql-bin?
binlog-do-db=OurBlog
binlog-ignore-db=mysql
保存
重启
-Salve 配置
change master to master_host="10.10.14.154",master_user="root",master_password='111111',master_log_file="mysql-bin?.000001",master_log_pos=245;
-Slave 库当中
数据库当中
slave start 开始备份
show slave status \G
-salve库当中
查看slave 状态
show slave status \G
停止slave
stop slave;
开启slave
start slave
查看master 状态
show master status;
在 master中写入数据,然后在slave中查看数据
Master 主库 slave 从库
binary log 二进制文件。relay log 中继器日志
I/O线程,sql线程
当客户端发器insert操作,操作的master库(事务)由master服务将sql语句转为二进制,存储到二进制日志文件中,然后执行commit 操作,将事务结果存储到master 库当中。
slave 开通一个io线程,线程阻塞等到,监听二进制文件是否有改变,如果有的,读取到中继器当中,
sql线程会定期查看中继器中的内容,然后重演,将改变写入slave库当中。