欢迎来到天天文库
浏览记录
ID:22371677
大小:55.00 KB
页数:6页
时间:2018-10-28
《mysql日志文件维护--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、MYSQL日志文件维护>> 在MySQL服务器启动时,它检查其命令行的操作,来查看它是否应该执行登录并打开相应的日志文件(如果应该的话)。可以让服务器生成两种主要类型的日志文件:常规日志文件。它报告客户机的连接、查询和其他各种各样的事件。它对于跟踪服务器的活动很有用:谁正在连接、从哪里连接,以及他们正在做什么。 更新日志 它报告修改数据库的查询。在此上下文中的术语更新不只涉及UPDATE语句,还涉及修改数据库的所有语句。由于这个原因,它包含了对DELETE、INSERT、REPLACE、CREATETABLE、DROPTABLE、GRANT和REVOKE的查询记录。更新日志的
2、内容以SQL语句的形式书写,这些语句用作对mysql的输入。如果在崩溃后必须恢复表的话,更新日志与备份是很有用的。您可以从备份文件中恢复数据库,然后通过将更新日志作为对mysql的输入,重新运行在该备份文件之后又修改数据库的任何查询。这样,可将表恢复到崩溃时刻的状态。 为了使日志有效,可使用--log选项开启常规日志,并用--log-update选项开启更新日志。可以在mysqld.safe_mysqld或mysql.server的命令行中,或在某个选项的[mysqld]组中指定这些选项。当日志有效时,日志文件在缺省时被写到服务器的数据目录中。 笔者建议在首次使用MySQL时应
3、使两种日志类型都有效。在获得一些使用MySQL的经验后,可能会只用更新日志来对付,以便减少磁盘空间的需求。 在使日志有效后,要确保不用大量的日志信息将磁盘填满,尤其是如果服务器正在处理大量的查询话。可使用日志文件循环和截止时间,在避免日志文件无边界地增长的同时保持最近的几个日志是联机可用的。 日志文件循环工作如下。假定日志文件名为log。在第一个循环中,log被重新命名为log.0,且服务器开始写新的log文件。在第二次循环中,log.0被重命名为log.1,log重命名为log.0,服务器开始写另一个新的log文件。这样,每个文件循环通过名字log.0、log.1,等等。当文
4、件到达循环的某一点时,可以终止它。 更新日志和LOADDATA语句 通常,当服务器执行LOADDATE语句时,它只将该语句本身而不是被加载的行内容写到更新日志中。这意味着除非该数据文件仍然保持可访问,否则使用更新日志的恢复操作将是不完整的。为了确保这一点的安全,除非数据库已经备份,否则不应该删除数据文件。 系统备份 更新日志对于数据库恢复并不是任何时候都好,如果一个磁盘崩溃导致您失去了更新日志的话,应确保您执行定期的文件系统备份。将更新日志写到与存储数据库不相同的磁盘中也是一个好主意。 例如,如果您每天都循环日志,并且想保持一周的日志,则应保留log.0到log.6。在下
5、一个循环中,将通过令log.5覆盖log.6使其成为新的log.6来终止log.6。这样,您就可以保留许多日志而又避免了它们超过磁盘的限度。 日志循环频率和保持的旧日志数量将依赖于服务器的繁忙程度(活动的服务器产生更多的日志信息)以及您希望为旧日志投入多少磁盘空间。当循环常规日志时,可以用mysqlad-minflush-logs命令告诉服务器关闭当前的日志文件并打开新的日志文件。 执行常规日志循环的脚本类似如下(可修改它来反映您的日志基名和数据目录的位置,或许还有希望保留的旧日志的数量):最好从mysqladm账号中运行此脚本以确保日志文件属于那个用户。如果在.my.f选项文
6、件中保留连接参数,您不需要在该脚本的mysqladmin命令中指定任何参数。如果您不这样做的话可以建立一个受限用户,它除了发布刷新命令外什么也不做。然后可以以最小的风险在该脚本中放置这个用户的口令。如果想这样做,则该用户应只有RELOAD权限。例如,要想调用用户flush并分配一个口令flushpass,可使用下列GRANT语句:GRANTRELOADON*.*TOflushlocalhostIDENTIFIEDBYflushpass 当需要在脚本中执行刷新操作时,可以这样做:mysqladmin-uflush-pflushpassflush-logs 在Linux中,最好用l
7、ogrotate来安装MySQL分发包中的mysql-log-rotate脚本,而不是自己编写脚本。如果mysql-log-rotate不通过RPM文件自动安装,应查看MySQL分发包的support-files目录。 由于服务器处理更新日志文件的方法不同,日志文件的循环在更新日志与常规日志之间稍有不同。如果告诉服务器使用没有扩展名的更新日志文件名(如update),则服务器将使用顺序的update.001、update.002等自动创建更新日志文件名。在服务器启动
此文档下载收益归作者所有