More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  blue_princePhotosProfileFriendsMore Tools Explore the Spaces community

blue_prince

June 13

RAC:Write-to-Read Transfer

The behavior of the write-to-read transfer is determined by the _FAIRNESS_THRESHOLD parameter,which was introduced in Oracle 8.1.5 and defaults to 4. Prior to the introduction of this parameter,when Instance A held a block in exclusive mode and Instance B requested a read-only copy of that block, Instance A would downgrade its exclusive lock to a shared lock and send the block to Instance B,which would also set a shared lock on the block. However, if Instance A is performing frequent updates
on the block, it will need to reacquire the block and set an exclusive lock again. If this process is repeated frequently, then Instance A will be continually interrupted, as it has to downgrade the exclusive lock to a shared lock and wait until Instance B has finished reading the block before it can convert the shared lock back into an exclusive lock.
The _FAIRNESS_THRESHOLD parameter modifies this behavior. When this parameter is set,Instance A will no longer downgrade the exclusive lock. Instead, it sends a null lock to Instance B,and then it can continue processing. However, if instance B requests the block _FAIRNESS_THRESHOLD times, by default 4, then Instance A will revert to the original behavior—it will downgrade the exclusive lock to a shared lock and ship the block to Instance B, which will also set a shared lock on the block.

From:Pro Database 10g RAC on Linux

 

June 12

RAC建库时报ASM单实例错误的解决办法

       安装好RAC后,在用DBCA建库时选择ASM做为存储方案时,有时候会报错说ASM是单实例环境,不是RAC环境,这样就无法继续建库下来,出错信息如下:
 
The ASM instance configured on the local node is a single-instance ASM.To create a single-instance database using this ASM instance ,restart DBCA and select the single-instance database option ,to create a RAC database using this ASM instance,convert it to RAC ASM first.
 
       这个错误一般是发生在重装clusterware和database后,这样无论怎么样重启DBCA运行都会报同样的错。具体的解决办法便是在/etc/oratab里面的关于ASM的记录:+ASM1:/u01/app/oracle/product/10.2.0/db_1:N这么一行删除掉,再接着建库就可以了。碰到过多次这个错误,记录在这里备忘一下。

June 07

去杭州乐园玩,我老人家一把年纪了,老胳膊老腿经受不了这番折腾

现在坐着还是感觉天旋地转来着……

一进乐园,看看过山车人太多,坐了一下双层木马热热身。接着排队等过山车,快排上的时候看边上的留言很搞笑,N多人留言:“花钱买罪受”,更多人留言“MD,等了4个多小时终于排上了”,“XXX到此一游的”的留言当然更多。大概等了50分钟的样子,终于排上了,看来比起排队4、5个小时的人来说,已经幸运多了。看的时候和刚坐进去的时候没感觉太恐怖,慢速行进到高点的时候确实有点怵了,太高了……接下开始2分种之内穿行880米的极速体验,我吓得抓得紧紧的,然后闭上眼睛跟着轮滚,也不知道到底是朝上翻腾还是朝下翻腾,紧跟着大声吼叫。觉得速度慢下来的时候睁开眼了,两个圆形已经滚完了。下来时候感觉还好,前提当然是要闭着眼睛。
接下玩UFO。我的妈呀!转来转去到高点实在是恐怖至极,两眼睁着看着在高点和低点之间滚来覆去,心情也跟着上上下下。终于玩完了,发现老子还活着……
边上就是勇敢者转盘,听着音乐节奏感觉还不错嘛,当然听着游玩者的叫声更刺激……殊不知这是玩得最恐怖的项目。发现一个座位坐两个人,紧紧用安全带绑在一起,运气好的话可以和MM搭挡,再运气好的话就看你自己了:)接下开始恐怖之旅,天翻地转来着,整个世界都在翻滚。我坐着前面感觉胸闷得慌……好不容易停止了,直觉得想吐。下来后边上放着很多垃圾桶,N多人靠在那边吐。我想吐一直吐不出来,使劲抠着喉咙吐了一小口。
激流勇进是很没意思的。花了5元钱买了幅雨衣压根不顶用,全身湿得差不多了,很多MM穿得很清凉不穿雨衣就在那边玩。这个项目还是比较文明的,除了淋了一身水,基本上不会让你胆战心惊。
玩完这个之后觉得应该玩个文明些的游戏了,要不折腾不起了。结果索道因为风力超过5级暂停了,后面再去问干脆今天是停止了,NND
嗯,接着又开始一个不文明的游戏,海盗船。听说坐在前排中间摇摆的幅度小了些,赶紧坐在前排。摇摆开始后,两边一到高点就开始对吼,很齐整很壮观:) 我也跟着吼叫了几声,后面到快停止时故意蒙着脸大吼两声,所有人都笑起来了:)
海盗船过后又是一个更不文明的游戏:极速大风车,这个似乎摇摆的幅度是所有游乐项目中最大的。我问边上的小朋友怕不怕,他说玩过好几次了,不怕!于是又开始天旋地转起来,睁着双眼看到世界都在急速运动,赶紧闭上双眼等世界末日……闭上双眼后感觉好多了,愣你摇晃去吧。
歇了一小会,好几个想玩的项目都停掉了,NND。本来还想蹦极来着,是听从边上人的话,说年轻时候不折腾,以后老了就折腾不动了,能折腾尽力折腾。不过这个也停了,于是于是又开始海盗船,这次坐在船尾,我的妈呀!摇得真高呀!又跟着大声吼叫起来了……
经过这一翻折腾,感觉肚子开始翻江倒海了,最近肠胃一直不好,加上这么一番折腾,不抗议才怪呢。玩个文明点的吧,旋转秋千……还是有点小快的,也是很享受的。可是可是一下来就吐开了,前面抠着没吐出,这下一下子愣是全吐掉了。边上的人都说我脸色煞白。这一吐可是缓了很久才缓过劲了。同行的人居然又接着玩极速大风车和UFO去了。 我除了佩服就是拍照啦:)
后面玩了两上小儿科的游戏,回家走人……
June 01

杭州两年

两年前的5月31号来到杭州,六一到公司报到。整整两年过去了,一无所成。
May 15

使用DBMS_FILE_TRANSFER配置DATA GURAD和克隆数据库

通常我们配置DATA GUARD,都需要对主库进行备份,再把备份的备份集复制到备库端进行配置。但是当数据库非常大时,尤其是数据库采用ASM作为存储方案时,如果没有足够的空间用于存放备份集,这样显然就无法通过常规的方式来配置STANDBY。利用DBMS_FILE_TRANSFER则可以方便地将主库的数据文件直接传递至备库的ASM磁盘组,这样再也不需要使用中间存储存放备份文件。下面简单介绍一下通过DBMS_FILE_TRANSFER配置基于ASM存储方案的DATA GUARD和克隆数据库的方法。

一、在备用数据库端创建好ASM磁盘组和一个中间数据库。
首先必须要在备用数据库端配置好ASM实例,创建好ASM磁盘组,并且ASM磁盘组的名字最好是和主库一样的。当然,名字不一样也可以,那就需要一些额外的设置。另外由于DBMS_FILE_TRANSFER远程传输是基于DB LINK的,因此需要在备用库端创建一个中间数据库,这个中间数据库的主要作用便是用于DB LINK传输数据文件。假定我们创建的ASM磁盘组叫DATA,中间数据库名字叫transfer。
二、在备用库的中间数据库上创建一个到主库的DB LINK。做之前需要配置好到主库的TNS。

SQL>create database link lnk_pri connect to system identified by password using ‘primary’;

三、在主库端创建到数据文件目录的directory。

SQL> create or replace directory pri_dir as ‘+DATA/TEST/datafile’;

四、在备库端创建好备库的相应目录,比如bdump,udump等目录,另外在备库的ASM实例中创建备库的数据文件、控制文件等目录。

SQL> alter diskgroup DATA add directory ‘+DATA/TEST/’;
SQL> alter diskgroup DATA add directory ‘+DATA/TEST/DATAFILE’;
SQL> alter diskgroup DATA add directory ‘+DATA/TEST/CRONTROLFILE’;
SQL> alter diskgroup DATA add directory ‘+DATA/TEST/TEMPFILE’;

五、在备库的中间数据库上创建好两个DIRECTORY,用于存放传递过来的数据文件和控制文件。

SQL> create or replace directory stb_dir as ‘+DATA/TEST/datafile’;
SQL> create or replace directory stb_ctl_dir as ‘+DATA/TEST/controlfile’;

六、在中间数据库开始传输数据文件。
由于是在线配置STANDBY,在传输数据文件之前,必须先在主库把相应的表空间置于恢复模式,然后利用dbms_file_transfer进行数据文件的传输,最后再把相应的表空间置为正常状态:

SQL> conn sys/password@lnk_pri as sysdba
SQL> alter tablespace system begin backup;
SQL> conn /as sysdba
SQL>begin
dbms_file_transfer.get_file(
source_directory_object => ‘ pri_dir ‘,
source_file_name => ‘ system.286.650339101′,
destination_directory_object => ‘ stb_dir ‘,
destination_file_name => ‘ system01.dbf ‘,
source_database => ‘lnk_pri’);
end;
/
SQL> conn sys/password@lnk_pri as sysdba
SQL> alter tablespace system end backup;

这样依次对主库的每个数据文件进行处理传递后,主库上的数据文件都会传递至备库的ASM磁盘组上。
七、 传输备库的控制文件。
首先在主库端生成备库的控制文件:

SQL> alter database create standby controlfile as ‘+DATA/TEST/datafilefile/standby.ctl’;

如果是克隆数据库的话,那么生成一个普通备份控制文件即可:

SQL> alter database backup controlfile to ‘+DATA/TEST/datafilefile/standby.ctl’;

然后传输控制文件:

SQL>begin
dbms_file_transfer.get_file(
source_directory_object => ‘ pri_dir ‘,
source_file_name => ‘ standby.ctl’,
destination_directory_object => ‘ stb_ctl_dir ‘,
destination_file_name => ‘ control01.ctl ‘,
source_database => ‘lnk_pri’);
end;
/

八、 配置备用库。

首先配置好备库的参数文件,并且配置好主库和备库的TNS,接下就可以配置备用库了:
启动备库至mount状态

SQL > startup nomount
SQL > alter database mount standby database;

如果是配置克隆数据库的话,则直接将数据库MOUNT就行:

SQL > alter database mount;

执行RMAN的catalog命令,以使控制文件能够识别传输过来的数据文件:

RMAN> catalog start with ‘+DATA/TEST/DATAFILE’;

然后将这些数据文件转换为备库的数据文件:

RMAN >switch database to copy;

如果是配置DATA GUARD的话,则可以将备库置为恢复模式:

SQL > alter database recover managed standby database disconnect from session;

如果是配置克隆数据库的话,那么直接恢复数据库并打开:

SQL >recover database until cancel;
SQL >alter database open resetlogs;

这样DATA GUARD和克隆数据库就配置完成了。最后可以把中间操作创建的directory,DB LINK和中间数据库删除掉。

May 14

利用DBMS_FILE_TRANSFER传输数据库文件

从Oracle 10g开始,Oracle提供了DBMS_FILE_TRANSFER这么一个程序包,可以方便地在本地数据库和远程数据库,ASM和文件系统间传输数据库文件。这样数据库文件的传输就方便了许多,尤其是在传输基于ASM存储的数据文件时,不再局限于利用RMAN来进行传输。下面介绍一下这个包的用法。

DBMS_FILE_TRANSFER包一共包含了3个存储过程,分别提供本机之间、本机从远程主机抓取以及本机上传至远程主机三种传输数据库文件的功能。要求传输用户有对源目录读和对目标目录写的权限,单个数据库文件必须是512字节的整数倍并且文件大小必须小于或者等于2TB。

1、COPY_FILE。可以在数据库本机的文件系统之间,ASM磁盘组之间或者文件系统和ASM磁盘组之间方便地传输数据库文件。

DBMS_FILE_TRANSFER.COPY_FILE(
source_directory_object IN VARCHAR2,–源目录
source_file_name IN VARCHAR2,–源文件名
destination_directory_object IN VARCHAR2,–目标目录
destination_file_name IN VARCHAR2);–目标文件名

SQL> create directory data as ‘+DATA/HELLODB/DATAFILE’;
SQL> create directory test as ‘+TEST/HELLODB/DATAFILE’;
SQL> exec DBMS_FILE_TRANSFER.COPY_FILE(’DATA’,’system.286.650339101′, ‘TEST’,’system.dbf’)
ASMCMD> ls -a
+TEST/HELLODB/DATAFILE/system.dbf => COPY_FILE.256.654701983

2、GET_FILE。从远程数据库读取数据库文件并在本机的文件系统或者ASM磁盘组上创建一份复制文件。

DBMS_FILE_TRANSFER.GET_FILE(
source_directory_object IN VARCHAR2,
source_file_name IN VARCHAR2,
source_database IN VARCHAR2, –到远程数据库的db link名
destination_directory_object IN VARCHAR2,
destination_file_name IN VARCHAR2);

begin
DBMS_FILE_TRANSFER.COPY_FILE(’DATA’,’system.286.650339101′, ‘lnk_test’,’TEST1′,’system.dbf’);
end;
/

3、PUT_FILE。在本地数据库将数据库文件传输至远程数据库的文件系统或者ASM磁盘组。

DBMS_FILE_TRANSFER.PUT_FILE(
source_directory_object IN VARCHAR2,
source_file_name IN VARCHAR2,
destination_directory_object IN VARCHAR2,
destination_file_name IN VARCHAR2,
destination_database IN VARCHAR2); –到目标数据库的db link名

begin
DBMS_FILE_TRANSFER.COPY_FILE(’DATA’,’system.286.650339101′, ‘TEST2′,’system.dbf’, ‘lnk_test’);
end;
/

May 07

Qlogic Infiniband RDS高速互联驱动程序安装及配置

在配置基于RDS协议的Infiniband高速内部互联的RAC数据库方案时,第一步必须是安装好驱动程序并配置好内部互联的IP地址,保证内部互联配置完成,才能进行下一步的RAC数据库安装和创建。下面简要介绍一下Infiniband安装配置的过程:
一、首先删除操作系统自带的OFED模块,否则在日后的使用中,可能会和后续安装的Infiniband驱动程序发生冲突:

#rm -rf /lib/modules/2.6.9-55.ELlargesmp/kernel/drivers/infiniband
#rm -rf /usr/src/kernels/2.6.9-55.EL-largesmp-x86_64/drivers/infiniband

这里面的2.6.9-55.Ellargesmp是LINUX的内核版本号,根据安装机器的OS内核而定。重启服务器,执行lsmod 去检查OFED是否还在运行。

二、编译Infiniband安装程序:
将InfiniServ安装文件COPY至相应目录,解压并编译:

#cd /u01
#tar –zxvf InfiniServ. 4.1.0.2.2.tgz
#cd InfiniServ. 4.1.0.2.2/ALL_HOST
#./do_build

编译完成后,该OS上的Ininiband安装文件即可生成,对应安装文件在/u01/InfiniServ.4.1.0.2.2/ALL_HOST/release/redhat/X86_64/InfiniServ.4.1.0.2.2G里面。
三、 安装Infiniband安装程序:

#cd /u01/InfiniServ.4.1.0.2.2/ALL_HOST/release/redhat/X86_64/InfiniServ.4.1.0.2.2G
#.INSTALL

屏幕显示如下画面:

SilverStorm Technologies Inc. InfiniBand 4.1.0.2.2 G Software

1) Install/Uninstall Software
2) Reconfigure IP over IB
3) Reconfigure Driver Autostart
4) Update HCA Firmware
5) Generate Supporting Information for Problem Report
6) Host Setup via Fast Fabric
7) Host Admin via Fast Fabric
8 ) Chassis Admin via Fast Fabric
9) Externally Managed Switch Admin via Fast Fabric

X) Exit

选择“1”,屏幕显示如下画面:

SilverStorm Technologies Inc. IB Install (4.1.0.2.2G release) Menu

