Chinaunix首页 | 论坛 | 博客
  • 博客访问: 331889
  • 博文数量: 65
  • 博客积分: 1770
  • 博客等级: 上尉
  • 技术积分: 1125
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-13 14:31
文章分类

全部博文(65)

文章存档

2016年(1)

2014年(2)

2013年(5)

2012年(18)

2011年(39)

分类: Mysql/postgreSQL

2013-11-06 19:02:32

1. 二进制日志(binlog)

    1). binlog 存在用途:
       记录所有数据的更新操作(insert update delete),当数据库不小心挂了时,可以根据binlog来恢复,也可用作同步主从数据库。
    2). 默认关闭此功能
        将下面写入配置文件my.ini(重启生效) 或者 执行用SQL语句设置下面几个变量的值
        log-bin = binlog-filename ## binlog的递增生成的文件名为binlog-filename.000000x
        expire_logs_days = n ## mysql隔几天定期清除binlog日志
        max_binlog_size = n ## 单个binlog的最大容量
       在xp下,要让配置文件重新生效必须重启服务,进入dos控制台,执行 net stop mysql; net start mysql;
    3). 删除binlog方法
       a. mysql> reset master;
       b. mysql> purge master logs before '2013-12-1'
    4). 查看binlog方法
       a. shell> mysqlbinlog -v(命令详细)/-vv filename --start-datetime='2013-11-1 00:00:00' --stop-datetime='2013-12-1' | head -n 100;
       b. mysql命令: 
           mysql> show binary logs;
           mysql> show binlog events in 'binlog-filename.000000x' limit 2 \G(格式化输出);
    5). 全局参数 sync_binlog 不等于0时 (每写缓存几次就会同步到磁盘,默认为0),
        Sql语句开始执行,将事务写入binlog缓存日志,待执行结束事务提交时,将其写入binlog文件。
        缓存日志大小是由binlog_cache_size决定,假如要写入的内容大小超过设置值,多余的会被写入一个临时文件。
        通过查询 binlog_cache_use 和 binlog_cache_disk_use(临时文件使用数) 可看出binlog_cache_size设置是否合理
    6). 怎么binlog恢复数据(例如将在A、B时间内的操作事务回滚)
        shell> mysqlbinlog  binlog-filename.000000x --start-datetime=A --stop-datetime=B > rollbackTrans.sql
        mysql> source rollbackTrans.sql  
    参考网址:
        mysql-bin.000001文件的来源及处理方法

        Binlog中table_map_id 的探究

        mysql的binlog详解

        MySQL的mysqldump工具的基本用法
        

2. 慢查询日志(slow query log)
    1). 用途:
        记录可能运行较慢的sql语句,辅助mysql优化
    2). 默认关闭此功能
        将下面写入配置文件my.ini(重启生效) 或者 执行用SQL语句设置下面几个变量的值
        slow_query_log = 1 ## 之前是log_slow_queries参数,已弃用)
        long_query_time = 2 ## 慢查询阀值,将执行时间大于等于此值的sql语句记录下来,默认是10秒
        log_queries_not_using_indexes = 1 ## 设置是否将没有使用到索引的sql语句记录下来
    3). 查看慢查询日志 shell> mysqldumpslow -s al/at/ar/c/l/r/t -n 2 filename-slow.log
    4). 默认是将slow log写入文件中,可以通过设置全局变量 log_output = 'TABLE',将其写入mysql.slow_log表中(注意表引擎修改)
    参考网址:
        linux下开启mysql慢查询,分析查询语句
        MySQL笔记 - InnoDB存储引擎数据文件和日志文件 | InnoDB storage engine data files and log files  

3. 查询日志(log)
    
记录所有对数据库进行请求的信息,默认关闭,设置 general_log 变量开启日志功能 

4. 错误日志(error log)
    记录MySQL启动、运行、关闭过程中出现的问题



阅读(1322) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~