OOW2009美国行:大会第四天

14号上午没有想听的session,就出去转了转。酒店和会场就在旧金山的购物大街Market Street旁边没多远的Howard Street,走过去几分钟就够了。Market Street街上很多名牌专卖店,我基本都是不懂的,再过去一点就是联合广场(Union Square),号称全美三大购物中心之一,看了看好像也没感觉有啥特别的地方的,把要买东西的几个店的地方摸清楚就回去吃午饭了。

第四天的重头戏,自然是拉里埃里森的演讲,据说加州州长,终结者阿诺施瓦辛格同学也会来捧场,更加的有噱头。所以下午2:45分才开始的keynote,而且前面一个小时还是infosys的CEO的预热场,结果吃饭午饭不久就开始排起来了长龙。因为不想排队,我和Fenng又出去转了一圈,打算等四点左右看能不能混进会场,事实证明是不可行的。没办法,我们只能在昨天听tom讲课的教室里看大屏幕直播。进去的时候埃里森正在不遗余力的推广Sun Oracle Database Machine(Exadata v2),PPT上甚至出现了大段大段的技术细节描述。

oow2009_27

埃里森在ppt里公布了Exadata V2的价格:
oow2009_26

讲到中途,拉里正在拿一千万悬赏跟IBM宣战呢,后面突然冒出几个人搬上讲台和凳子,施瓦辛格闪亮出场了。阿诺在演讲中大肆赞言了技术对加州的重要性,也顺带拍了下Oracle和Sun的马屁。曾经的终结者,如今的州长,世事变迁,岁月流转,一切皆有可能。演讲的最后,施瓦辛格开玩笑说请大家帮个忙,留在这就别走了,多花钱消费,加州需要你们的money,全场一片哄笑。施瓦辛格来去匆匆,一分钟都不耽误,演讲一完成立马跑路。然后拉里再接着之前的话题继续推销Exadata,也没说要尊重领导,要等领导先讲之类的。

oow2009_28

终于还是不死心,又听了Tom的最后一场《Effective PL/SQL》,这次近距离的拍了一场tom的特写。

oow2009_29

晚上Oracle在金银岛(Treasure Island)举办了一个盛大的party,请了四支乐队(Aerosmith,Roger Daltrey,The Wailers,THree Dog Night),准备了大量的游乐设施和食品,几万人的狂欢之夜。现场感受了Aerosmith乐队疯狂震撼的演出,真的是震耳欲聋,声嘶力竭。回到酒店已经凌晨一点了,所以blog也是今天补记的。

oow2009_30

oow2009_32

oow2009_31

于我而言,OOW2009到第四天就算是结束了,第五天已经没有和database相关的session了,正好可以趁机好好逛一下旧金山,顺带扫货回家咯。

OOW2009美国行:大会第三天

美国太平洋时间10月13日,中国北京时间10月14日,OOW2009时间第三日,雨。壬辰水箕破日,日值月破,大事不宜。

今天不再受东西部时差困扰,一觉睡到早上八点。拉开窗帘一看,旧金山笼罩在阴云细雨中,于是早上八点半开始的keynote就没有去听。熬到十点多,雨还是不停,只好冒雨跑到旁边不远的Moscone west的展厅,嗯,先到那里解决早餐的问题。昨天在展厅走马观花,没有细看,原来GoldenGate也有展台。
oow2009_18

在昨天的session中,了解到Sun Oracle Database Machine备份数据到磁带可以达到7.8TB/小时,刚好今天上午有个session讲关于database machine备份和恢复的,就去听了听。原来昨天的数据就是今天讲的一个测试环境测试出来的。
oow2009_19

听完还特意跑到keynote会场旁边放的五台Database Machine旁边给它们拍了一张特写。
oow2009_20

今天中午比较好运,找到一份有鸡肉的快餐,做为一个无肉不欢的DBA,这是一件值得庆幸的事情。昨天在Salesforce.com展台领了件T-shirt,结果收到邮件说今天下午一点他们有个session,前500位参加的送一台Flip HD camera。吃完饭看还差三十分钟就想去排队,结果队伍已经排到了外面大街上,雨还在稀里哗啦的下,我又没带雨伞,只好作罢。回头随便找了个session,《managing statistcs for optimal query performance》,实际上在这样的大会上听这种比较深入的技术课程是比较难听进去的。这个session的讲师是一位女士,非常风趣的利用扑克牌将课程讲得更加浅显易懂,这个ppt回去以后应当去找找,用来给新人做培训非常不错。
oow2009_21