Please Select Install Action:

0) IB Network Stack [ Install ] [Available]
1) IB Development [ Install ] [Available]
2) IB Boot [ Install ] [Available]
3) Fast Fabric [ Install ] [Available]
4) Virtual HBA (SRP) [ Install ] [Available]
5) Virtual NIC [ Install ] [Available]
6) IP over IB [ Install ] [Available]
7) MPI Runtime [ Install ] [Available]
8 ) MPI Development [ Install ] [Available]
9) MPI Source [ Install ] [Available]
a) uDAPL [ Install ] [Available]
b) SDP [ Install ] [Available]
c) RDS [ Install ] [Available]

P) Perform the selected actions
I) Install All
U) Uninstall All

X) Return to Previous Menu (or ESC)

上图中显示,P:执行选择的项
I:全部安装以上11项
U:全部卸载以上11项
选择安装某项的方法如下:
例如要安装IB Network Stack项,我们可以通过在键盘上敲击IB Network Stack前面的数字0,来切换到Install提示(此处提示共有Install,Do Not Install或Up To Date三种选择)。
如果HPC应用,只需选择0,1,3,6,7,8,9,b项进行安装即可。
如果使用RDS for Oracle应用, 选择全部进行安装即可
如果使用IPOIB for Oracle应用,选择0,1,3,6 进行安装就可以。
选择各项为Install提示后,
输入”P”,执行,系统出现如下画面:

——————————————————————————-
Installing IB Network Stack…
Adding module dependencies…
Adding memory locking limits…
Copying ibt.ko…
Copying ics_dsc.ko…
Copying 82808XA.ko…
Copying mt23108vpd.ko…
Copying mt25218vpd.ko…
Creating IB Network Stack (iba) system startup files…
Creating IB Port Monitor (iba_mon) system startup files…
——————————————————————————-
Installing IB Development…
——————————————————————————-
Installing Fast Fabric…
——————————————————————————-
Installing IP over IB Driver…
Copying ipoib.ko…
Assign IP over IB static IPV4 addresses now? [n]: y
提示是否配置IPOIB,输入”y”,出现如下画面:
You may configure an IP over IB interface for each IB port
Or you may select to have IP over IB only run on some IB ports
Or you may select to configure redundant IB ports with a
pair of IB ports running a single IP over IB interface
How many IP over IB interfaces would you like to configure? [1]:

提示需要配置多少个ip,默认为1个,如果我们只需设置1个IP地址,直接回车或输入“1”回车,屏幕出现如下画面:

Preparing to create IP over IB ifcfg files in /etc/sysconfig/network-scripts
Assign interface names sequentially starting with ib1? [y]:
Assign Internet Addresses sequentially from a base IP address? [y]:
Enter IPV4 address in dot notation for ib1: 192.168.100.145
Is IPV4 address ‘192.168.100.145′ correct? (y/n): y
Enter IPV4 netmask in dot notation for ib1 192.168.100.145 [255.255.255.0]:
Creating ifcfg-ib1 for 192.168.100.145 mask 255.255.255.0

IP over IB requires /etc/sysconfig/ipoib.cfg specify parameters
for each IP over IB device.
The default configuration file provides for a 2 port redundant configuration.
If you desire a different configuration for IP over IB, Manually edit the file.
Hit any key to continue…

根据屏幕提示输入:
Assign interface names sequentially starting with ib1? [y]:
提示是否要将IB接口名称设定为ib1, 直接回车或键入 y 回车.
Assign Internet Addresses sequentially from a base IP address? [y]:
提示是否要分配一个IP地址,直接回车或键入 y 回车.
在提示Enter IPV4 address in dot notation for ib1: 键入 IP 地址xxx.xxx.xxx.x并回车
在提示 Is IPV4 address ‘xxx.xxx.xxx.x’ correct? (y/n): 键入y并回车.
在提示 Enter IPV4 netmask in dot notation for ib1 xxx.xxx.xxx.x [255.255.255.0]: 回车 以设置默认值 (255.255.255.0).

敲入任何键,继续:

