环境描述:OS/aix5.3-64bit DB/10.2.0.3-64bit
环境描述:OS/aix5.3-64bit DB/10.2.0.3-64bit
今天在一台aix生产系统上准备用裸设备创建一个新的数据库。于是调用dbca使用数据仓库模板建库。其中裸设备与表空间以及spfile的对应关系保存在wilson_raw.conf文件中,该文件内容如下:
control01=/dev/rlv_bas_ctl01
control02=/dev/rlv_bas_ctl02
control03=/dev/rlv_bas_ctl03
system=/dev/rlv_bas_system01
sysaux=/dev/rlv_bas_sysaux01
undotbs1=/dev/rlv_bas_undo01
temp=/dev/rlv_bas_temp01
users=/dev/rlv_bas_users01
redo1_1=/dev/rlv_bas_log11
redo1_2=/dev/rlv_bas_log12
redo2_1=/dev/rlv_bas_log21
redo2_2=/dev/rlv_bas_log22
redo3_1=/dev/rlv_bas_log31
redo3_2=/dev/rlv_bas_log32
spfile=/dev/rlv_bas_spfile
但是在调用dbca建库过程中出现了如下错误
通过查询metalink发现此错误与Oracle的一个bug有关,具体内容请参考10.2.0.3 Database Upgrade Using DBUA Failed With Error "failed to retrieve size of raw device" [ID 432725.1]。由于本系统上已经存在一个生产库,出于安全考量没有按照此metalink上的办法替换rawutl命令。
解决办法:通过dbca模板建库生产建库脚本,通过修改建库脚本中数据文件,日志文件,,控制文件的文件系统路径改为裸设备的路径,接着在sqlplus中手动调用建库脚本即可创建成功。此时的新库中数据文件,日志文件,控制文件都是使用裸设备,而pfile则是使用的文件系统,如果希望spfile也使用裸设备则可以通过dd或者create spfile from pfile将参数文件从文件系统迁移到裸设备。