layout: post
title: MySQL数据库(三)日志、主从复制、分库分表、读写分离
description: MySQL数据库(三)日志、主从复制、分库分表、读写分离
tag: 数据库
日志
错误日志
错误日志默认存放目录为 /var/log/,默认的日志文件名为mysql.log。
查看日志位置的指令为:
show variables like '%log_error%'
错误日志对于错误的记录和分析更加详细!
二进制日志
二进制日志记录了所有的DDL和DML语句,即记录了所有数据库表和数据库数据的变更。
show variables like '%log_bin%'
二进制无法直接读取,因此需要通过二进制查询工具mysqlbinlog来查看
二进制日志清理与删除:
查询日志
查询是使用频繁的操作,默认是关闭的!
慢查询日志
主从赋值
主从复制是将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库数据保持同步。
MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他服务器的主库实现链装复制。
这样做的好处主要体现在以下三个方面:
- 主库出现问题,可以快速切换到从库提供服务
- 实现读写分离,降低主库访问压力。
- 可以在从库执行备份,避免备份期间影响主库服务。
原理
搭建
1、准备两台安装好mysql且能远程访问的服务器。
2、主库配置步骤:
a、修改配置文件
b、重启MySQL服务器
c、登录mysql,创建远程连接账号,赋予主从赋值权限。
d、通过指令查看二进制日志文件
3、从库配置步骤:
a、修改配置文件 /etc/my.cnf,设置从库只读,集群id
b、重启MySQL服务。
c、登录mysql,设置主库配置
d、开启同步操作
e、查看主从同步状态
分库分表
分库分表的核心思想是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库性能问题,从而提升数据库整体性能。
拆分策略
垂直拆分:
水平拆分: