generic cialisgeneric viagraHow to use asmca to create ASM instance silently in Oracle 11gR2

对于只能登录字符界面的很多服务器而言,能够使用silent模式创建一些组件是至关重要的。本文介绍如何在字符界面下使用asmca来创建ASM实例。

测试环境:Oracle 11.2.0.3 + Oracle Restart 【关于Oracle Restat,可以参看我之前的文章-buy cheap levitraorder cialis onlineHow to Use Oracle Restart in Oracle 11gR2

在没有创建ASM实例之前,Clusterware中的资源状况如下:

grid@solaris:~$ ct
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER_SOLARIS.lsnr
               ONLINE  ONLINE       solaris                                      
ora.ons
               OFFLINE OFFLINE      solaris                                      
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        OFFLINE OFFLINE                                                   
ora.diskmon
      1        OFFLINE OFFLINE                                                   
ora.evmd
      1        ONLINE  ONLINE       solaris                                      
ora.orcl.db
      1        ONLINE  ONLINE       solaris                  Open

通过如下命令用gird用户创建ASM实例。

asmca -silent -configureASM -sysAsmPassword oracle -asmsnmpPassword oracle -diskString '/asmdisks/vdisk*' -diskGroupName DATADG -disk '/asmdisks/vdisk1' -redundancy EXTERNAL

-silent:表示静默模式,这在字符界面中至关重要。
-configureASM:表示本命令是用于配置ASM实例,如果ASM实例不存在,则会新建。
-sysAsmPassword:sysasm权限用户的密码。
-asmsnmpPassword:asmsnmp权限用户的密码。如果用过asmca图形界面的应该记得这两个密码在图形界面中都是需要输入的。
-diskString:ASM磁盘组的磁盘发现路径。
-diskGroupName:需要新建的磁盘组名称。
-disk:ASM磁盘名称。
-redundancy:磁盘冗余方式,本例中使用了外部冗余。

会有大量的屏幕输出,但是最后显示如下行表示命令成功完成。

ASM created and started successfully.
 
Disk Group DATADG created successfully.

再次检查Clusterware的资源状况,可以看到已经增加了ASM资源,并且已经正常启动。

grid@solaris:~$ ct
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER_SOLARIS.lsnr
               ONLINE  ONLINE       solaris                                      
ora.asm
               ONLINE  ONLINE       solaris                  Started             
ora.ons
               OFFLINE OFFLINE      solaris                                      
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       solaris                                      
ora.diskmon
      1        OFFLINE OFFLINE                                                   
ora.evmd
      1        ONLINE  ONLINE       solaris                                      
ora.orcl.db
      1        ONLINE  ONLINE       solaris                  Open

查看ASM磁盘组状况。

ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576       976      917                0             917              0             N  DATADG/

接下来增加一个磁盘到该磁盘组中,同样通过asmca来完成,当然这个操作也可以用SQL*Plus中的alter diskgroup命令来完成。

asmca -silent -addDisk -diskGroupName DATADG -disk '/asmdisks/vdisk2' -sysAsmPassword oracle

同样会有大量输出,最后显示如下行表示操作完成。

Disks added successfully to disk group DATADG

再次检查ASM磁盘组状况。可以看到磁盘组容量已经扩充。

ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576      1952     1891                0            1891              0             N  DATADG/

如果想获得asmca的帮助,可以通过以下命令。

asmca -help

How to use iperf to test network bandwith

测试Linux机器之间的网络互联带宽,有一个很简单的工具,iperf

下载的是源码,编译过程如下:

./configure
make
make install

安装完毕以后,iperf的路径:

# which iperf
/usr/local/bin/iperf

然后在需要测试的两台Linux机器上,一台启动服务器模式。

# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

另外一台启动客户端模式,其中IP地址为启动服务器模式的机器的IP,稍等片刻,即可出现测试结果。

# iperf -c 192.168.0.19
------------------------------------------------------------
Client connecting to 192.168.0.19, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.18 port 16265 connected with 192.168.0.19 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   114 MBytes  95.5 Mbits/sec

同时,启动服务器模式的机器上也会显示:

[  4] local 192.168.0.19 port 5001 connected with 192.168.0.18 port 16265
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec   114 MBytes  94.9 Mbits/sec

可知,这两台机器之间的互联带宽仅仅达到百兆网的速度。