接下来走了几个会场都没找到想听的,外面雨越来越大,就想打道回酒店休息。顺道去会场里的Oracle Book Store里转了一下,买了件印有Oracle Logo的抓绒外套,加税82刀多,还不打折,NND,肉痛。

使用Oracle正则表达式监控应用到数据库的连接情况

Oracle从10g开始支持正则表达式,在一些特殊的应用场景下,可以发挥超乎想象的便利。

通过v$session,可以监控应用服务器到数据库的连接的情况。假设应用服务器的名字都是有规律的,典型的如字母+数字+.+后缀的格式,例如app123.idc1表示位于idc1机房的app应用的123机器。当然,机器名的规则要根据具体的场景来分析得出,本文以上述规则来演示如何利用正则表达式来得到每组不同的应用服务器到数据库的连接情况。

对于数据库来说,可能有多组不同的应用服务器需要连接。典型的监控指标可以包括:每组应用服务器的机器数,每组应用服务器当前总的连接数,每组应用服务器中单台最大的连接数,每组应用服务器中单台最少的连接数。通过如下的sql语句,使用正则表达式,可以轻松获取上述四个指标:

select b.machine,
         count(*) machine_nums,
         b.cnt total_sessions,
         max(a.cnt) max_sessions,
         min(a.cnt) min_sessions
from
    (select machine,count(*) cnt
       from v$session
      group by machine) a,
    (select regexp_replace(regexp_replace(machine,'[0-9]','#'),'#+','#') machine,
            count(*) cnt
       from v$session
      group by  regexp_replace(regexp_replace(machine,'[0-9]','#'),'#+','#')
     ) b
where regexp_replace(regexp_replace(a.machine,'[0-9]','#'),'#+','#')=b.machine
group by b.machine,b.cnt
MACHINE        MACHINE_NUMS TOTAL_SESSIONS MAX_SESSIONS MIN_SESSIONS
--------------- ----------- -------------- ------------ ------------
db#.idc#                  1            22            22           22
test#.idc#                2            10             5            5
appa#.idc#               30           166            10            5
appb#.idc#               17            18             2            1

上面的sql中,使用了正则表达式函数REGEXP_REPLACE将数字替换成#,以方便对同组应用的机器进行分组统计。只要根据相应的规则进行修改,就可以适用到不同的场景。然后利用该sql固定时间如五分钟来采集数据,就可以得到趋势展示,绘成图形,直观的分析应用服务器到数据库的连接情况。

搭建Oracle11gR2 DataGuard

安装好两台Oracle11gR2后,简单的建了个测试库,然后搭建了一套物理备库。整个过程非常简单,和以前的版本也没多大区别。不过因为11g密码以及密码文件名大小写的问题折腾了一下。

按照以前9i和10g的文档,使用如下语句创建了passwordfile:

orapwd file=$ORACLE_HOME/dbs/orapwTEST password=pass entries=30

结果发现主库的归档一直无法传递到备库,报:

ORA-16191: Primary log shipping client not logged on standby

根据以前的经验,重新创建了住备库的password file,根据metalink,修改了sec_case_sensitive_logon参数为false,都不行。最后才发现,必须将passwordfile中的sid改成小写才行。

orapwd file=$ORACLE_HOME/dbs/orapwtest password=pass entries=30

Oracle11g,最吸引人的特性是Active Data Guard,也就是物理备库在open read only的同时,可以apply log。启用该特性非常简单,首先要确保compatible=11.0.0.0以上,然后在open read only的状态下执行recover managed standby database disconnect即可。开启该特性最好能同时开启实时日志应用,以减少主备库之间数据的延迟,所以在备库添加好standby logfile:

recover managed standby database cancel;

alter database open;

alter database add standby logfile group 10 ('/u01/oracle/oradata/test/stbredo01.dbf') size 100m reuse; 
alter database add standby logfile group 11 ('/u01/oracle/oradata/test/stbredo02.dbf') size 100m reuse;
alter database add standby logfile group 12 ('/u01/oracle/oradata/test/stbredo03.dbf') size 100m reuse;
alter database add standby logfile group 13 ('/u01/oracle/oradata/test/stbredo04.dbf') size 100m reuse;

然后将备库置于实时日志应用模式:

SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY

SQL> alter database recover managed standby database using current logfile disconnect; 
Database altered.

SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY WITH APPLY

在主库创建测试表并插入数据:

SQL> create table ningoo.test_table(i int);
Table created.

SQL> insert into ningoo.test_table values(1);
1 row created.

SQL> commit;
Commit complete.

SQL> alter system archive log current;
System altered.

在备库查询:

SQL> select * from ningoo.test_table;
         I
----------
         1

无觅相关文章插件,快速提升流量