Creating IP over IB (ipoib) system startup files…
——————————————————————————-
Installing MPI Runtime…
Make links for mpd in ///opt/iba/bin
Make links for mpd in ///usr/local/bin
——————————————————————————-
Installing MPI Development…
——————————————————————————-
Installing MPI Source…
——————————————————————————-
Installing uDAPL…
Copying udapl_module.ko…
Creating uDAPL (udapl) system startup files…
——————————————————————————-
Installing SDP Driver…
Copying ics_offload.ko…
Copying ics_sdp.ko…
Creating SDP (ics_sdp) system startup files…

Enable IB Network Stack (iba) to autostart? [y]:
Enable IB Port Monitor (iba_mon) to autostart? [y]:
Enable IP over IB (ipoib) to autostart? [y]:
Enable uDAPL (udapl) to autostart? [y]: n
Enable SDP (ics_sdp) to autostart? [y]: n
Hit any key to continue…

在提示 Enable xxx to autostart? [y]: 键入 Y或N 回车,屏幕显示如下图:

Generating module dependencies…
Updating HCA Firmware …
Select HCAs to Update:
1) HCA 1 (23108 Rev a1 psid “MT_0030000001″ Node GUID: 0×00066a0098004c15)
Selection (a for all, n for none) [a]:

提示是否更新HCA firmware 版本,输入 n , 回车,屏幕出现最初画面:

SilverStorm Technologies Inc. InfiniBand 4.1.0.2.2G Software

1) Install/Uninstall Software
2) Reconfigure IP over IB
3) Reconfigure Driver Autostart
4) Update HCA Firmware
5) Generate Supporting Information for Problem Report
6) Host Setup via Fast Fabric
7) Host Admin via Fast Fabric
8 ) Chassis Admin via Fast Fabric
9) Externally Managed Switch Admin via Fast Fabric

X) Exit

敲入“x”退出安装。

5) 重新启动系统
#reboot
6) 重新启动系统后,检查HCA驱动是否正常启动
#lsmod
显示如下图:

o ipoib
o mt23108vpd
o ics_dsc
o ics_offload
o ibt
o scsi_mod
o ics_sdp

至此,此节点的Infiniserv软件安装完成。

May 06

Linux上如何不重启识别新存储

上周在一台生产机器上添加了一台新存储,并且成功不重启就识别了新添加的LUN。关于如何LINUX不重启如何识别新的LUNFenng有过一篇文章介绍过了:Linux 如何不重启而识别新增的 LUN,除了QLogic FC HBA LUN Scan Utility这个脚本,还有其他方式可以也可以识别,具体可以看Fenng BLOG中的回复。这里面简要介绍一下存储的配置过程,我添加的存储是EMC CX700,以此为例。在布好光纤线,配置好光纤交换机的ZONE之后,需要把主机的/etc/Navisphere/agent.config文件里面添加新存储的IP地址,然后重启NaviagentNaviagent重启的话对于主机现有的存储访问是没有影响的,如果不重启,那么在存储端也是可以看到主机信息的,不过并不会有主机名等详细信息的,需要用户手工添加注册信息。然后就在存储里面配置storage group,把要访问的LUN和主机设置好,按Fenng BLOG中步骤运行QLogic FC HBA LUN Scan Utility主机上powermt config一下,就识别到新的存储了。值得一提的是,在我的环境中,新添加的LUN没有具体的LUN编号,这个对于使用还是有些麻烦的。

April 22

最近

杭州的春天周末老是下雨,上个周末再次印证了我的推测。来杭州快2年了,去年开始发现杭州春季时工作日的天气都出奇的好,但一到周末就下雨。好不容易有个休息日,想出去走走都不成。

