当前位置:首页 / 标签 mysql 下的文章

0

正确删除MYSQl日志方法

it技术 | 2016-08-05 | 个浏览

当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间。
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005

有三种解决方法:1.关闭mysql主从,关闭binlog;2.开启mysql主从,设置expire_logs_days;3.手动清除binlog文件,> PURGE MASTER LOGS TO ‘MySQL-bin.010′;

purge binary logs to 'mysql-bin.000037'; //清除 之前的日志 不包含此日志

实现:
1.关闭mysql主从,关闭binlog

# vim /etc/my.cnf  //注释掉log-bin,binlog_format# Replication Master Server (default)# binary logging is required for replication# log-bin=mysql-bin# binary logging format - mixed recommended# binlog_format=mixed

然后重启数据库

2.重启mysql,开启mysql主从,设置expire_logs_days

# vim /etc/my.cnf  //修改expire_logs_days,x是自动删除的天数,一般将x设置为短点,如10expire_logs_days=x//二进制日志自动删除的天数。默认值为0,表示“没有自动删除”

此方法需要重启mysql,附录有关于expire_logs_days的英文说明

当然也可以不重启mysql,开启mysql主从,直接在mysql里设置expire_logs_days

>show binary logs;>show variables like'%log%';>setglobalexpire_logs_days=10;

 
3.手动清除binlog文件

# /usr/local/mysql/bin/mysql -u root -p>PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE,INTERVAL10DAY);//删除10天前的MySQL binlog日志,附录2有关于PURGE MASTER LOGS手动删除用法及示例>show master logs;

 
也可以重置master,删除所有binlog文件:

# /usr/local/mysql/bin/mysql -u root -p>reset master;//附录3有清除binlog时,对从mysql的影响说明

 
附录:
1.expire_logs_days英文说明

Where X is the number of days you’d like to keep them around. I would recommend 10, but this depends on how busy your MySQL server is and how fast these log files grow. Just make sure it is longer than the slowest slave takes to replicate the data from your master.
Just a side note: You know that you should do this anyway, but make sure you back up your mysql database. The binary log can be used to recover the database in certain situations; so having a backup ensures that if your database server does crash, you will be able to recover the data.

2.PURGE MASTER LOGS手动删除用法及示例,MASTER和BINARY是同义词

>PURGE{MASTER|BINARY}LOGS TO'log_name'>PURGE{MASTER|BINARY}LOGS BEFORE'date'

删除指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除MySQL BIN-LOG 日志,这样被给定的日志成为第一个。

实例:

>PURGE MASTER LOGS TO'MySQL-bin.010';//清除MySQL-bin.010日志>PURGE MASTER LOGS BEFORE'2008-06-22 13:00:00';//清除2008-06-22 13:00:00前binlog日志>PURGE MASTER LOGS BEFORE DATE_SUB(NOW(),INTERVAL3DAY);//清除3天前binlog日志BEFORE,变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。

 
3.清除binlog时,对从mysql的影响
如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。

0

typecho支持海量数据的Typecho高性能版本发布

it技术 | 2016-07-26 | 个浏览

[导读]现在越来越多的人用Typecho,甚至有部分朋友希望将typecho用于商业网站并期望可以支持大量的文章,因此本人在typecho的基础上优化性能,得到了此HPTypecho,使得Typecho可以完美支持200万数据!
项目目的

由于Typecho是一个用于个人的博客系统,所以其设计之初就不支持过大的数据量。但最近不少朋友向我求助,希望用typecho来搭建数据量较大的商业网站(譬如外贸公司),于是将最近几个网站的优化策略,汇总在此HPTypecho(High Performance Typecho)中。

声明

HPTypecho在Typecho的基础上修改,原则上会尽可能兼容typecho原有的插件和模板。但在实际开发过程中,会通过修改表结构或者程序逻辑来提高性能,所以可能出现部分插件无法兼容的情况。

在表数据量较大的情况下,MySQL表可能会容易损坏,尤其是MyISAM引擎。这不是Typecho代码可以避免的,所以在使用HPTypecho的时候,谨记积极备份数据。

版本更新

v0.8-16.03.15-beta,测试版

建议配置:以200w post为标准,建议主机1G以上内存,50G以上硬盘。

优化分类加载的性能

优化搜索性能,注意目前仅支持英文搜索,暂不支持中文

优化post页加载性能

优化后台性能

请不要将测试版用于生产环境。性能测试报告整理好后再链出来

beta版试用地址:https://github.com/leimiu/typecho/archive/v0.8-16.03.15-beta.zip

2016-07-16更新typecho到hptyecho的转换脚本

git克隆最新代码 https://github.com/leimiu/typecho

进入tools/update2hp目录,根据README.txt的说明,配置脚本并进行数据转换

来源:http://www.typechodev.com/index.php/archives/524/