MySQL InnoDB 备份与恢复

MySQL InnoDB 备份与恢复

MysqlDump

这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM。备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢复的时候直接导入即可。属于逻辑备份。

Copy Files拷贝文件

我们知道InnoDB底层存储的时候会将数据和元信息存在下列文件中:
ibdata*, *.ibd, *.frm, .ib_logfile,所以备份这些文件即可备份InnoDB的数据,另外别忘了将MySQL的配置文件my.cnf也一并备份起来。
如果my.cnf中开启了innodb_file_per_table那么InnoDB在存储的时候也会像MyISAM那样每一个表都会有相应的文件,你也可以只备份其中的某些文件(也就是表)。
注意copy这些files的时候,最好能确保InnoDB的所有事务都commit了。
比如你可以将MySQL暂时关闭掉,如果不能忍受一些down time的话,先不要考虑这种方式。
另外还可以先获取Table的read lock, 比如Lock Tables Customers READ.
你可以用show innodb status看看还有没有活动的事务没有commit。属于物理备份。

下面讲一下这种备份方式怎么恢复:

a. 停止任何关于这个表的写,lock tables customers write;

b. 删除这个表的空间,alter table customers discard tablespace;

c. 将你备份的.ibd文件拷贝到相应的目录下。

d. 重新建立表空间,alter table customers import tablespace;

e. 释放写锁,unlock tables customers;

ibbackup

这是一个商业化的工具,将你线上的my.cnf配置文件复制一份出来到比如说/etc/my.backup.cnf,更改里边的datadir等比如说到/data/backup,然后运行 ibbackup /etc/my.cnf /etc/my.backup.cnf, ibbackup就会讲my.cnf所指向的的数据内容备份到my.backup.cnf指向的数据目录。恢复的时候也很奇葩,因为你现在等于说是拥有了两个数据目录,所以你重新运行mysql,safe_mysqld --defaults-file=/etc/my.backup.cnf. 这种方式仅局限于你的数据库全部使用InnoDB存储引擎。

innobackup

如果你还有其它数据表用的是MyISAM,那么你可以使用innobackup,它不但会将InnoDB的相关文件备份起来,还会将MyISAM的比如MYI, MYD文件也备份起来。innobackup使用了ibbackup作为InnoDB的备份子工具。

MySQL Administrator

binary logs

需要开启log-bin, 所有的更新操作都会被写到binary file里。恢复的时候mysqlbinlog binlog_file | mysql,这种方式基本上可以用在在线备份上。属于逻辑备份。

XtraBackup

对InnoDB做数据备份的开源工具,支持在线热备,备份时不影响数据读写。属于物理备份。
项目地址https://github.com/percona/percona-xtrabackup,可以结合使用Innobackupex进行全备,xtrabackup进行增量备份。

个人觉得第一种,第二种和第六种和第七种都非常不错,各有自己的特点。第一种方式比较适合小型的数据库,由于是SQL,所以不仅可以跨存储引擎,还能跨不同的数据库,比如PostgreSQL。数据量稍大一些就可以用第二种方式了,由于是文件传输,所以效率就是文件传输的效率了。第六种方式将数据库本身与备份方式利用binlog进行解耦,既不会对在线数据库造成太大的overhead,而且因为所有的更新操作都在binlog里了,所以可以利用此数据做很多的事情。第七种方式比较特殊,结合了第三种和第四种,所以功能上比较强大,商业上可以选用。

Continue reading...

自己动手开发汇率转换 alfred workflows

用php实现的一个汇率转换 alfred workflows

源码:https://github.com/dcto/workflows_exchange

下载:https://github.com/dcto/workflows_exchange/releases

Continue reading...

取回SVN密码方法

用久了svn,有时候会忘记了svn的密码,但又不想重置密码,这时候就要从第三方工具入手了。

其中TSvnPwd是我用过最直接的取回svn密码的工具。

打开 http://www.leapbeyond.com/ric/TSvnPD/
下载后运行TSvnPwd.exe,在命令行窗口就会显示当前连接svn的账号和密码。

这是一个开源项目,有兴趣的同学可以下载他的Source看看

TSvnPwd.zip
TSvnPwd_source.zip

Continue reading...

据说,码农在美国的生活

硕士毕业IT码农一个,毕业工作1年零3个月,就职于美国某不知名小公司,年薪8W美刀。
8W是什么概念,多吗?好,放几个数据让大家分析分析,以下的全部以美元为单位。
一箱可乐(24罐):6 $
油价(国内93):3.45$/加仑 约 0.9$ / 升
手机话费:40$/月 无限通话短信流量 其中4GLTE网络流量为2G,超过后降为3G网络
一个阿迪达斯的书包:20 $
一双NIKE的Air Force 1板鞋;30 $
一条普通的levis牛仔裤:80 $
一部iPhone 5:600 $
一台苹果的mac pro基础配置:1200 $
一辆奥迪A6: 4W $
一辆路虎揽胜标配:6W $
一辆法拉利430:25W $
一套80平米的公寓:5w $
租一套80平米的公寓:900 $/月
一套200平米的单层别墅+同等面积的草坪:20w
一套N百平米的两层别墅+另外一栋两层单独的阁楼+1千平米的草坪:50w
美国白领平均3个月买车,3年买房,永久私人产权,房子地下就算有石油也是你的;
中国白领平均3年买车,30年买房,70年产权,地下的石油是ZF的;
好多人问我:你以后还回来吗? 你们说呢?

其它:
美国警察无权在大街上查人民的身份证件,即使怀疑你是非法移民也拿你没办法
警察无权入室查水表without搜查令,第一次你必须警告,第二次你可以开枪!
打电话报警后警察不来或者晚来你可以直接起诉警察局并获得巨额赔偿
任何ZF机构,银行,医院,在工作时间必须接待你,否则你可以起诉ZF并获得巨额赔偿。
ZF每年的每一笔财政支出都公布在网上,精确到小数点后两位。
乱停车会被直接拖走。
种族歧视是严重的违法行为。
打人后果很严重
个人的信用记录全社会共享,即使考试一个小小的作弊也会让你以后申不到信用卡,甚至租不到房子。
上大学以前全部是免费教育+每个月的生活补助
医疗保险赔偿90%,自愿购买

Continue reading...

一些实用的PHP公共开源的工具

swoole
swoole扩展了PHP很多新的特性,在未来开发游戏和PHP服务端的程序很有帮助

redis
redis是可以集群的高并发的内存缓存组件,需要多了解redis的使用场景
phpredis
rediska
predis
以上三个是php使用redis的客户端,需要了解每个客户端的并发,性能

memcache
key-value的高效内存存储

sphinx
全文检索系统

symfony
目前我们各个项目使用的开源PHP框架,需要掌握可以自定义的方法,性能优化,组件开发的相关知识

siege
ab
简单的测试工具,在进行接口压力测试时使用

xdebug
PHP代码断点和性能分析的扩展

twemproxy
codis
dynomite
以上三个是目前比较流行的redis代理组件,需要掌握每个组件的性能,调优,以及和PHP结合使用

zeromq
高性能的消息队列,具有多种协议

mysqlnd_ms
一个自动化的mysql读写分离的扩展

Continue reading...



about me

  • 陶之11's Blog Name:陶之11 OICQ:14779023 Site:Pao11.com

分类

快捷入口