由于修改了实例名,导致startup的时候提示现在的名字和控制文件中存放的名字不一致,所以就需要重建控制文件。
现在的库起不来,连nomount状态也起不来,就到另一库上去得到创建控制文件的语句。
SQL> alter database backup controlfile to trace as '/oraclelog/lcfa/udump/crl.txt';
Database altered.
打开 crl.txt,其中可以看到如下的重建控制文件的语句:
CREATE CONTROLFILE REUSE DATABASE "LCFA" RESETLOGS NOARCHIVELOG
MAXLOGFILES 64
MAXLOGMEMBERS 3
MAXDATAFILES 8192
MAXINSTANCES 8
MAXLOGHISTORY 1168
LOGFILE
GROUP 1 (
'/dev/rrjttvg1_1_rd11',
'/dev/rrjttvg2_1_rd12'
) SIZE 1022M BLOCKSIZE 512,
GROUP 2 (
'/dev/rrjttvg1_1_rd21',
'/dev/rrjttvg2_1_rd22'
) SIZE 1022M BLOCKSIZE 512,
GROUP 3 (
'/dev/rrjttvg1_1_rd31',
'/dev/rrjttvg2_1_rd32'
) SIZE 1022M BLOCKSIZE 512
DATAFILE
'/dev/rrjttvg1_8_sys',
'/dev/rrjttvg2_8_aux',
'/dev/rrjttvg1_8_udo1',
'/dev/rrjttvg1_4_001',
'/dev/rrjttvg2_4_001',
'/dev/rrjttvg1_4_002',
'/dev/rrjttvg2_4_002',
'/dev/rrjttvg1_4_003',
'/dev/rrjttvg2_4_003',
'/dev/rrjttvg1_4_004',
'/dev/rrjttvg2_4_004'
CHARACTER SET ZHS16GBK
;
CREATE CONTROLFILE REUSE DATABASE "LCFA" RESETLOGS NOARCHIVELOG
这句中的, reuse 可以根据实际情况用set 替换。
比如我这次就是要修改实例名,所以重建控制文件的时候,就需要使用 set 。
datafile 中一定要把现在使用的数据文件都加上。
替换完成后,在需要重建的库上执行语句,执行成功后,startup就可以正常执行了。