IT评测·应用市场-qidao123.com

标题: 优化GreatSQL日志文件空间占用 [打印本页]

作者: 铁佛    时间: 2025-3-14 11:31
标题: 优化GreatSQL日志文件空间占用
优化GreatSQL日志文件空间占用

GreatSQL对于日志文件磁盘空间占用,做了一些优化,对于binlog、relay log、slow log和audit log的总空间占用举行了限制,使DBA免除了大量日志生成导致磁盘满的顾虑,极大的方便了数据库磁盘空间管理。
1.binlog二进制日志

参数行为体现测试:
  1. # 查询参数配置值
  2. greatsql> SHOW GLOBAL VARIABLES LIKE 'binlog_space_limit';
  3. +--------------------+------------+
  4. | Variable_name      | Value      |
  5. +--------------------+------------+
  6. | binlog_space_limit | 1073741824 |
  7. +--------------------+------------+
  8. 1 row in set (0.00 sec)
  9. # 进行业务处理,检查binlog大小
  10. greatsql> SHOW BINARY LOGS;
  11. +-----------------+-----------+-----------+
  12. | Log_name        | File_size | Encrypted |
  13. +-----------------+-----------+-----------+
  14. | mybinlog.000009 | 433980378 | No        |
  15. | mybinlog.000010 |   7590652 | No        |
  16. | mybinlog.000011 | 208398410 | No        |
  17. | mybinlog.000012 | 414221182 | No        |
  18. +-----------------+-----------+-----------+
  19. 4 rows in set (0.00 sec)         
  20.                   
  21. # 达到binlog_space_limit的1G限制,清理了最旧的binlog文件
  22. greatsql> SHOW BINARY LOGS;
  23. +-----------------+-----------+-----------+
  24. | Log_name        | File_size | Encrypted |
  25. +-----------------+-----------+-----------+
  26. | mybinlog.000010 |   7590652 | No        |
  27. | mybinlog.000011 | 208398410 | No        |
  28. | mybinlog.000012 | 455964041 | No        |
  29. +-----------------+-----------+-----------+
  30. 3 rows in set (0.00 sec)
复制代码
2.relay log中继日志

参数行为体现测试:

修改配置后,重启 mysqld,将slave改为延时8小时应用。
  1. greatsql> SHOW GLOBAL VARIABLES LIKE 'relay_log_space_limit';  
  2. +-----------------------+------------+
  3. | Variable_name         | Value      |
  4. +-----------------------+------------+
  5. | relay_log_space_limit | 3221225472 |
  6. +-----------------------+------------+
  7. 1 row in set (0.01 sec)
  8. greatsql> STOP SLAVE SQL_THREAD;CHANGE MASTER TO MASTER_DELAY=28800;START SLAVE SQL_THREAD;
