首页 | 摘要显示 | 上一页 1 2 3 4 5 6 7 8 9 10 11

Developer Archives

August 2, 2008

DSG产品技术基础猜想

    不考虑技术成熟度, 及100%的数据准确性, 逻辑备份数据库是灾备的最佳方案, 只不过目前这方面技术在稳定性和性能上还有未解决的问题. 许多公司在做这样的产品, DSG也是其中之一. 今天听了DSG的产品介绍后, 猜想了他们产品的技术基础.

    Realsync产品是用来建逻辑备份数据库的, 这种方法是好方法, 但产品的成熟程度及性能要做好是不容易的. SharePlex和GoldenGate的起步比DSG早, 但在金融行业这样要求数据绝对不能出错的领域, 要在主要的数据库上依赖他们, 也还是不太敢的.

    SnapAssure是用来制作增量备份的工具, 和Oracle 10g中的RMAN Block Tracking文件类似, 找出变化过的数据块, 只对这些块进行备份, 以节约备份时间和空间, 思路很不错. 不知道我猜的技术基础对不对?按照我想的那样也能实现.

    XEXP是一个快速数据迁移工具, 类似于10g中的expdp/impdp这样的产品, 同传统的exp/imp相比, 性能可以提升很多. 但仔细想想, 不是很敢用. 对于很忙的数据库, 我想不容易保证事务性, 有了AUL的基础, 再加上一些回滚段的研究就行了, 可以从备库那儿, 以比exp快的速度生成事务一致的数据导出了.

    阿里巴巴集团内部完全具备了研究这些的技术基础, 需要考虑的是做这些产品的前景, 需要的时间及资源.

August 5, 2008

WebChart监控系统

    作为DBA这样的后台运维护人员, 需要监控很多东西, 除了数据库及主机的健康状况之外, 更重要的是一些业务信息的监控. 平台不是重要的, 最重要的是先有内容, 下面就是一个用WebChart画出来的业务数据图, 可以看到在早上2点前后的10分钟业务量有一个突然下降, 等会上班后就可以去问原因了.

    很多网站应用都做成分布式的, 监控的内容还可以扩展到接口的调用, 及消息系统中消息的进入和处理量等.

    监控的目的是为了帮助我们及时注意到发生的事情, 并为之找出合理的解释.

August 28, 2008

安装Perl AIX-Perfstat-0.03

    昨天在AIX上安装AIX::Perfstat包时, 遇到了一点小问题, 下载并运行如下命令后, 报了一点错.

perl Makefile.PL
make

    报的错误是找不到cpu.o, memory.o等目标文件, 所以不能link成可执行文件, 这时可以修改Makefile.PL或生成好的Makefile.

Makefile.PL:
  OBJECT            => '$(O_FILES) cpu.o disk.o netinterface.o memory.o'
Makefile:
  OBJECT = $(O_FILES) cpu$(OBJ_EXT) disk$(OBJ_EXT) netinterface$(OBJ_EXT) memory$(OBJ_EXT)

    这样改了后, 编译是通过了, 但跑如下测试代码时, 却报错了.

#!/home/oracle/dbaperl/bin/perl -w
#
use AIX::Perfstat;

my $cpu=AIX::Perfstat::cpu_total();

print($cpu->{'processorHZ'},"\n");

    错误信息如下.

Can't find 'boot_AIX__Perfstat' symbol in ..../Perfstat.so
at .../Perfstat.pm line 38
Compilation failed in require at ./test.pl line 3.
BEGIN failed--compilation aborted at ./test.pl line 3.

    最后原因是编译时, 默认用了/usr/local/lib目录下的库文件, 用/usr/lib目录下的就行了, 再改一次Makefile就可以了.

LDDLFLAGS =  ... -L/usr/lib

    改完了之后, 就可以跑测试代码了, 可以得到CPU的频率了.

[oracle@test:/home/oracle] ./test.pl
1656376000

    接下来就是要研究如何使用这个包, 来编写监控系统性能的脚本了.

Perl AIX-Perfstat-0.03编程

    AIX Perfstat提供了一个访问主机性能数据的接口, 可以参考libperfstat.hAPI接口文档来了解. 在AIX-Perfstat接口中, 每一个API调用都返回一个hash. 先是了解一下, 这个接口提供了那些数据.

    cpu_total

processorHZ  lwrite  sysexec  phwrite  phread    idle
lread    ncpus_cfg  bwrite  sysread  writech  syswrite 
user  runque devintrs  pswitch sysfork  swpque  sys     
softintrs  syscall  readch  bread  ncpus  description
loadavg wait lbolt

    memory_total

numperm    real_free  pgsp_rsvd  pgexct  real_inuse
pgsp_free  real_pinned pgspins    pgouts  pgspouts
pgsp_total real_total  cycles      scans    pgins
pgsteals  pgbad      virt_total

    disk_total

free  number  time  wblks  rblks  xrate  xfers  size

    netinterface_total

oerrors  number  collisions  opackets  ibytes  obytes
ipackets ierrors

    在AIX 5.3上面, 用C的接口的话可以看到更多的数据, 说明这个接口有些偏老了, 有空时改改.

上一页 1 2 3 4 5 6 7 8 9 10 11

当前分类: Developer

Creative Commons License
本站版权: 共用创作 CC
署名-非商业性-相同方式分享
本站基于MT-3.36免费版
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql