比较两个环境, 比如测试A和测试B, 或测试环境和正式环境之间的表结构差异, 是件很麻烦的事, 如果有成千上百的表, 可能会相当地耗时, 花个一两天也是有的. 正是因为不想花这么长的时间去做麻烦的事, 就偷懒地写了ocidiff这个表结构比较和自动同步程序.

    一位51job的DBA朋友正好面临同样的问题, 我就推荐了这个程序给他. 早上正式使用后, 回馈说程序运行相当的快速和准确, 几分钟内完成手工几个小时才能完成的事, 并给出可读性很好很清晰的比较报告, 因此决定作为正式工具在公司内部使用, 以大大的减少了DBA在这类琐事上无谓的时间消耗. 每年年初他们网站的流都要上升个几倍, 因此需要花更多的时间面对负荷的上升, 就不能花太多的时间在手工比较表结构这种事上面. 这个角本再加上良好的SQL编写习惯, 可以防止某些低级错误.

    这个工具是命令行的OCI程序, 做成命令行是为了更适合在OS上进行作业调度, 这一点虽不为大众所喜欢, 但却是很实用的. 这是一个三年前开发的工具, 已经成熟稳重了, 并且和人工处理相比, 它的结果更加准确. ocidiff是点对点的比较, 另一个工具(Compare Any Column)则可以进行多点之间的比较, 比较方式更加灵活.

    作为一个很偷懒的DBA, 有好几个用来偷懒的角本. 不偷懒的DBA不是好DBA, 不是指不做事的, 是指在做事中相办法偷时间的.