速度与激情5 — All is Team

May 23rd, 2011 no comment

今天终于去看了《速度与激情5》,村里的美嘉欢乐影城好久没去,四号厅感觉一般。 Toretto的团队领导力从《速1》,《速2》,《速4》到这部都表现的淋漓尽致,要是放在正常社会里,这哥一定是个nb的Team Leader。下面就说说这哥。

使用文件系统snapshot做数据库归档备份

May 12th, 2011 no comment
lvm

昨天下午的技术讨论会上说到了数据库的按时间点的进行实时备份和归档,当时的讨论都是基于日志如何来做。 这个问题需要做到以下几点: 因备份而引起的中断数据库服务的时间尽可能短; 能够迅速的让数据库使用备份的数据rollback; 归档的备份数据能在专门的备份机统一保存,方便本机失效后的处理; 如果可能,归档备份的数据能做到增量备份,以节省备份机的磁盘空间,同时方便快速传输。 从数据库本身解决这个问题,可能受困于已有的数据库设计和代码,不非常容易。换个思路,可以基于fs的snapshot来做。 在*nix系统下功能最强的snapshot首推zfs,本身支持文件系统快照,支持增量备份,并内置了zfs send工具能直接把备份快照、或增量备份快照发送到另外一台物理机器上(也必须是zfs)。但必须使用FreeBSD 8以上或者是 OpenSolaris。但是由于公司的机器都是GNU/Linux的,退而求其次选择LVM。 在家里的E8200 + Debian 6.0.0 i386系统上做了测试,首先是使用lvm创建分区,创建了一个名为main的60GB大小的Volume Group,同时在里面建立了一个名为main0的10GB的Logical Volume挂载“/”,并格式化为ext3。 拷入6GB的数据文件,然后创建snapshot: # lvcreate -s -L 7G -n snap-`date +%Y%m%d%H` /dev/main/main0 这一步消耗时间只有0.5s左右,而且测试了拷入20GB的数据文件,snapshot时间基本无变化,详细看截图: 然后在/dev/main/下新加入了snap-`date +%Y%m%d%H` LVM逻辑卷,可以挂载此snapshot分区: # mount /dev/main/snap-`date +%Y%m%d%H` ~/backup 随后就可以tar成gzip包,然后rsync集中保存了。 删除snapshot: # umount -f ~/backup# lvremove /dev/main/snap-`date +%Y%m%d%H` 对于数据库的操作来说,拿MySQL举例: # mysql –uroot –p -h localhost mysql> flush […]

FreeBSD在线开启ipfw

May 10th, 2011 no comment

在FreeBSD 7.1 amd64版下,由于默认的内核编译选项没有并加入以下内容: options IPFIREWALL options IPFIREWALL_DEFAULT_TO_ACCEPT 所以在启用ipfw的时候,会启用默认禁止的全部连接的规则,那么直接的后果是把ssh的连接踢下线,并切断外界到这个服务器一切端口的连接请求。 解决方案,在启用ipfw后,马上加入一条允许所有请求的规则: kldload ipfw && ipfw add 65534 allow ip from any to any 另外需要注意一点:绝对禁止使用/sbin/ipfw -q -f flush,会导致把上面这条手动添加的开放规则删除! 同时,如果想在重启后ipfw也开启生效,那么需要这样做: 在/etc/rc.conf里加入: firewall_enable=”YES” firewall_script=”/etc/firewall.sh” 同时/etc/firewall.sh的内容是 #!/bin/sh /sbin/ipfw -q -f flush /sbin/ipfw add 65534 allow ip from any to any 同时自定义的ipfw规则也可以向/etc/firewall.sh中添加,比如阻止118.215.66.135到本机80端口的连接,那么加入 /sbin/ipfw add 1 deny ip from 124.193.167.1 to any dst-port […]

macports安装db46的jni.h No such file or directory问题解决

May 1st, 2011 no comment

最近在我macbook上安装mercurial和git一直报错,而且都是在安装db46的时候,今天放假实在忍不了了,追了一下日志发现是jni.h头文件找不到:   :info:build /usr/bin/gcc-4.2 -c -I. -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -pipe -O2 -arch x86_64 -fno-strict-aliasing ../dist/../libdb_java/db_java_wrap.c -fno-common -DPIC -o .libs/db_java_wrap.o :info:build ../dist/../libdb_java/db_java_wrap.c:123:17: error: jni.h: No such file or directory   这下简单了就是java的开发包需要update一下,于是在此下载最新的 Java for Mac OS X 10.6 Update 4 Developer Package Download 安装,问题解决。