How to resolve ORA-19706 error when select from dblink

由于通过database link进行远程数据库的数据读取时,会自动同步当前库和远程库的SCN,老杨在文章中做过描述,并且提到:

而对于实际环境中,SCN的增加可能是几倍、几十倍甚至是上百倍,从而引发一些其他的bug。

下面就来看一个问题。

--通过dblink进行简单的查询报ORA-19706错误
SQL> SELECT sysdate FROM dual@AIX12;
 
SELECT sysdate FROM dual@AIX12
 
ORA-19706: invalid SCN
 
--登录远程库,检查SCN,很大的一个数字
SQL> SELECT current_scn FROM v$database; 
 
CURRENT_SCN
-----------
12763142641
 
--而当前库,由于新创建,所以SCN并不大,与远程库想比相差几个数量级
SQL> SELECT current_scn FROM v$database;
 
CURRENT_SCN
-----------
    5017684

看一下ORA-19706错误的解释。可以看到too large是产生该问题的原因之一。

$oerr ora 19706
19706, 00000, "invalid SCN"
// *Cause:  The input SCN is either not a positive integer or too large.
// *Action: Check the input SCN and make sure it is a valid SCN.

SCN是一个可以容纳很长时间的数字,为什么会出现too large的情况呢?这是由于SCN有headroom限制的原因,headroom是慢慢扩大的,当突然的请求超过SCN headroom的最大值,则会出现ORA-19706错误,详细的解释可以参看MOS Note – System Change Number (SCN), Headroom, Security and Patch Information [ID 1376995.1]。

解决方法:
设置隐含参数_external_scn_rejection_threshold_hours,具体解释可以参看:
MOS Note – Installing, Executing and Interpreting output from the “scnhealthcheck.sql” script [ID 1393363.1]。

该参数在10.2.0.5中默认是744,设置为24即可解决问题。

SQL> ALTER system SET "_external_scn_rejection_threshold_hours"=24 scope=spfile;

Expert Oracle Exadata译者序

从去年8月份到现在,我跟KayaJacky合译的《Expert Oracle Exadata》,如果不出意外,应该可以在5月底出版。在出版以后,计划以ACOUG的名义和博文视点联合举办一些现场的发布活动,目前还在筹划中。

我个人从这本书的翻译中获益良多,甚至在最近的这次大数据量、短停机时间的数据库迁移项目中就开始使用书中介绍的Exadata迁移方法,虽然我的这个项目并没有Exadata,但是仍然可以从书中描述的通用的迁移解决方案和优化手段中得到启发。所以,我想无论是不是在使用Exadata,这本书都值得期待。下面是为我的译者序。

译者序-Kamus

这本书的翻译计划是从2011年8月份开始的,据我所知,最早是博文视点的编辑“侠少”找到阿里巴巴的张瑞(Jacky)和甲骨文的黄凯耀(Kaya),然后Jacky再找到我。

实际上,我个人开始想要翻译这本Exadata技术书籍倒是从更早的时候就开始了,这本书在Amazon上的发行日期是2011年8月9日,其实早在2011年2月份已经有另外一本关于Exadata性能的书籍(Achieving Extreme Performance with Oracle Exadata,作者全部是Oracle公司员工),但是论作者的知名度,仍然是本书更受人关注。最早知道这本书是从本书联合作者Tanel Poder的个人技术Blog中,那是2011年3月份,Tanel发文说已经可以Apress网站上购买新书的Alpha版本,Tanel是全球最受人尊重的Oracle技术专家之一,而一本技术书籍可以预先购买Alpha版本也是很稀奇的事情,再加上Exadata正是当今IT界的当红炸子鸡,理所当然这本书非常值得期待。在2011年4月份,我个人跟某出版社联系过,表达了如果该书可以引进中国,那么我很愿意组织人手进行翻译的工作,对方的回复是正在谈版权,之后没有消息。然后,Tanel在6月份发文说,本书已经即将定稿,再之后,就是8月份,该书正式发售。而在正式发售的当月,博文视点就开始寻找中文版本的译者,可以说是非常迅速。而版权的猜测,那一定是博文视点拿到了版权,而某出版社失利了。:-D

