MYSQL-如何开启(Binlog)

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL(本章节)

PostgreSQL

MongoDB

Redis

Etcd

前面介绍了二进制日志的用途,本小节就通过实际案例来介绍他的实际用处,试想一下这个场景,你维护一个单机版的MYSQL,每天定时备份数据,如果某天这个节点宕机,数据无发找回,我们应该怎么办?

思路

1.把备份数据存储到MYSQL数据目录之外的磁盘,可避免单盘故障,还可以考虑再把他同步到异地。

2.开启Binlog日志,把Binlog日志存储到另外磁盘,可规避备份数据及时性的问题。

实操

1.MYSQL开启Binlog

我们这里复用我们前面yum安装的数据库。

#创建对应的数据目录,并设置权限
#这里的路基需要和下面配置文件对应,我这里实际是在一个分区,真实环境这里就是其他磁盘及分区

mkdir -p /data/mysql-binlogs/
chown mysql.mysql /data/mysql-binlogs/
vi /etc/my.conf
#在[mysqld]下面添加

# 开启binlog,并设置基础路径和文件名
log-bin=/data/mysql-binlogs/mysql-bin
# 设置binlog索引文件路径
log_bin_index=/data/mysql-binlogs/mysql-bin.index
# 必须设置server-id
server-id=1
# 设置binlog格式(推荐ROW格式)
binlog_format=ROW
# 设置binlog过期时间(天),这里基于前面的需求设置的2天
expire_logs_days=2
# 设置单个binlog文件大小
max_binlog_size=100M
#重启服务
systemctl restart mysqld

​​​​​​​

​​​​​​​

2.检查Binlog日志文件​​​​​​​

[root@localhost ~]# ll /data/mysql-binlogs/
total 8
-rw-r----- 1 mysql mysql 154 Sep 23 23:25 mysql-bin.000001
-rw-r----- 1 mysql mysql  37 Sep 23 23:25 mysql-bin.index
[root@localhost ~]# 

3.MYSQL里面检查​​​​​​​

mysql> SHOW VARIABLES LIKE 'log_bin%';
+---------------------------------+-------------------------------------+
| Variable_name                   | Value                               |
+---------------------------------+-------------------------------------+
| log_bin                         | ON                                  |
| log_bin_basename                | /data/mysql-binlogs/mysql-bin       |
| log_bin_index                   | /data/mysql-binlogs/mysql-bin.index |
| log_bin_trust_function_creators | OFF                                 |
| log_bin_use_v1_row_events       | OFF                                 |
+---------------------------------+-------------------------------------+
5 rows in set (0.03 sec)

mysql> SHOW VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 1     |
+---------------+-------+
1 row in set (0.00 sec)

4.尝试插入大量数据

5.再次查看Binlog

可以发现Binlog日志已经开始了自动轮转。​​​​​​​

#binlog日志列表
mysql> SHOW BINARY LOGS;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |    331947 |
| mysql-bin.000002 |   2589124 |
+------------------+-----------+
2 rows in set (0.02 sec)

#当前正在使用的binglog文件
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |  2615876 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.11 sec)

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值