mysql备份及恢复相关学习
sshong 发表于2013年4月11日 16:56:59 更新于2013年4月11日 17:02:36
前天update执行了条语句,忘了写where,导致整个表数据都废了,还好是dev环境,后来是人肉到qa环境的数据库去拷贝过来的的,吓出一身冷汗,这两天整理学写了下mysql的备份以及恢复的知识:

1、mysqlbinlog日志
mysqlbinlog首先要在my.ini中开启,如log-bin=mysql-bin,会在data目录下生成对应的如mysql-bin.000001、mysql-bin.000002等等文件,一般是每次重启mysql或者手动flush logs就会生成一个日志文件。
日志文件中记录了每一次对数据库有实质影响的操作,如insert、update等。每次操作都记录有一个position、timestamp,可以用mysqlbinlog来查看对应的日志文件内容。如:

-- 不加no-defaults,会报charset啥的错误
mysqlbinlog --no-defaults ..\data\mysql-bin.000004
# at 4116
#130411 16:24:23 server id 1  end_log_pos 4217  Query   thread_id=210   exec_time=0     error_code=0
SET TIMESTAMP=1365668663;
insert into test2 (test) value ('ttt');

binlog只是日志,不算是备份,所谓用binlog来恢复,也只是将你从start-position(start-datetime)到stop-position(stop-datetime)之间的语句重新运行一遍!
所以对一些简单的情况或许可以恢复,但是对于复杂的操作还是很难恢复!

因此,备份才是王道!!

2、备份特定的一些数据
select into outfile以及load data infile命令(导出数据文件、恢复数据文件)。

select name,age into outfile 'c://t.txt' from test;
load data infile 'c://t.txt' into table test(name, age) set time=CURRENT_TIMESTAMP;

3、mysqlhotcopy(只支持myisam格式表)
这玩意其实就是拷贝data目录下的*.frm、*.MYD和*.MYI文件。你也可以手动拷贝这些文件到新的位置进行备份。

4、mysqldump
通常用来整数据库备份,转存为sql文件。
-- 备份test数据库:
mysqldump test > backup.sql -u root -p
-- 备份test数据库的表user:
mysqldump test user > backup.sql -u root -p
-- 备份test、wordpress两个数据库:
mysqldump --database test wordpress > backup.sql -u root -p
有了sql文件,下次恢复时,
-- 登陆mysql:
mysql -u root -p
-- 如果只导出了某一个数据库或者某几个表,则:
mysql> use 数据库名;
-- 导入sql:
mysql> source backup.sql;

5、mysqldump与binlog结合进行增量备份
每次都进行mysqldump完整备份是很蛋疼的一件事,因此可以在mysqldump完整备份时,刷新一下binlog,并且记录下当前备份时的position,这样恢复时就可以先恢复dump的sql文件,然后用mysqlbinlog运行position之后的所有的改变语句。
运行mysqldump,加几个参数,用于刷新生成binlog,同时将position信息输出到生成的sql文件中:
mysqldump --flush-logs --master-data=2 test > test.sql -u root -p

这样会看到生成的sql中有如下信息:
--
-- Position to start replication or point-in-time recovery from
--

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=98;
标签:无分类:PHP阅读:2641
评论
暂无评论
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