以上的情况,让我收到Jacky的邀请以后,毫不犹豫地接受了工作,无论工作如何繁忙,我都愿意这本书的中文翻译者里有我的名字,这对于我而言可以说是一种荣幸。2011年8月17日收到这本书的PDF电子版(当然后来又收到纸质版),从8月份开始,Kaya,Jacky和我都迅速地投入了翻译的工作,在整个过程中,通过不断地沟通,我们按照每个人的经验和对各个章节的熟悉程度以及感兴趣程度,大致是均分了各个章节。我负责翻译的章节是一、二、四、六、十三、十六章,原本我给自己定下的计划是每两周翻译一章,那么最快可以在2个月内完成翻译,再加上校稿,本来计划在3个月内可以完成所有的翻译,也就是如果一切顺利,这本书的中文译本应该在2011年年底的时候就跟大家见面了。但是,计划永远是赶不上变化的,除了工作的繁忙和个人的懒惰,我们几个译者还都在其它方面出现了这样那样的意外情况,导致整个翻译工作整体滞后。所幸,还不算太迟,我想在你们看到本书的时候,这个世界上应该还没有更新的Exadata书籍可以参考。所以,这本书仍然是迄今为止想要了解Exadata,想要使用Exadata,想要监控调整Exadata的最佳参考书籍。

Oracle Exadata的举世独步,对整个数据库硬件/软件市场的震撼,在全球或者仅仅是中国国内的引人瞩目,乃至热销,这已经无需赘言。作为数据库从业者,也许你没有听过Netezza,也许你没有听过Twinfin,也许你没有听过Hana,但是你一定听过Exadata,这绝不仅仅是由于Oracle公司一贯的好战、勇于进攻、大力宣传的风格,而是Exadata确实具有独步天下的功能。也许我们不能说在经过最精细地调整以后,Exadata在数据仓库领域与其它竞争对手相比一定具有绝对的优势,但是,不要忘记,在现在这个世界里,又有多少是纯粹的数据仓库系统呢?又有多少用户愿意OLTP用一套系统而数据仓库又用另外一套系统呢?这其中的数据传输开销和系统设计复杂性的开销,如果能够消减甚至是避免,那么又何乐而不为呢?Exadata正是这样的一套软硬件一体的平台,同时支持OLTP类型负载和数据仓库类型负载,通过Oracle Database 11gR2中的资源管理器来更加精细地调控硬件资源,让两种类型的负载都能获得各自需要的资源,并顺畅执行。

如果我们抛却Exadata在存储节点中的软件特性,它使用的各个硬件组件并不是划时代的,无论是Infiniband还是Flashcache/SSD,都已经出现了很久,在企业级市场中也被很多用户在使用了,但是将这些组件放在一起,并且预先调整为一个平衡的系统(没有任何一处明显的性能瓶颈),这是划时代的。Oracle将软硬一体机的概念推广到了开放性平台上,极大地挑战了Teradata的市场,用开放性的硬件+开放性的操作系统+开放性的数据库软件,构造出了一个平衡的,性能超强的平台,这同样是划时代的。

好吧,前面我们提到了“抛却Exadata在存储节点中的软件特性”是吗?这就好比我们说,把皇冠上最闪亮的那颗宝石先摘下来,别闪花了我们的眼睛。现在,我们要把这颗宝石放回去了,智能扫描(Smart Scan),存储索引(Storage Index),混合列压缩(Hybrid Columnar Compression),无论哪一项软件特性都足以震撼数据处理市场,而当他们结合在一起,配合上Oracle Database原本就具有的高性能,再配合前面说的这个平衡的硬件架构,我们就得到了足以颠覆一切固有理念的惊人性能。在Exadata的POC现场,有客户因为实在无法接受Exadata展示出来的飞一般的速度而怀疑Oracle的技术人员在造假。这在无奈的同时无疑也是一种自豪吧。

Exadata的出现,颠覆了一些我们既有的数据库管理理念,但是无论如何,Exadata中运行的是Oracle Enterprise Linux(当然也有Solaris,不过是x86-64版本,至少到目前为止,Oracle还没有计划显示会出现SPARC平台上的Exadata),Linux上运行的是Oracle Database 11gR2,对于所有数据库技术从业者来说,之前积累的操作系统管理知识,Oracle数据库/RAC管理知识都仍然适用。我们需要的只是与时俱进,将Exadata的特有知识点加入我们以前的知识体系中。本书是最佳的入手点,因为本书中不但有Exadata的特性阐述,也同样有使用经验和最佳实践。要知道本书的作者都是真正的Exadata使用者,而本书的Review者(Kevin)更是Exadata的性能架构师(不过,Kevin现在已经离开Oracle公司,加盟EMC,去玩Greenplum了)。