复制代码
在主节点,业务加压,生成relay log,当relay log的文件总和达到3G时,relay log不在增加。
  1. $ du -sm  /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/*relay*
  2. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000018
  3. 596     /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000019
  4. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000020
  5. 1025    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000021
  6. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000022
  7. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000023
  8. 1028    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000024
  9. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000025
  10. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000026
  11. 426     /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000027
  12. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.index
复制代码
查抄slave status,Slave的IO和SQL线程都是Yes,当IO线程已停止吸取新的事务。
  1. greatsql> pager grep -E '_Log_|Gtid|Running'
  2. PAGER set to 'grep -E '_Log_|Gtid|Running''
  3. greatsql> SHOW SLAVE STATUS\G
  4.               Master_Log_File: greatsql-bin.000006
  5.           Read_Master_Log_Pos: 445825094
  6.                Relay_Log_File: greatsql-relay.000019
  7.                 Relay_Log_Pos: 410
  8.         Relay_Master_Log_File: greatsql-bin.000003
  9.              Slave_IO_Running: Yes
  10.             Slave_SQL_Running: Yes
  11.           Exec_Master_Log_Pos: 459045495
  12.               Relay_Log_Space: 3221226704
  13.                Until_Log_File:
  14.                 Until_Log_Pos: 0
  15.       Slave_SQL_Running_State: Waiting until SOURCE_DELAY seconds after source executed event
  16.            Retrieved_Gtid_Set: d02f35e9-afdc-11ef-a49b-00163e0ea4a5:138815-387659
  17.             Executed_Gtid_Set: d02f35e9-afdc-11ef-a49b-00163e0ea4a5:1-138814
  18. 1 row in set, 1 warning (0.00 sec)
  19. greatsql> SHOW SLAVE STATUS\G
  20.               Master_Log_File: greatsql-bin.000006
  21.           Read_Master_Log_Pos: 445825094
  22.                Relay_Log_File: greatsql-relay.000019
  23.                 Relay_Log_Pos: 410
  24.         Relay_Master_Log_File: greatsql-bin.000003
  25.              Slave_IO_Running: Yes
  26.             Slave_SQL_Running: Yes
  27.           Exec_Master_Log_Pos: 459045495
  28.               Relay_Log_Space: 3221226704
  29.                Until_Log_File:
  30.                 Until_Log_Pos: 0
  31.       Slave_SQL_Running_State: Waiting until SOURCE_DELAY seconds after source executed event
  32.            Retrieved_Gtid_Set: d02f35e9-afdc-11ef-a49b-00163e0ea4a5:138815-387659
  33.             Executed_Gtid_Set: d02f35e9-afdc-11ef-a49b-00163e0ea4a5:1-138814
  34. 1 row in set, 1 warning (0.00 sec)
复制代码
将slave改为延时10分钟应用,sql线程在应用完greatsql-relay.000019的事务后,io线程开始吸取新的事务到greatsql-relay.000027,sql线程在应用完greatsql-relay.000021的事务之前,IO线程再次暂停。
  1. greatsql> STOP SLAVE SQL_THREAD;CHANGE MASTER TO MASTER_DELAY=600;START SLAVE SQL_THREAD;
复制代码
relay log的始终合计控制在3G左右。
  1. $ du -sm  /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/*relay*
  2. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000020
  3. 1025    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000021
  4. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000022
  5. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000023
  6. 1028    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000024
  7. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000025
  8. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000026
  9. 1450    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000027
  10. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.index
  11. ......
  12. $ du -sm  /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/*relay*
  13. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000032
  14. 1025    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000033
  15. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000034
  16. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000035
  17. 1025    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000036
  18. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000037
  19. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000038
  20. 1024    /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.000039
  21. 1       /data/greatsqldata/16315fff-72c5-4ea6-b26e-3604869063a6/dbdata/greatsql-relay.index
复制代码
slow log 慢日志

GreatSQL增加slow log的如下控制参数:
参数行为体现测试:
  1. #参数默认值为0,表示不限制
  2. greatsql> SHOW GLOBAL VARIABLES LIKE 'max_slow%';  
  3. +-------------------+-------+
  4. | Variable_name     | Value |
  5. +-------------------+-------+
  6. | max_slowlog_files | 0     |
  7. | max_slowlog_size  | 0     |
  8. +-------------------+-------+
  9. 2 rows in set (0.01 sec)
  10. #修改参数值
  11. greatsql> SET GLOBAL max_slowlog_files=2;
  12. Query OK, 0 rows affected (0.00 sec)
  13. greatsql> SET GLOBAL max_slowlog_size=1024*1024;
  14. Query OK, 0 rows affected (0.01 sec)
  15. greatsql> SHOW VARIABLES LIKE 'max_slow%';
  16. +-------------------+---------+
  17. | Variable_name     | Value   |
  18. +-------------------+---------+
  19. | max_slowlog_files | 2       |
  20. | max_slowlog_size  | 1048576 |
  21. +-------------------+---------+
  22. 2 rows in set (0.01 sec)
复制代码
slow.log当达max_slowlog_size 设置的大小时,会发生轮转生成一个新的文件,当文件数达到max_slowlog_files设置的数量时,删除最旧的文件。
  1. $ ll slow*
  2. -rw-r----- 1 GreatSQL GreatSQL 1048621 Dec 17 10:52 slow.log.000010
  3. -rw-r----- 1 GreatSQL GreatSQL 1043247 Dec 17 10:53 slow.log.000011
  4. #--继续生成slow.log,删除了slow.log.000010
  5. $ ll slow*
  6. -rw-r----- 1 GreatSQL GreatSQL 1048692 Dec 17 10:53 slow.log.000011
  7. -rw-r----- 1 GreatSQL GreatSQL   46119 Dec 17 10:53 slow.log.000012
复制代码
audit log审计日志

GreatSQL 的 audit 插件参数audit_log_rotate_on_size,audit_log_rotations用于控制审计日志。
参数行为体现测试:
  1. greatsql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
  2. Query OK, 0 rows affected (0.12 sec)
  3. #默认值为0,不轮转,不限制文件大小
  4. greatsql> SHOW GLOBAL VARIABLES LIKE 'audit_log_rotat%';
  5. +--------------------------+-------+
  6. | Variable_name            | Value |
  7. +--------------------------+-------+
  8. | audit_log_rotate_on_size | 0     |
  9. | audit_log_rotations      | 0     |
  10. +--------------------------+-------+
  11. 2 rows in set (0.01 sec)
  12. #设置参数值
  13. greatsql> SET GLOBAL audit_log_rotate_on_size=1048576;
  14. Query OK, 0 rows affected (0.00 sec)
  15. greatsql> SET GLOBAL audit_log_rotations=4;
  16. Query OK, 0 rows affected (0.00 sec)
  17. greatsql> SHOW VARIABLES LIKE 'audit_log_rota%';
  18. +--------------------------+---------+
  19. | Variable_name            | Value   |
  20. +--------------------------+---------+
  21. | audit_log_rotate_on_size | 1048576 |
  22. | audit_log_rotations      | 4       |
  23. +--------------------------+---------+
  24. 2 rows in set (0.01 sec)
复制代码
查抄audi.log文件的变化:
  1. $ ll audit*
  2. -rw-r----- 1 GreatSQL GreatSQL  492556 Dec 17 11:26 audit.log
  3. -rw-r----- 1 GreatSQL GreatSQL 1050204 Dec 17 11:26 audit.log.1
  4. -rw-r----- 1 GreatSQL GreatSQL 1050485 Dec 17 11:26 audit.log.2
  5. -rw-r----- 1 GreatSQL GreatSQL 1051191 Dec 17 11:26 audit.log.3
  6. -rw-r----- 1 GreatSQL GreatSQL 1050767 Dec 17 11:26 audit.log.4
  7. # audit.log发生轮转
  8. $ ll audit*
  9. -rw-r----- 1 GreatSQL GreatSQL     993 Dec 17 11:26 audit.log
  10. -rw-r----- 1 GreatSQL GreatSQL 1542990 Dec 17 11:26 audit.log.1
  11. -rw-r----- 1 GreatSQL GreatSQL 1050204 Dec 17 11:26 audit.log.2
  12. -rw-r----- 1 GreatSQL GreatSQL 1050485 Dec 17 11:26 audit.log.3
  13. -rw-r----- 1 GreatSQL GreatSQL 1051191 Dec 17 11:26 audit.log.4
复制代码
日志写入audit.log文件,当达到audit_log_rotate_on_size时,发生轮转:
删除audit.log.4,audit.log.3轮转为audit.log.4,audit.log.2轮转为audit.log.3,audit.log.1轮转为audit.log.2,audit.log轮转为audit.log.1
共保留audit_log_rotations个轮转的审计日志文件。

Enjoy GreatSQL
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4