Recovering mysql data - mysqlbinlog
Matthew Seaman
m.seaman at infracaninophile.co.uk
Fri May 2 06:09:22 UTC 2008
Mel wrote:
> On Thursday 01 May 2008 22:24:33 Paul Schmehl wrote:
>> --On Thursday, May 01, 2008 21:52:05 +0200 Mel
>>
>> <fbsd.questions at rachie.is-a-geek.net> wrote:
>>> On Thursday 01 May 2008 21:13:41 John wrote:
>>>> Thank you Mel and Paul for the suggestions. From what I understand the
>>>> general query log is more for debugging and the binary log is for point
>>>> in time recovery and replication. I'll be adding a my.cnf file (using
>>>> the my-large.cnf as a skeleton) soon. I'm glad the issue was caught
>>>> earlier on and now I'm the wiser thanks to you guys. I wonder why the
>>>> default is no. I can't think of anyone who wouldn't find the binary
>>>> logging beneficial.
>>> I can think of a reason for FreeBSD. The binary logs are never deleted
>>> and upon every server restart a new one is created. If you're like me,
>>> developing on a laptop with a webenvironment including 'Mysql server',
>>> shutting down your laptop daily, you quickly find yourself having full
>>> /var partition.
>> That can be alleviated by adding the logs to newsyslog.conf and gzipping
>> and rotating them regularly.
>> If you don't restart mysql much, something like this would work:
>>
>> /var/db/mysql/[hostname]-bin.* mysql:mysql 660 7 * $W6D0 JBG
>> /var/db/mysql/[FQHN].pid
>>
>> If you're restarting it daily, something like this should work:
>>
>> /var/db/mysql/[hostname]-bin.* mysql:mysql 660 25 * $D0 JBG
>> /var/db/mysql/[FQHN].pid
>>
>> Adjust the counts and the rotation schedule to your liking and, of course,
>> use your own hostname and fully qualified hostname.
Ummm... actually this is not a particularly good idea. MySQL keeps an internal
list of all the binlogs it has available, and doing this will break that. The
best method is to cron a script that will run eg.
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);
for whatever interval suits you. binlogs can absorb a lot of space for very
little return, especially on a busy server. There's really no point in keeping
binlogs from before the earliest full database dump in your backup cycle,
and even keeping that many is probably a little OTT for most purposes.
You are regularly dumping the database aren't you?
> Yes, in this particular case it can, not changing hostnames is a plus then (as
> in, getting hostname from your dhcp server) ;)
> Actually, I think you can use a fixed name, but it's been a while since I
> looked at the bin-log related variables.
>
> However if you're using the bin-log, to recover accidental deletes or
> replications, then you need to use the mysql provided SQL commands for it.
> It's scriptable (periodic/crontab), but not for use in newsyslog.
>
MySQL recommends that you use a fixed name for binary logs nowadays.
mysql-bin.NNNNNNN typically. The reasoning seems to be that it makes it
easier to deal with replication -- although relay logs are all still labeled
by the hostname of the master server.
Cheers,
Matthew
--
Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard
Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
Kent, CT11 9PW
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20080502/9bb90743/signature.pgp
More information about the freebsd-questions
mailing list