关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » MySQL »MYSQL日志文件维护

    MYSQL日志文件维护

    2015-09-02 00:00:00 出处:ITJS
    分享

    在MySQL服务器启动时,它检查其命令行的操作,来查看它是否应该执行登录并打开相应的日志文件(如果应该的话)。可以让服务器生成两种主要类型的日志文件:常规日志文件。它报告客户机的连接、查询和其他各种各样的事件。它对于跟踪服务器的活动很有用:谁正在连接、从哪里连接,以及他们正在做什么。

    更新日志

    它报告修改数据库的查询。在此上下文中的术语“更新”不只涉及UPDATE语句,还涉及修改数据库的所有语句。由于这个原因,它包含了对D E L E T E、INSERT、REPLACE、CREATE TABLE、DROP TABLE、GRANT 和REVOKE 的查询记录。更新日志的内容以SQL 语句的形式书写,这些语句用作对mysql的输入。如果在崩溃后必须恢复表的话,更新日志与备份是很有用的。您可以从备份文件中恢复数据库,然后通过将更新日志作为对mysql的输入,重新运行在该备份文件之后又修改数据库的任何查询。这样,可将表恢复到崩溃时刻的状态。

    为了使日志有效,可使用--log 选项开启常规日志,并用--log-update 选项开启更新日志。可以在mysqld.safe_mysqld 或mysql.server 的命令行中,或在某个选项的[mysqld] 组中指定这些选项。当日志有效时,日志文件在缺省时被写到服务器的数据目录中。

    笔者建议在首次使用MySQL时应使两种日志类型都有效。在获得一些使用MySQL的经验后,可能会只用更新日志来对付,以便减少磁盘空间的需求。

    在使日志有效后,要确保不用大量的日志信息将磁盘填满,尤其是如果服务器正在处理大量的查询话。可使用日志文件循环和截止时间,在避免日志文件无边界地增长的同时保持日前的几个日志是联机可用的。

    日志文件循环工作如下。假定日志文件名为l o g。在第一个循环中, log 被重新命名为l o g . 0,且服务器开始写新的l o g文件。在第二次循环中, log.0 被重命名为l o g . 1,log 重命名为l o g . 0,服务器开始写另一个新的log 文件。这样,每个文件循环通过名字l o g . 0、l o g . 1,等等。当文件到达循环的某一点时,可以终止它。

    更新日志和LOAD DATA 语句

    通常,当服务器执行LOAD DATE 语句时,它只将该语句本身而不是被加载的行内容写到更新日志中。这意味着除非该数据文件仍然保持可访问,否则使用更新日志的恢复操作将是不完整的。为了确保这一点的安全,除非数据库已经备份,否则不应该删除数据文件。

    系统备份

    更新日志对于数据库恢复并不是任何时候都好,如果一个磁盘崩溃导致您失去了更新日志的话,应确保您执行定期的文件系统备份。将更新日志写到与存储数据库不相同的磁盘中也是一个好主意。

    例如,如果您每天都循环日志,并且想保持一周的日志,则应保留log.0 到l o g . 6。在下一个循环中,将通过令log.5 覆盖log.6 使其成为新的log.6 来终止l o g . 6。这样,您就可以保留许多日志而又避免了它们超过磁盘的限度。

    日志循环频率和保持的旧日志数量将依赖于服务器的繁忙程度(活动的服务器产生更多的日志信息)以及您希望为旧日志投入多少磁盘空间。当循环常规日志时,可以用mysqla d - min flush-logs 命令告诉服务器关闭当前的日志文件并打开新的日志文件。

    执行常规日志循环的脚本类似如下(可修改它来反映您的日志基名和数据目录的位置,或许还有希望保留的旧日志的数量):

    最好从mysqladm 账号中运行此脚本以确保日志文件属于那个用户。如果在.my.cnf 选项文件中保留连接参数,您不需要在该脚本的mysqladmin 命令中指定任何参数。如果您不这样做的话可以建立一个受限用户,它除了发布刷新命令外什么也不做。然后可以以最小的风险在该脚本中放置这个用户的口令。如果想这样做,则该用户应只有RELOAD 权限。例如,要想调用用户flush 并分配一个口令f l us h pass,可使用下列GRANT 语句:

     find 命令定位并删除修改时间超过一个星期的更新日志文件。重要的是使用-name 参数来对一个数字的文件扩展名进行测试,以避免删除由错误的update 所指定的表。

    还可以告诉服务器使用固定的更新日志文件名(如果希望的话),如果想用与常规日志相同的方法循环更新日志,这是有用的。要想使用固定的更新日志名,应指定一个包含扩展名的名字。例如,可以用--log-update=update.log 选项启动服务器来使用名字up date . l o g。服务器将一直关闭并在接收flush-logs 命令时打开该日志,但是服务器并不是每次都产生新的文件。在这种情况下,用于更新日志的日志循环脚本和用于常规日志的脚本仅在循环的文件基名上有所不同。

    如果想自动执行日志循环和终止,可使用c r o n。假定循环常规日志和更新日志的脚本为rotate-logs 和r o t a t e - up date - l o g s,且安装在/usr/user/mysql/bin 目录中。以mysqlladm 用户进行注册,然后用以下命令编辑mysqladm 用户的crontab 文件:   % crontab -e

    此命令允许编辑当前crontab 文件的备份(如果之前没有这样做,则它可能为空)。按以下方法将行增加到该文件中:

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    Microsoft 将于 2026 年 10 月终止对 Windows 11 SE 的支持

    Windows 11 存储感知如何设置?了解Windows 11 存储感知开启的好处

    Windows 11 24H2 更新灾难:系统升级了,SSD固态盘不见了...

    小米路由器买哪款?Miwifi热门路由器型号对比分析

    DESTOON标签(tag)调用手册说明(最新版)

    Destoon 9.0全站伪静态规则设置清单(Apache版)

    Destoon 9.0全站伪静态规则设置清单(Nginx版)

    Destoon 8.0全站伪静态规则设置清单(Apache版)

    Destoon 8.0全站伪静态规则设置清单(Nginx版)

    Destoon会员公司地址伪静态com/目录如何修改?两步轻松搞定,适合Nginx和Apache

    IT头条

    StorONE 的高效平台将 Storage Guardian 数据中心占用空间减少 80%

    11:03

    年赚千亿的印度能源巨头Nayara 云服务瘫痪,被微软卡了一下脖子

    12:54

    国产6nm GPU新突破!砺算科技官宣:自研TrueGPU架构7月26日发布

    01:57

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    技术热点

    12个Java长久占居主要地位的原因

    Swift如何调用Objective-C代码

    sql server表格变量的用法

    MySQL升级:从4.1到5.0

    SQL语句优化提升整体效能

    sql server安全的两层模型

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。