ITPub博客

首页 > Linux操作系统 > Linux操作系统 > srvctl添加数据库信息报错

srvctl添加数据库信息报错

原创 Linux操作系统 作者:yangtingkun 时间:2007-10-03 00:00:00 0 删除 编辑

碰到一个比较奇怪的现象。使用srvctl命令添加数据库时出现了错误:PRKP-1037 : Failed to create cluster database tradedb.


由于要使用RMAN将产品库的RAC环境生成本地的RAC测试环境。

首先将两台服务器的RAC环境建立起来,安装了ORACLE CLUSTERWAREDATABASE SOFTWARE,由于要通过远端数据库的备份生成,因此利用DBCA建立数据库。通过RMAN将远端数据库恢复到本地。

数据库已经建立完毕,发现ASMLISTENER也自动添加到了svrctl中。但是数据库信息并没有自动添加进去。

手工执行添加操作:

$ srvctl add db -d tradedb -o /oracle/app/product/10.2/database
PRKP-1037 : Failed to create cluster database tradedb.

检查了Metalink,发现了很多与这个错误相关的bug信息。而且大部分都没有解决。本打算放弃。

由于利用Rman恢复之后,数据库名称没有修改。同事将数据库名称进行了修改,并重启数据库后,再次尝试srvctl add命令发现居然可以顺利的通过了。

$ srvctl add db -d tradedb -o /oracle/app/product/10.2/database
$ srvctl add inst -d pretrade -i prerac1 -n pre1
$ srvctl add inst -d pretrade -i prerac2 -n pre2

数据库和实例信息已经成功添加到srvctl中,但是状态显示似乎并不正确:

$ srvctl status database -d pretrade
Instance prerac1 is not running on node pre1
Instance prerac2 is not running on node pre2

虽然两个实例都启动,但是Oracle并没有检测到。执行关闭操作:

$ srvctl stop db -d pretrade
$ ps -ef|grep ora
oracle 22103 1 0 23:26:19 ? 0:01 ora_ckpt_prerac1
oracle 22064 1 0 23:26:18 ? 0:06 ora_lms1_prerac1
.
.
.
oracle 22058 1 0 23:26:18 ? 0:04 ora_lmd0_prerac1

数据库的并没有真正关闭,回想起以前碰到过的一个小bugsvrctl对于不是自己进行的打开、关闭操作并不认识详细情况参考:http://yangtingkun.itpub.net/post/468/275571

于是尝试先打开,再关闭:

$ srvctl start db -d pretrade
$ srvctl stop db -d pretrade
$ ps -ef|grep ora
oracle 20871 1 0 23:25:35 ? 0:00 /oracle/app/product/10.2/database/bin/tnslsnr LISTENER_PRE1 -inherit
oracle 18798 1 0 23:23:15 ? 0:00 sh -c sh -c 'ulimit -c unlimited; cd /oracle/app/product/10.2/crs/log/pre1/evmd
root 18806 1 0 23:23:15 ? 0:11 /oracle/app/product/10.2/crs/bin/crsd.bin reboot
oracle 21959 1 0 23:26:15 ? 0:00 asm_o000_+ASM1
oracle 19749 19158 0 23:24:57 ? 0:00 /oracle/app/product/10.2/crs/bin/evmlogger.bin -o /oracle/app/product/10.2/crs/
oracle 20754 20753 0 23:25:31 ? 0:00 /oracle/app/product/10.2/crs/opmn/bin/ons -d
oracle 8416 7467 0 19:23:38 pts/1 0:00 -sh
oracle 20201 1 0 23:25:11 ? 0:00 asm_psp0_+ASM1
oracle 20254 1 0 23:25:12 ? 0:00 asm_gmon_+ASM1
oracle 19442 19441 0 23:24:47 ? 0:05 /oracle/app/product/10.2/crs/bin/ocssd.bin
oracle 20199 1 0 23:25:11 ? 0:02 asm_diag_+ASM1
oracle 20197 1 0 23:25:11 ? 0:01 asm_pmon_+ASM1
oracle 19441 19440 0 23:24:47 ? 0:00 /bin/sh -c ulimit -c unlimited; cd /oracle/app/product/10.2/crs/log/pre1/cssd;
oracle 24980 24918 0 21:30:34 pts/3 0:00 bash
oracle 24918 15079 0 21:30:32 pts/3 0:00 -sh
root 19310 19259 0 23:24:43 ? 0:00 /oracle/app/product/10.2/crs/bin/oprocd run -t 1000 -m 500 -f
oracle 20207 1 0 23:25:12 ? 0:03 asm_lms0_+ASM1
oracle 16115 16082 0 23:21:34 pts/4 0:00 -sh
oracle 11140 8416 0 22:00:14 pts/1 0:00 bash
oracle 20211 1 0 23:25:12 ? 0:00 asm_mman_+ASM1
oracle 20252 1 0 23:25:12 ? 0:00 asm_rbal_+ASM1
oracle 19158 18798 0 23:24:18 ? 0:02 /oracle/app/product/10.2/crs/bin/evmd.bin
oracle 20213 1 0 23:25:12 ? 0:00 asm_dbw0_+ASM1
oracle 20225 1 0 23:25:12 ? 0:00 asm_lgwr_+ASM1
oracle 20243 1 0 23:25:12 ? 0:00 asm_ckpt_+ASM1
oracle 20551 1 0 23:25:23 ? 0:01 /oracle/app/product/10.2/database/bin/racgimon daemon ora.pre1.ASM1.asm
oracle 20287 1 0 23:25:13 ? 0:01 asm_lck0_+ASM1
oracle 20250 1 0 23:25:12 ? 0:00 asm_smon_+ASM1
oracle 9153 3066 0 23:56:29 pts/4 0:00 grep ora
oracle 20205 1 0 23:25:11 ? 0:03 asm_lmd0_+ASM1
oracle 17810 17749 0 22:44:00 pts/2 0:00 bash
oracle 3066 19185 0 23:52:39 pts/4 0:00 -sh
oracle 20753 1 0 23:25:31 ? 0:00 /oracle/app/product/10.2/crs/opmn/bin/ons -d
oracle 20203 1 0 23:25:11 ? 0:03 asm_lmon_+ASM1
oracle 23627 23536 0 22:08:15 pts/6 0:00 -sh
oracle 23691 23627 0 22:08:17 pts/6 0:00 bash
oracle 9154 9153 0 23:56:29 pts/4 0:00 ps -ef
oracle 17749 14738 0 22:43:57 pts/2 0:00 -sh
oracle 19440 19260 0 23:24:47 ? 0:00 sh -c /bin/sh -c 'ulimit -c unlimited; cd /oracle/app/product/10.2/crs/log/pre1
$ srvctl start db -d pretrade
$ ps -ef|grep ora
oracle 11382 1 0 23:57:54 ? 0:00 ora_diag_prerac1
oracle 11384 1 0 23:57:54 ? 0:00 ora_psp0_prerac1
.
.
.
oracle 11417 1 1 23:57:54 ? 0:03 ora_lmd0_prerac1
oracle 20250 1 0 23:25:12 ? 0:00 asm_smon_+ASM1
oracle 17470 1 1 00:01:48 ? 0:00 ora_m000_prerac1
oracle 11461 1 1 23:57:55 ? 0:01 ora_mmon_prerac1
$ srvctl status database -d pretrade
Instance prerac1 is running on node pre1
Instance prerac2 is running on node pre2

至此,srvctl可以正常工作了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69445/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10496433