Category Archives: 数据库

Java Developer | Beijing

尽管北京的空气质量可能是全国最差的,但是毫无疑问,对于IT这个行业来说,北京也是机会最多的地区之一。 受朋友之托,发一个职位,有意者请直接邮件给负责人(可以说在RickyZhu的blog看到的,^_^) Java Developer – Common Platform Storage (Beijing) (Design, PL/SQL and app tuning) RESPONSIBILITIES: Work with a global team of developers and business professionals to: Design and develop next generation large scale data storage system within Service Oriented Architecture … Continue reading

Posted in 求职招聘 | Tagged , | Leave a comment

打开Oracle 10g的Real Application Testing功能

Oracle 自11gR1开始提供了一个极好的feature– Real Application Testing,又叫做数据库回放。可以通过内置于数据库中的捕捉功能从数据库层面把所有的业务操作录制下来,并拿到适当的环境进行回放。这个对于想要模拟实际生产环境的负载来说,实在是非常有用的特性。传统的在测试环境要想模拟生产负载一般通过挑选典型场景,使用测试工具(如LoadRunner或者JMeter)或者编码的形式准备好测试脚本,然后进行加压,耗时长而且误差不可估计。 RAT因为是内置于数据库本身,所有就具有与生俱来的优势了。 除此之外,对于数据库的升级,软硬件架构变化等等各种变化可能对数据库带来的影响,RAT也是极好的一个衡量手段。在老的系统上录制下来的工作负载,拿到变更后的环境进行回放,就可以很好的看出变更带来的差异,性能的提升或者衰减。 之前介绍过RAT的使用方法,今天主要介绍如何在老版本上打开RAT功能。 10.2.0.4之前的版本,需要打一个补丁,然后再运行必须的程序包进行激活。10.2.0.4之后的版本,因为本身已经具备了RAT功能,所以只需要修改一个数据库参数即可。(之所以这个参数从10.2.0.4开始才有是因为11gR1发布的时候10.2.0.4尚未发布,所以这个feature就被backport进去了)。 10.2.0.2或者更老的版本有一个特殊之处是补丁打完,捕捉的时候还会报错,现象就是: ERROR at line 1: ORA-04063: package body “SYS.DBMS_WORKLOAD_CAPTURE” has errors ORA-06508: PL/SQL: could not find program unit being called: “SYS.DBMS_WORKLOAD_CAPTURE” ORA-06512: at line 1 这个问题在bug#9094202中描述,这个bug可以通过替换之前版本的prvtawr.plb文件进行绕过。这个问题在10.2.0.3修复了。 P.S. 还有不到10个小时2012年就要结束了,今年太懒了,总共不到10篇博文,来年得好好反省反省。顺便祝本站的新老读者朋友新年开心! BTW:玛雅人的预测太不靠谱了!他们预言的世界末日那一刻,我刚好在客户现场解决刚才的这个bug,等到搞定之后,旁边的哥们告诉我,世界末日已经过了,我立时有种劫后余生的感觉!!

Posted in 数据库 | Tagged , | Leave a comment

分区索引的重新rebuild

数据仓库的场景中,在进行大数据量导入之前,通常的做法是先不建索引,因为这个过程中如果要维护索引,会大大降低导入的性能。那么如果在环境下索引已经建好而且不能删除的情况下,有什么好的办法可以绕过去? 在Oracle 11g中提供了不可用索引和不可视索引,今天主要介绍不可用索引,通过如下的SQL可以暂时使索引不可视: alter index “index name” unusable; 这样在使用之前,只需要在会话级别设置 alter session set skip_unusable_indexes=true 即可。 在使用完成之后,可以通过如下命令 alter index “index name” rebuild tablespace “tbs name”; 在把索引的状态进行恢复。 但是对于分区索引,这个时候就会报错,因为对于分区索引来说,不能通过简单的一句话就把所有的分区都重建,还必须要指定具体的分区来逐一进行重建。索引的分区就是表对应的分区,从视图dba_tab_partitions可以查到表的分区,然后通过如下的命令: alter index “index name” rebuild partition “partition name” tablespace “tbs name”; 即可。 EOF PS:使用了代码插件,没想到”“居然被当成了代码,没显示出来。

Posted in 数据库 | Tagged | Leave a comment

ODI connect DB2