我唯一希望的是,大家在读这本中文译本的时候,不至于产生去重新阅读原著的冲动(虽然,我仍然建议大家去阅读原著),因为如果那样,那只能表示我们的翻译实在是很不适合中文读者的理解。如果你觉得本书优秀,那么基本上可以说这是原作者的功劳,当然,我也希望你们看到我们三位译者的努力。我们在翻译完各自的章节以后,又互相审阅了其他人的章节,我们尽量斟酌每一句话的翻译,希望读起来是符合中文阅读习惯的,对于一些比较难于理解的片段(比如Kevin说的某些话),我们通过邮件跟作者进行了沟通以确保译文是正确体现了作者意图的,对于一些原文较为晦涩的地方,我们也根据自己的理解增加了“译者注”,我相信这也是目前大多数技术书籍的译文中并不常见的,我们甚至在想,如果译者注足够多,那么就可以出一本批注版的书籍了(:-D)。这其中由于Kaya在Exadata中的实战经验尤为丰富,更是付出了格外的精力。你们现在看到的这本Expert Oracle Exadata中文版,应该是全球的最新版本,因为在我们的翻译过程中,不但将本书英文版出版以后提交给作者的错误修订全部都更正到本书中,而且我们还在翻译过程中发现了更多的错误,Kaya通过邮件直接跟三位作者沟通并一一确认,最终对于确实是错误的描述也都全部作了更正。实际上,这也是本书推迟到现在才出版的原因之一。

就在今天,我重新审阅完了自己翻译的第6章,回顾了一下从2011年8月份开始,我们三位译者和博文视点的侠少关于翻译本书的邮件沟通,来来回回将近300封邮件,我相信在本书中文版最终定稿的时候,沟通邮件量一定会超过300封(实际上最终的沟通邮件将近500封)。我们扪心自问,已经尽了自己最大的努力,但是一定还会有这样那样的不足,还望读者海涵。

最后,我要感谢我的妻子和可爱的儿子,在我工作之余的很多个深夜,我仍然在翻译此书,是我的妻子极大地包容了我,没有她的支持,没有她承担的几乎全部家务,和对于我们年仅1岁多的儿子的照料,也许我的翻译进度还会拖后。谢谢你,我爱你们。感谢Kaya,Jacky,还有博文视点的侠少,与你们关于本书翻译讨论的500封邮件是宝贵的财富。感谢我的大学师妹-董楠,她是《老美国志异》、《此地无人生还》、《满是镜子的房间》三本畅销书籍的译者,喜欢摇滚的朋友应该热爱这几本书籍,本书某些段落的措辞有得到她的指教。另外,我同样要感谢我所在的公司-云和恩墨的多位同事,是你们帮我承担了由于翻译工作而拉下的本应属于我的工作,感谢杨廷琨(老杨同时帮助审阅了本书的第一章),感谢盖国强。还有帮助我审阅中文译稿的同事们,仇实、刘洋、余广宏、董禹、宋春风,译稿里面也有你们的功劳,谢谢你们。

2012年2月29日
张乐奕(Kamus)于上岛咖啡,北京。

Vim – Amazing Editor for DBAs

每周五下午公司的技术分享日活动名称为-恩墨讲武堂,已经持续了很长时间。所有人都有机会站上讲台,明天我分享的主题是Vim使用技巧。下面是即将使用的幻灯片。光看幻灯片可能比较枯燥,因为都是命令的罗列,但是现场演示效果一定很棒。

无论你是在用Mac OS X还是Windows还是Linux,Vim都是你的选择。
如果上面的命令里,你有50%几乎没有用过的话,你应该再去好好研究一下Vim了。
如果你越过了一开始学习Vim时候的那道并不算陡峭的屏障,熟悉了Vim之后,你会发现这是一个让人惊艳的具有无尽可能的编辑器,让UltraEdit? TextWrangler? EditPlus? 见鬼去吧。

在Slideshare中还有另外一篇很不错的Vi/Vim的幻灯片,有兴趣也可以看看。

Vim
View more PowerPoint from alkeshv