最近迷上了HP新推出的迷你小本本HP 2133。一直以来都只喜欢小本本,以前SONYSRX系列是我了最爱。不过那时候是穷学生,买不起,现在还想收个成色好的二手收藏来着,不过PIII时代的配置到现在确实是过时了。用过DELLX300,那个本本离我心目中的完美本本已经非常接近了,轻、薄,香槟银镁铝合金外壳,当时由于过于轻薄,后面屏幕被压出了一圈白斑,不得不出掉了。12寸的屏幕我认为还是大了些,10寸左右的正好,这样键盘也不至于太小,要是键盘太小打字就不方便了,为了轻薄牺牲了易用性也是我所不能容忍的。HP2133的配置离我心目中的超轻薄本本的要求已经非常接近了,当然8.9寸的屏幕是小了些,不过上盖多出的空间用于音箱,这样本本的音质就会好些。况且键盘基本上达到95%的标准键盘大小。当然用VIACPU是比较不爽的,不过进入迅驰时代以后我对CPU的要求便越来越低了。不玩游戏,只是用电脑看看碟,上上网啥的,现在主流的硬件配置已经足够了。当然还有很重要的一点便是价格便宜,VIA 1.2G CPU1G内存、120G硬盘的配置卖549美刀,和众多超轻薄本本高不可攀的价格相比,这个价格是够平易近人了。当然外观也是我所注重的,铝合金银色外观是我所喜欢的。嗯,准备到时候整一台,这样外出的时候我就可以只背着这个1.2KG的本本了。

把《24小时》的第一季看完了。继《越狱》之后,最近疯狂地迷恋上了美剧,最疯狂的便是前段时间看《LOST》,一口气看到最新的第四季第8集。看完《LOST》后,以后坐飞机是会担心的,还有对里面时不时出现的一些恐怖场景比较不爽,我胆子还是小的。看美剧我喜欢下载中英文双字幕的版本,这样看的时候尽量看英文字幕,碰到不懂的单词时再看中文字幕。这样对学英语还是有挺大帮助的,明显感觉自己语感好了不少。发现美剧里面的对话都是很简单的,大部分都能看得懂,就是速度太快,有时候来不及只好看中文字幕。以前下载电影时都特地下AVI格式的,然后下载中英文字幕,先看英文,碰到不懂的时候就停下来翻金山词霸,那样看起来怪累人的,最后便都看中文了。现在有些RMVB会有字幕组把中英文字幕都整合起来,看起来就方便多了。我是懒人,这样子学英语对于目前的我来说是个最好的办法。

朋友来杭州工作,周末陪他一起四处找房子。发现现在的房东大部分都是跟自己年龄相仿的80后,想想自己都快租不起房子,人家都在出租房子,差距啊!

ORACLE 10.2.0.4BUG的补丁好不容易推出了,结果我一装上就报错了。昨天折腾了一下午,昨晚上下班都走到门口了,结果又报错了,只好回来再整。后面不得不把这个PATCH回滚,数据库才恢复正常。对ORACLESR已经彻底失望了,不断地跟你来回折腾,耗到你没有心思再跟为止。

April 15

洗了个冷水澡

      已经好久没洗冷水澡了,有印象上一次洗冷水澡应该还是05年在苏州的时候。 记得在学校的时候冬天比较经常洗冷水澡,那时候心情大都比较阴郁,冷水澡可以短暂冷却不平静的心。那时候和舍友经常在冬天洗澡的时候狂吼:“我是一个混蛋!”,不为什么,仅仅是内心的宣泄而已。有一次踢完球后冷了个冷水澡,接着去上课,牙齿咯吱咯吱打了一节课,福州的冬天温度差不多在5度左右,还是比较冷的。
      晚上回来后看了下热水器,显示水温57度,这个温度洗澡问题是不大的。结果进了卫生间后,出水一直都没出热水。本来想等等再烧一下水,后面等不及了,就直接冲冷水了。洗头发的时候感觉还好,冲身体的时候就感觉到冷了。杭州这时候温度在12度左右,还是有点寒意的。跟以前一样,洗到后面就不冷了。什么时候在冬天最冷的时候试着洗个热水澡吧。
April 10

