Mysql LOG

    技术2022-05-19  24

    mysql 日志设置可以作为优化数据库的一部分,不同的设置可能使性能得到较大的提升或者下降。

    1.backup_log

      

         back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。如果系统在一个短时间内有很多

         连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限

         制。试图设定back_log高于你的操作系统的限制将是无效的。

         当使用show processlist 查看MySQL进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL |

         Connect | NULL | login |NULL 的待连接进程时,就要加大 back_log 的值。back_log默认值为50。

    2.binlog_cache_size

         “binlog_cache_size":在事务过程中容纳二进制日志SQL 语句的缓存大小。二进制日志缓存是服务器支持事务存储引擎并且服务器

          启用了二进制日志(—log-bin 选项)的前提下为每个客户端分配的内存,注意,是每个Client 都可以分配设置大小的binlog cache 空

          间。如果系统中经常会出现多语句事务,可以尝试增加该值的大小,以获得更有的性能。当然,可以通过MySQL 的以下两个状态变量

          来判断当前的binlog_cache_size 的状况:Binlog_cache_use 和Binlog_cache_disk_use。

          设定binlog_cache_size: set binlog_cache_size=32768;

          查看binlog_cache_use和binlog_cache_disk_use

          show global status like 'binlog_cache%'

         Binlog_cache_use表示有多少个事物使用了binlog_cache_size来缓存未提交的事物日志。     Binlog_cache_disk_use 当事务日志比binlog_cache_size大时,他会创建临时文件,该状态表示有多少个事务使用了临时文件     以上两个参数可以用来动态调整binlog_cache_size变量,并且以上两个值只有在启动log-bin日志时才会有变化

     

     3.binlog_direct_non_transactional_updates

     

    4. binlog_format

        binlog_format 有三种,一种是基于SQL的复制(statement-based replication),一种是基于行的复制(row-based

        replication, RBR) ,还有一种混合模式复制(mixed-based replication, MBR).binlog的三种格式分别为,STATEMENT,

        ROW,MIXED,混合模式中,SBR默认。

    5. expire_logs_days

        mysql二进制日志保留天数。

     

    6. general_log

        general_log会记录所有的SQL,为了性能考虑,一般不开启。

        开启general_log: set global_general_log=on;

    7. general_log_file

        MYSQL general_log 存放日志的文件的路径;

     

    8. LOG_OUTPUT

        日志信息保存到文件或者表;

        Set global log_output= ‘file’ | ‘table’  两者选其一;

    9. LOG

        记录所有的查询操作日志。

        开启:SET GLOBAL LOG=ON;

        关闭:SET GLOBAL LOG=OFF;

    10.LOG_bin

         二进制日志包含所有更新数据的语句。LOG_BIN可以指定日志文件,如果不指定文件名,LOG_BIN将自己产生缺省的文件

        名。

        这个参数要在MY.CNF中修改。

    11.log_bin_trust_function_creators

         是否允许创建函数;

         开启:set global log_bin_trust_function_creators=1;

         关闭:set global log_bin_trust_function_creators=0;

    12.log_bin_trust_routine_creators

        

    12.log_error

         记录mysql启动和停止的时候以及运行过程中出现的错误信息,这些信息一般在数据目录下,名字为hostname.err.

     

    14.log_queries_not_using_indexes

         记录没有使用索引的慢日志;

         开启:set global log_queries_not_using_indexes=1;

         关闭:set global log_queries_not_using_indexes=0;

     

    15.log_slave_updates

         如果使用链状同步需要开启此选项;

         开启:set global log_slave_updates=1;

     

    16.log_slow_queries

         记录慢查询日志,开启时可以指定日志路径;

         开启:set  global log_slow_queries=1;

         可以在开启的时候指定文件路径;

         set global slow_query_log_file='file';

         可以通过long_query_time指定慢查询的时间值;

         set global long_query_time=1;

      

    17.log_warnings

         记录警告到错误日志;默认值为1;

          开启:set global log_warnings=1;

          关闭:set global log_warnings=0;

     

    18.max_binlog_cache_size

         “max_binlog_cache_size”:和"binlog_cache_size"相对应,但是所代表的是binlog 能够使用的最大cache 内存大小。当我们

          执行多语句事务的时候,max_binlog_cache_size 如果不够大的话,系统可能会报出“ Multi-statement transaction required

          more than 'max_binlog_cache_size' bytes ofstorage”的错误。

        

    19.max_binlog_size

       “max_binlog_size”:Binlog 日志最大值,一般来说设置为512M 或者1G,但不能超过1G。该大小并不能非常严格控制Binlog 大

        小,尤其是当到达Binlog 比较靠近尾部而又遇到一个较大事务的时候,系统为了保证事务的完整性,不可能做切换日志的动作,只能将

        该事务的所有SQL 都记录进入当前日志,直到该事务结束。

     

    20.sync_binlog

         sync_binlog=0,当事务提交之后,MySQL 不做fsync 之类的磁盘同步指令刷新binlog_cache 的信息到磁盘,而让Filesystem

        自行决定什么时候来做同步,或者cache 满了之后才同步到磁盘。     sync_binlog=n,当每进行n 次事务提交之后,MySQL 将进行一次fsync 之类的磁盘同步指令来将binlog_cache 中的数据强制写入

         磁盘。    在MySQL 中系统默认的设置是sync_binlog=0,也就是不做任何强制性的磁盘刷新指令,这时候的性能是最好的,但是风险也是最大

        的。因为一旦系统Crash,在binlog_cache 中的所有binlog 信息都会被丢失。而当设置为“1”的时候,是最安全但是性能损耗最大的

       设置。

     

    21.relay_log

         配置中继日志,用于复制。

         中继日志是从主机的 二进制日志中读取事务,并且由从机的I/O 线程作为SQL线程的一部分在从机上执行。

     

     

     

    22.relay_log_index

        可以设置为:relay_log_index = mysql-relay-bin.index  

       记录了最后的中转日志列表的位置与名称。

     

    23.relay_log_info_file

        中转日志信息文件的位置与名称。

     

    24.relay_log_purge

     

        设置为0时,表示不清楚中继日志,在设置为1时,表示在不需要的时候立即清除中继日志。

     

    25.relay_log_space_limit

         用于所有中转日志的最大空间。

     

       

     

    27.log_slave_update

         是否记录SLAVE 的二进制日志,当设置为1时,可以让从服务器变为主服务器。

        

        

       

         是否允许创建SP;

         开启:set log_bin_trust_routine_creators =1;

         关闭:set log_bin_trust_routine_creators =0;


    最新回复(0)