今天下午花了老鼻子劲把Oracle Data Integrator (ODI)连接DB2给搞定了,感谢weilin和Henry,感谢北京的shuoji,上海的ricky等童鞋。 后来发现不是ODI的问题,而是DB2服务端的问题,在这个问题搞定之后,通过SQL Developer也可以连接成功了。 首先第一步是从DB2的安装文件中把驱动文件copy到ODI的目录,两个文件分别是: db2jcc.jar db2jcc_license_cu.jar 然后把这两个驱动文件放到ODI的driver文件目录: C:\Documents and Settings\< 用户名>\Application Data\odi\oracledi\userlib 或者目录是(~/.odi/oracledi/userlib,在Unix系统上) D:\Oracle\Middleware\Oracle_ODI1\oracledi\agent\drivers (odi home) 在ODI的物理技术中配置一个UDB DB2,然后使用Universal JDBC driver,详细配置如下: com.ibm.db2.jcc.DB2Driver jdbc:db2://:60000/ 问题就出在这里的端口60000,可是登陆到服务器发现60000端口根本没有监听。 netstat -an | grep 60000 无任何返回 确定db2是启动的,而且通过本地的db2 connect to dbname 是可以成功连接到实例和数据库。 检查了下db2的dbm也就是实例的配置参数,发现TCP的服务配置是空。 $db2 get … Continue reading

Posted in 数据库 | Tagged , | Leave a comment

Post rootupgrade.sh for 11gR2 upgrade

When you upgrade Grid Infrastructure from pre 11.2.0.3 to 11.2.0.3, after execute rootupgrade.sh and lost you OUI windows by incident says: first node reboot. You might be confused what was missed and need to do afterward. After rootupgrade.sh successfully executed … Continue reading

Posted in 数据库 | Tagged | Leave a comment

Oracle RAT介绍及最佳实践

Oracle Real Application Testing(简称RAT)是11g的一个重要的feature,其推出的初衷是为了满足数据中心变更后有很好的方法和工具去衡量这些变更对于生产环境的应用带来的影响,更好的评估诸如硬件升级,软件升级,架构变化等等对于客户应用程序的影响。 Real Application Testing其实有两个解决方法,分别是Database Replay和SPA(SQL Performance Analyzer)。 Database Replay,数据库回放顾名思义可以理解为一个录像机,通过在源系统上把实时应用产生的负载录制下来,并拿到变更后的环境进行播放,从而进行一个对比。数据库回放分为四个阶段完成:录制、预处理、回放、结果分析和报告。 SPA就是针对更细颗粒的SQL给出变更前后的执行结果,并进行分析和建议。SPA一般配合在数据库回放中进行使用。 下面重点介绍数据库回放中的四个步骤如何完成。 1. 录制(为了支持老版本的数据库,RAT提供了一个打开捕捉的开关参数,在10.2的环境也可以使用) 1.1 首先创建一个操作系统目录,用于存放录制的文件 1.2 在数据库中创建一个目录,用于跟OS的目录对应: create or replace directory “sample_cap_dirobj” as ‘/tmp/sample_cap_dir’; 1.3 设置捕捉的过滤条件,有时候我们需要限定只捕捉部分的工作负载,可以通过这个设置来达成: exec dbms_workload_capture.add_filter( ‘sample_cap_filter’, ‘‘, ‘[VALUE]’); 比如,只捕捉SCOTT用户的负载: exec dbms_workload_capture.add_filter(‘sample_cap_filter2’, ‘USER’, ‘SCOTT’); 1.4 … Continue reading

Posted in 数据库 | Tagged | 2 Comments

Oracle大师Thomas Kyte

这次来北京做项目,有幸遇到Oracle大师Thomas Kyte (就是asktom背后的那个的Tom大师)。 Tom大师这次的中国之行还包括北京和上海等地的巡回活动,详细可以参考ACOUG的网站介绍。 跟大师的合影(2012.2.20) Tom and Ricky

Posted in 数据库 | Leave a comment

Oracle Shenzhen Job List

下面是近期Oracle Shenzhen的职位列表,覆盖了销售,售前,销售顾问,研发等等。产品覆盖了应用,中间件和数据库产品。 有兴趣请发mail至 ricky[dot]zhu[at]gmail[dot]com所要详细JD。 如果对其他城市的职位感兴趣,也可以直接发简历到上述邮箱。 [2012年1月] ID209404: Solution Specialist SZ ID221076: System Sales Consultant SZ/GZ ID221903: Senior Sales Consultant – DB SZ/GZ ID217291: China Account manager – Huawei SZ/GZ ID209640: Huawei/ZTE Account Architect SZ/HK ID220137: Strategic Sales Manager – Huawei … Continue reading

Posted in 求职招聘 | Tagged | 5 Comments