牌运不佳

      上周末和这周二接连打了两次牌。没想到两次都是惨败,是打牌以来输得最惨的两次。打杭州这边流行的双扣,这两次都是第一把就双扣别人,结果后面就一直输下去,看来打牌是不能赢头把的。上个周末还坚持着一小段时间,这周二输得可就惨了。牌抓得好吧,别人抓得更好,手上好几幅炸弹,炸都炸死你;牌抓得不好吧,人家的牌还是比你好,硬生生地把你堵死。有一盘居然有一个人抓了2幅6张牌的炸弹,另外一个人抓了1幅6张牌的炸弹,加上被双扣,一把就输了6个。还有人抓7张牌炸弹的,有人抓4个鬼的,从-3到-23只用了5把,NNGX。输了点小钱,哈哈。本来打牌有个原则是坚决不赌钱,后面被gytyl拉下水,赌了点小钱,发现赌点小钱挺好玩的。小赌怡情啊!NinGoo也是打牌从不赌钱的,不过现在也被我拉下水了,哈哈,不过这小子一赌钱基本上都是小输或者平。
April 07

的士司机的诚信

半夜打车到机房换硬盘,由于下雨,加上机房所在的地方比较偏,在那边很难打到车,于是跟司机商量让他在机房楼下等我。因为我上去换个硬盘前后也就10分钟时间,再说半夜那地方也不会有什么客人,司机也答应了。为了表示诚意,我还特地先把过去的钱给结了。没想到我一进去还没登记,司机就开车走人了。NND!
April 02

RAC升级到10.2.0.4碰到的几个问题及处理办法

 

   上周末将10.2.0.3RAC数据库升级到10.2.0.4。在升级过程中碰到了几个问题,记录一下解决办法。

   第一个是在CRS打完Patch之后运行root102.sh脚本时报:

 

Preparing to recopy patched init and RC scripts.

Recopying init and RC scripts.

ocrcheck failed. Check /u01/oracle/product/10g/crs/srvm/log for more details

 

这一步事实上是这时候CRS无法启动,而且在/u01/oracle/product/10g/crs/srvm/log这个目录下面没有记录任何东西。尝试着手工启动CRS,报:

 

/u01/oracle/product/10g/crs/bin/crsctl.bin: error while loading shared libraries: /u01/oracle/product/10g/crs/lib/libclntsh.so.10.1: file too short

 

查看一下libclntsh.so.10.1,文件大小居然为0查看该目录下的其他文件的大小和更改时间和备份的目录相比都没变化,解决办法便是将报错的libclntsh.so.10.1文件从升级之前备份的CRS目录COPY回来,再运行脚本就可以了。可见在升级之前做好备份有多重要。

   第二个问题是打完PATCH,准备用DBUA升级数据库时将所有节点启动至MOUNT状态,DBUA运行下一步时报错:

 

DBUA thinks this is a Rerun operation and is trying to connect to the database with oracle home /u01/oracle/product/10g/db. If you believe this is not a Rerun operation, remove the below file and invoke DBUA again.

 /u01/oracle/product/10g/db/cfgtoollogs/dbua/logs/Welcome_dwdb.txt

 

但是Welcome_dwdb.txt这个文件压根不存在。这时候只好抛弃DBUA了,手工运行升级脚本,这样数据库才能正常升级成功。

   第三个问题是发现发现我们原来RAC内部互联采用的是Infiniband RDS协议变成普通的UDP协议互联了:

 

Fri Mar 28 21:12:14 2008

cluster interconnect IPC version:Oracle UDP/IP (generic)

IPC Vendor 1 proto 2

 

    这个问题是由于在升级过程中ORACLE又重新将内部互联的方案更改为默认的UDP方式。需要重新配置一下RDS内部互联,在配置之前需要把ASM和数据库都停掉,然后重新RELINKRDS互联:

 

$ cd $ORACLE_HOME/rdbms/lib

$ make -f ins_rdbms.mk ipc_rds ioracle

 

这样以后,内部互联就恢复成正常的RDS了:

 

Fri Mar 28 21:25:39 2008

cluster interconnect IPC version:Oracle RDS/IP (generic)

 

在升级之后我们碰到了一个新的BUG,数据库会报:

 

ORA-00600: internal error code, arguments: [kddummy_blkchk], [47], [935468], [18038], [], [], [], []

 

解决办法是将db_block_checksum这个参数改为FALSE,不过这样做会有较大的风险,目前这个BUG ORACLE已经提交BUG开发部门进行开发了。